<p>osmith has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-msc/+/16550">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">osmoappdesc.py, tests: switch to python 3<br><br>Make build and external tests work with python3, so we can drop<br>the python2 dependency.<br><br>This should be merged shortly after osmo-python-tests was migrated to<br>python3, and the jenkins build slaves were (automatically) updated to<br>have the new osmo-python-tests installed.<br><br>Related: OS#2819<br>Depends: osmo-python-tests I3ffc3519bf6c22536a49dad7a966188ddad351a7<br>Change-Id: I53ccde96dd3785098df0f7d693c504c8b8302e90<br>---<br>M osmoappdesc.py<br>M tests/ctrl_test_runner.py<br>M tests/smpp_test_runner.py<br>M tests/vty_test_runner.py<br>4 files changed, 60 insertions(+), 60 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/50/16550/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/osmoappdesc.py b/osmoappdesc.py</span><br><span>index bd7fea3..b7a274c 100644</span><br><span>--- a/osmoappdesc.py</span><br><span>+++ b/osmoappdesc.py</span><br><span>@@ -1,4 +1,4 @@</span><br><span style="color: hsl(0, 100%, 40%);">-#!/usr/bin/env python</span><br><span style="color: hsl(120, 100%, 40%);">+#!/usr/bin/env python3</span><br><span> </span><br><span> # (C) 2013 by Katerina Barone-Adesi <kat.obsc@gmail.com></span><br><span> # This program is free software: you can redistribute it and/or modify</span><br><span>diff --git a/tests/ctrl_test_runner.py b/tests/ctrl_test_runner.py</span><br><span>index f652a67..d24cc00 100755</span><br><span>--- a/tests/ctrl_test_runner.py</span><br><span>+++ b/tests/ctrl_test_runner.py</span><br><span>@@ -1,4 +1,4 @@</span><br><span style="color: hsl(0, 100%, 40%);">-#!/usr/bin/env python2</span><br><span style="color: hsl(120, 100%, 40%);">+#!/usr/bin/env python3</span><br><span> </span><br><span> # (C) 2013 by Jacob Erlbeck <jerlbeck@sysmocom.de></span><br><span> # (C) 2014 by Holger Hans Peter Freyther</span><br><span>@@ -53,8 +53,8 @@</span><br><span>         try:</span><br><span>             self.proc = osmoutil.popen_devnull(osmo_ctrl_cmd)</span><br><span>         except OSError:</span><br><span style="color: hsl(0, 100%, 40%);">-            print >> sys.stderr, "Current directory: %s" % os.getcwd()</span><br><span style="color: hsl(0, 100%, 40%);">-            print >> sys.stderr, "Consider setting -b"</span><br><span style="color: hsl(120, 100%, 40%);">+            print("Current directory: %s" % os.getcwd(), file=sys.stderr)</span><br><span style="color: hsl(120, 100%, 40%);">+            print("Consider setting -b", file=sys.stderr)</span><br><span>         time.sleep(2)</span><br><span> </span><br><span>         appstring = self.ctrl_app()[2]</span><br><span>@@ -72,7 +72,7 @@</span><br><span> </span><br><span>     def connect(self, host, port):</span><br><span>         if verbose:</span><br><span style="color: hsl(0, 100%, 40%);">-            print "Connecting to host %s:%i" % (host, port)</span><br><span style="color: hsl(120, 100%, 40%);">+            print("Connecting to host %s:%i" % (host, port))</span><br><span> </span><br><span>         retries = 30</span><br><span>         while True:</span><br><span>@@ -92,7 +92,7 @@</span><br><span> </span><br><span>     def send(self, data):</span><br><span>         if verbose:</span><br><span style="color: hsl(0, 100%, 40%);">-            print "Sending \"%s\"" %(data)</span><br><span style="color: hsl(120, 100%, 40%);">+            print("Sending \"%s\"" %(data))</span><br><span>         data = Ctrl().add_header(data)</span><br><span>         return self.sock.send(data) == len(data)</span><br><span> </span><br><span>@@ -123,7 +123,7 @@</span><br><span>             (head, data) = IPA().split_combined(data)</span><br><span>             answer = Ctrl().rem_header(head)</span><br><span>             if verbose:</span><br><span style="color: hsl(0, 100%, 40%);">-                print "Got message:", answer</span><br><span style="color: hsl(120, 100%, 40%);">+                print("Got message:", answer)</span><br><span>             (mtype, id, msg) = answer.split(None, 2)</span><br><span>             id = int(id)</span><br><span>             rsp = {'mtype': mtype, 'id': id}</span><br><span>@@ -139,7 +139,7 @@</span><br><span>             responses[id] = rsp</span><br><span> </span><br><span>         if verbose:</span><br><span style="color: hsl(0, 100%, 40%);">-            print "Decoded replies: ", responses</span><br><span style="color: hsl(120, 100%, 40%);">+            print("Decoded replies: ", responses)</span><br><span> </span><br><span>         return responses</span><br><span> </span><br><span>@@ -183,9 +183,9 @@</span><br><span>     if args.p:</span><br><span>         confpath = args.p</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    print "confpath %s, workdir %s" % (confpath, workdir)</span><br><span style="color: hsl(120, 100%, 40%);">+    print("confpath %s, workdir %s" % (confpath, workdir))</span><br><span>     os.chdir(workdir)</span><br><span style="color: hsl(0, 100%, 40%);">-    print "Running tests for specific control commands"</span><br><span style="color: hsl(120, 100%, 40%);">+    print("Running tests for specific control commands")</span><br><span>     suite = unittest.TestSuite()</span><br><span>     suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestCtrlMSC))</span><br><span>     res = unittest.TextTestRunner(verbosity=verbose_level).run(suite)</span><br><span>diff --git a/tests/smpp_test_runner.py b/tests/smpp_test_runner.py</span><br><span>index f6567d9..b8c6e1c 100755</span><br><span>--- a/tests/smpp_test_runner.py</span><br><span>+++ b/tests/smpp_test_runner.py</span><br><span>@@ -1,4 +1,4 @@</span><br><span style="color: hsl(0, 100%, 40%);">-#!/usr/bin/env python2</span><br><span style="color: hsl(120, 100%, 40%);">+#!/usr/bin/env python3</span><br><span> </span><br><span> # (C) 2014 by Holger Hans Peter Freyther</span><br><span> # based on vty_test_runner.py:</span><br><span>@@ -46,8 +46,8 @@</span><br><span>         try:</span><br><span>             self.proc = osmoutil.popen_devnull(osmo_vty_cmd)</span><br><span>         except OSError:</span><br><span style="color: hsl(0, 100%, 40%);">-            print >> sys.stderr, "Current directory: %s" % os.getcwd()</span><br><span style="color: hsl(0, 100%, 40%);">-            print >> sys.stderr, "Consider setting -b"</span><br><span style="color: hsl(120, 100%, 40%);">+            print("Current directory: %s" % os.getcwd(), file=sys.stderr)</span><br><span style="color: hsl(120, 100%, 40%);">+            print("Consider setting -b", file=sys.stderr)</span><br><span> </span><br><span>         appstring = self.vty_app()[2]</span><br><span>         appport = self.vty_app()[0]</span><br><span>@@ -73,14 +73,14 @@</span><br><span>         # Enable the configuration</span><br><span>         self.vty.enable()</span><br><span>         self.assertTrue(self.vty.verify("configure terminal", ['']))</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEquals(self.vty.node(), 'config')</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertEqual(self.vty.node(), 'config')</span><br><span> </span><br><span>         self.assertTrue(self.vty.verify('smpp', ['']))</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEquals(self.vty.node(), 'config-smpp')</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertEqual(self.vty.node(), 'config-smpp')</span><br><span>         self.assertTrue(self.vty.verify('system-id test', ['']))</span><br><span>         self.assertTrue(self.vty.verify('local-tcp-port 2775', ['']))</span><br><span>         self.assertTrue(self.vty.verify('esme test', ['']))</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEquals(self.vty.node(), 'config-smpp-esme')</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertEqual(self.vty.node(), 'config-smpp-esme')</span><br><span>         self.assertTrue(self.vty.verify('default-route', ['']))</span><br><span>         self.assertTrue(self.vty.verify('end', ['']))</span><br><span> </span><br><span>@@ -88,7 +88,7 @@</span><br><span>         sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM)</span><br><span>         sck.setblocking(1)</span><br><span>         sck.connect(('0.0.0.0', 2775))</span><br><span style="color: hsl(0, 100%, 40%);">-        sck.sendall('\x00\x00\x00\x02\x00')</span><br><span style="color: hsl(120, 100%, 40%);">+        sck.sendall(b'\x00\x00\x00\x02\x00')</span><br><span>         sck.close()</span><br><span> </span><br><span>         # Check if the VTY is still there</span><br><span>@@ -98,7 +98,7 @@</span><br><span>         sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM)</span><br><span>         sck.setblocking(1)</span><br><span>         sck.connect(('0.0.0.0', 2775))</span><br><span style="color: hsl(0, 100%, 40%);">-        sck.sendall('\x00\x01\x00\x01\x01')</span><br><span style="color: hsl(120, 100%, 40%);">+        sck.sendall(b'\x00\x01\x00\x01\x01')</span><br><span>         sck.close()</span><br><span> </span><br><span>         self.vty.verify('enable',[''])</span><br><span>@@ -128,9 +128,9 @@</span><br><span>     if args.p:</span><br><span>         confpath = args.p</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    print "confpath %s, workdir %s" % (confpath, workdir)</span><br><span style="color: hsl(120, 100%, 40%);">+    print("confpath %s, workdir %s" % (confpath, workdir))</span><br><span>     os.chdir(workdir)</span><br><span style="color: hsl(0, 100%, 40%);">-    print "Running tests for specific SMPP"</span><br><span style="color: hsl(120, 100%, 40%);">+    print("Running tests for specific SMPP")</span><br><span>     suite = unittest.TestSuite()</span><br><span>     suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestSMPPMSC))</span><br><span>     res = unittest.TextTestRunner(verbosity=verbose_level).run(suite)</span><br><span>diff --git a/tests/vty_test_runner.py b/tests/vty_test_runner.py</span><br><span>index 471ecf6..f954b5d 100755</span><br><span>--- a/tests/vty_test_runner.py</span><br><span>+++ b/tests/vty_test_runner.py</span><br><span>@@ -1,4 +1,4 @@</span><br><span style="color: hsl(0, 100%, 40%);">-#!/usr/bin/env python2</span><br><span style="color: hsl(120, 100%, 40%);">+#!/usr/bin/env python3</span><br><span> </span><br><span> # (C) 2013 by Katerina Barone-Adesi <kat.obsc@gmail.com></span><br><span> # (C) 2013 by Holger Hans Peter Freyther</span><br><span>@@ -33,9 +33,9 @@</span><br><span>     def checkForEndAndExit(self):</span><br><span>         res = self.vty.command("list")</span><br><span>         #print ('looking for "exit"\n')</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assert_(res.find('  exit\r') > 0)</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertTrue(res.find('  exit\r') > 0)</span><br><span>         #print 'found "exit"\nlooking for "end"\n'</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assert_(res.find('  end\r') > 0)</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertTrue(res.find('  end\r') > 0)</span><br><span>         #print 'found "end"\n'</span><br><span> </span><br><span>     def vty_command(self):</span><br><span>@@ -54,8 +54,8 @@</span><br><span>         try:</span><br><span>             self.proc = osmoutil.popen_devnull(osmo_vty_cmd)</span><br><span>         except OSError:</span><br><span style="color: hsl(0, 100%, 40%);">-            print >> sys.stderr, "Current directory: %s" % os.getcwd()</span><br><span style="color: hsl(0, 100%, 40%);">-            print >> sys.stderr, "Consider setting -b"</span><br><span style="color: hsl(120, 100%, 40%);">+            print("Current directory: %s" % os.getcwd(), file=sys.stderr)</span><br><span style="color: hsl(120, 100%, 40%);">+            print("Consider setting -b", file=sys.stderr)</span><br><span> </span><br><span>         appstring = self.vty_app()[2]</span><br><span>         appport = self.vty_app()[0]</span><br><span>@@ -79,14 +79,14 @@</span><br><span>     def testConfigNetworkTree(self, include_bsc_items=True):</span><br><span>         self.vty.enable()</span><br><span>         self.assertTrue(self.vty.verify("configure terminal",['']))</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEquals(self.vty.node(), 'config')</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertEqual(self.vty.node(), 'config')</span><br><span>         self.checkForEndAndExit()</span><br><span>         self.assertTrue(self.vty.verify("network",['']))</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEquals(self.vty.node(), 'config-net')</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertEqual(self.vty.node(), 'config-net')</span><br><span>         self.checkForEndAndExit()</span><br><span>         self.vty.command("write terminal")</span><br><span>         self.assertTrue(self.vty.verify("exit",['']))</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEquals(self.vty.node(), 'config')</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertEqual(self.vty.node(), 'config')</span><br><span>         self.assertTrue(self.vty.verify("exit",['']))</span><br><span>         self.assertTrue(self.vty.node() is None)</span><br><span> </span><br><span>@@ -107,35 +107,35 @@</span><br><span> </span><br><span>         # check the default</span><br><span>         res = self.vty.command("write terminal")</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assert_(res.find(' no smpp-first') > 0)</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertTrue(res.find(' no smpp-first') > 0)</span><br><span> </span><br><span>         self.vty.verify("smpp-first", [''])</span><br><span>         res = self.vty.command("write terminal")</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assert_(res.find(' smpp-first') > 0)</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEquals(res.find('no smpp-first'), -1)</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertTrue(res.find(' smpp-first') > 0)</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertEqual(res.find('no smpp-first'), -1)</span><br><span> </span><br><span>         self.vty.verify("no smpp-first", [''])</span><br><span>         res = self.vty.command("write terminal")</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assert_(res.find('no smpp-first') > 0)</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertTrue(res.find('no smpp-first') > 0)</span><br><span> </span><br><span>     def testVtyTree(self):</span><br><span>         self.vty.enable()</span><br><span>         self.assertTrue(self.vty.verify("configure terminal", ['']))</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEquals(self.vty.node(), 'config')</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertEqual(self.vty.node(), 'config')</span><br><span>         self.checkForEndAndExit()</span><br><span>         self.assertTrue(self.vty.verify('mncc-int', ['']))</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEquals(self.vty.node(), 'config-mncc-int')</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertEqual(self.vty.node(), 'config-mncc-int')</span><br><span>         self.checkForEndAndExit()</span><br><span>         self.assertTrue(self.vty.verify('exit', ['']))</span><br><span> </span><br><span>         if self.checkForSmpp():</span><br><span style="color: hsl(0, 100%, 40%);">-            self.assertEquals(self.vty.node(), 'config')</span><br><span style="color: hsl(120, 100%, 40%);">+            self.assertEqual(self.vty.node(), 'config')</span><br><span>             self.assertTrue(self.vty.verify('smpp', ['']))</span><br><span style="color: hsl(0, 100%, 40%);">-            self.assertEquals(self.vty.node(), 'config-smpp')</span><br><span style="color: hsl(120, 100%, 40%);">+            self.assertEqual(self.vty.node(), 'config-smpp')</span><br><span>             self.checkForEndAndExit()</span><br><span>             self.assertTrue(self.vty.verify("exit", ['']))</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEquals(self.vty.node(), 'config')</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertEqual(self.vty.node(), 'config')</span><br><span>         self.assertTrue(self.vty.verify("exit", ['']))</span><br><span>         self.assertTrue(self.vty.node() is None)</span><br><span> </span><br><span>@@ -145,10 +145,10 @@</span><br><span> </span><br><span>         if self.checkForSmpp():</span><br><span>             self.vty.command('smpp')</span><br><span style="color: hsl(0, 100%, 40%);">-            self.assertEquals(self.vty.node(), 'config-smpp')</span><br><span style="color: hsl(120, 100%, 40%);">+            self.assertEqual(self.vty.node(), 'config-smpp')</span><br><span>             self.vty.command('mncc-int')</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEquals(self.vty.node(), 'config-mncc-int')</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertEqual(self.vty.node(), 'config-mncc-int')</span><br><span> </span><br><span>     def testSi2Q(self):</span><br><span>         self.vty.enable()</span><br><span>@@ -162,7 +162,7 @@</span><br><span>         self.vty.command("si2quater neighbor-list del earfcn 1911")</span><br><span>         self.vty.command("si2quater neighbor-list del earfcn 1924")</span><br><span>         self.vty.command("si2quater neighbor-list del earfcn 2111")</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEquals(before, self.vty.command("show running-config"))</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertEqual(before, self.vty.command("show running-config"))</span><br><span>         self.vty.command("si2quater neighbor-list add uarfcn 1976 13 1")</span><br><span>         self.vty.command("si2quater neighbor-list add uarfcn 1976 38 1")</span><br><span>         self.vty.command("si2quater neighbor-list add uarfcn 1976 44 1")</span><br><span>@@ -185,7 +185,7 @@</span><br><span>         self.vty.command("si2quater neighbor-list del uarfcn 1976 224")</span><br><span>         self.vty.command("si2quater neighbor-list del uarfcn 1976 225")</span><br><span>         self.vty.command("si2quater neighbor-list del uarfcn 1976 226")</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEquals(before, self.vty.command("show running-config"))</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertEqual(before, self.vty.command("show running-config"))</span><br><span> </span><br><span>     def testEnableDisablePeriodicLU(self):</span><br><span>         self.vty.enable()</span><br><span>@@ -201,18 +201,18 @@</span><br><span>         # Enable periodic lu..</span><br><span>         self.vty.verify("periodic location update 60", [''])</span><br><span>         res = self.vty.command("write terminal")</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assert_(res.find('periodic location update 60') > 0)</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEquals(res.find('no periodic location update'), -1)</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertTrue(res.find('periodic location update 60') > 0)</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertEqual(res.find('no periodic location update'), -1)</span><br><span> </span><br><span>         # Now disable it..</span><br><span>         self.vty.verify("no periodic location update", [''])</span><br><span>         res = self.vty.command("write terminal")</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEquals(res.find('periodic location update 60'), -1)</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assert_(res.find('no periodic location update') > 0)</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertEqual(res.find('periodic location update 60'), -1)</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertTrue(res.find('no periodic location update') > 0)</span><br><span> </span><br><span>     def testShowNetwork(self):</span><br><span>         res = self.vty.command("show network")</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assert_(res.startswith('BSC is on Country Code') >= 0)</span><br><span style="color: hsl(120, 100%, 40%);">+        self.assertTrue(res.startswith('BSC is on Country Code') >= 0)</span><br><span> </span><br><span> def ipa_handle_small(x, verbose = False):</span><br><span>     s = data2str(x.recv(4))</span><br><span>@@ -220,42 +220,42 @@</span><br><span>       raise Exception("expected to receive 4 bytes, but got %d (%r)" % (len(s)/2, s))</span><br><span>     if "0001fe00" == s:</span><br><span>         if (verbose):</span><br><span style="color: hsl(0, 100%, 40%);">-            print "\tBSC <- NAT: PING?"</span><br><span style="color: hsl(120, 100%, 40%);">+            print("\tBSC <- NAT: PING?")</span><br><span>         x.send(IPA().pong())</span><br><span>     elif "0001fe06" == s:</span><br><span>         if (verbose):</span><br><span style="color: hsl(0, 100%, 40%);">-            print "\tBSC <- NAT: IPA ID ACK"</span><br><span style="color: hsl(120, 100%, 40%);">+            print("\tBSC <- NAT: IPA ID ACK")</span><br><span>         x.send(IPA().id_ack())</span><br><span>     elif "0001fe00" == s:</span><br><span>         if (verbose):</span><br><span style="color: hsl(0, 100%, 40%);">-            print "\tBSC <- NAT: PONG!"</span><br><span style="color: hsl(120, 100%, 40%);">+            print("\tBSC <- NAT: PONG!")</span><br><span>     else:</span><br><span>         if (verbose):</span><br><span style="color: hsl(0, 100%, 40%);">-            print "\tBSC <- NAT: ", s</span><br><span style="color: hsl(120, 100%, 40%);">+            print("\tBSC <- NAT: ", s)</span><br><span> </span><br><span> def ipa_handle_resp(x, tk, verbose = False, proc=None):</span><br><span>     s = data2str(x.recv(38))</span><br><span>     if "0023fe040108010701020103010401050101010011" in s:</span><br><span>         retries = 3</span><br><span>         while True:</span><br><span style="color: hsl(0, 100%, 40%);">-            print "\tsending IPA identity(%s) at %s" % (tk, time.strftime("%T"))</span><br><span style="color: hsl(120, 100%, 40%);">+            print("\tsending IPA identity(%s) at %s" % (tk, time.strftime("%T")))</span><br><span>             try:</span><br><span>                 x.send(IPA().id_resp(IPA().identity(name = tk.encode('utf-8'))))</span><br><span style="color: hsl(0, 100%, 40%);">-                print "\tdone sending IPA identity(%s) at %s" % (tk,</span><br><span style="color: hsl(0, 100%, 40%);">-                                                            time.strftime("%T"))</span><br><span style="color: hsl(120, 100%, 40%);">+                print("\tdone sending IPA identity(%s) at %s" % (tk,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                            time.strftime("%T")))</span><br><span>                 break</span><br><span>             except:</span><br><span style="color: hsl(0, 100%, 40%);">-                print "\tfailed sending IPA identity at", time.strftime("%T")</span><br><span style="color: hsl(120, 100%, 40%);">+                print("\tfailed sending IPA identity at", time.strftime("%T"))</span><br><span>                 if proc:</span><br><span style="color: hsl(0, 100%, 40%);">-                  print "\tproc.poll() = %r" % proc.poll()</span><br><span style="color: hsl(120, 100%, 40%);">+                  print("\tproc.poll() = %r" % proc.poll())</span><br><span>                 if retries < 1:</span><br><span style="color: hsl(0, 100%, 40%);">-                    print "\tgiving up"</span><br><span style="color: hsl(120, 100%, 40%);">+                    print("\tgiving up")</span><br><span>                     raise</span><br><span style="color: hsl(0, 100%, 40%);">-                print "\tretrying (%d attempts left)" % retries</span><br><span style="color: hsl(120, 100%, 40%);">+                print("\tretrying (%d attempts left)" % retries)</span><br><span>                 retries -= 1</span><br><span>     else:</span><br><span>         if (verbose):</span><br><span style="color: hsl(0, 100%, 40%);">-            print "\tBSC <- NAT: ", s</span><br><span style="color: hsl(120, 100%, 40%);">+            print("\tBSC <- NAT: ", s)</span><br><span> </span><br><span> if __name__ == '__main__':</span><br><span>     import argparse</span><br><span>@@ -283,9 +283,9 @@</span><br><span>     if args.p:</span><br><span>         confpath = args.p</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    print "confpath %s, workdir %s" % (confpath, workdir)</span><br><span style="color: hsl(120, 100%, 40%);">+    print("confpath %s, workdir %s" % (confpath, workdir))</span><br><span>     os.chdir(workdir)</span><br><span style="color: hsl(0, 100%, 40%);">-    print "Running tests for specific VTY commands"</span><br><span style="color: hsl(120, 100%, 40%);">+    print("Running tests for specific VTY commands")</span><br><span>     suite = unittest.TestSuite()</span><br><span>     suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestVTYMSC))</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-msc/+/16550">change 16550</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-msc/+/16550"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-msc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I53ccde96dd3785098df0f7d693c504c8b8302e90 </div>
<div style="display:none"> Gerrit-Change-Number: 16550 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>