osmoappdesc.py, tests: switch to python 3

Make build and external tests work with python3, so we can drop
the python2 dependency.

This should be merged shortly after osmo-python-tests was migrated to
python3, and the jenkins build slaves were (automatically) updated to
have the new osmo-python-tests installed.

Related: OS#2819
Depends: osmo-python-tests I3ffc3519bf6c22536a49dad7a966188ddad351a7
Change-Id: I53ccde96dd3785098df0f7d693c504c8b8302e90
This commit is contained in:
Oliver Smith 2019-12-10 13:21:11 +01:00 committed by osmith
parent 63b246453b
commit 6dbdf1454d
4 changed files with 60 additions and 60 deletions

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python #!/usr/bin/env python3
# (C) 2013 by Katerina Barone-Adesi <kat.obsc@gmail.com> # (C) 2013 by Katerina Barone-Adesi <kat.obsc@gmail.com>
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python2 #!/usr/bin/env python3
# (C) 2013 by Jacob Erlbeck <jerlbeck@sysmocom.de> # (C) 2013 by Jacob Erlbeck <jerlbeck@sysmocom.de>
# (C) 2014 by Holger Hans Peter Freyther # (C) 2014 by Holger Hans Peter Freyther
@ -53,8 +53,8 @@ class TestCtrlBase(unittest.TestCase):
try: try:
self.proc = osmoutil.popen_devnull(osmo_ctrl_cmd) self.proc = osmoutil.popen_devnull(osmo_ctrl_cmd)
except OSError: except OSError:
print >> sys.stderr, "Current directory: %s" % os.getcwd() print("Current directory: %s" % os.getcwd(), file=sys.stderr)
print >> sys.stderr, "Consider setting -b" print("Consider setting -b", file=sys.stderr)
time.sleep(2) time.sleep(2)
appstring = self.ctrl_app()[2] appstring = self.ctrl_app()[2]
@ -72,7 +72,7 @@ class TestCtrlBase(unittest.TestCase):
def connect(self, host, port): def connect(self, host, port):
if verbose: if verbose:
print "Connecting to host %s:%i" % (host, port) print("Connecting to host %s:%i" % (host, port))
retries = 30 retries = 30
while True: while True:
@ -92,7 +92,7 @@ class TestCtrlBase(unittest.TestCase):
def send(self, data): def send(self, data):
if verbose: if verbose:
print "Sending \"%s\"" %(data) print("Sending \"%s\"" %(data))
data = Ctrl().add_header(data) data = Ctrl().add_header(data)
return self.sock.send(data) == len(data) return self.sock.send(data) == len(data)
@ -123,7 +123,7 @@ class TestCtrlBase(unittest.TestCase):
(head, data) = IPA().split_combined(data) (head, data) = IPA().split_combined(data)
answer = Ctrl().rem_header(head) answer = Ctrl().rem_header(head)
if verbose: if verbose:
print "Got message:", answer print("Got message:", answer)
(mtype, id, msg) = answer.split(None, 2) (mtype, id, msg) = answer.split(None, 2)
id = int(id) id = int(id)
rsp = {'mtype': mtype, 'id': id} rsp = {'mtype': mtype, 'id': id}
@ -139,7 +139,7 @@ class TestCtrlBase(unittest.TestCase):
responses[id] = rsp responses[id] = rsp
if verbose: if verbose:
print "Decoded replies: ", responses print("Decoded replies: ", responses)
return responses return responses
@ -183,9 +183,9 @@ if __name__ == '__main__':
if args.p: if args.p:
confpath = args.p confpath = args.p
print "confpath %s, workdir %s" % (confpath, workdir) print("confpath %s, workdir %s" % (confpath, workdir))
os.chdir(workdir) os.chdir(workdir)
print "Running tests for specific control commands" print("Running tests for specific control commands")
suite = unittest.TestSuite() suite = unittest.TestSuite()
suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestCtrlMSC)) suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestCtrlMSC))
res = unittest.TextTestRunner(verbosity=verbose_level).run(suite) res = unittest.TextTestRunner(verbosity=verbose_level).run(suite)

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python2 #!/usr/bin/env python3
# (C) 2014 by Holger Hans Peter Freyther # (C) 2014 by Holger Hans Peter Freyther
# based on vty_test_runner.py: # based on vty_test_runner.py:
@ -46,8 +46,8 @@ class TestVTYBase(unittest.TestCase):
try: try:
self.proc = osmoutil.popen_devnull(osmo_vty_cmd) self.proc = osmoutil.popen_devnull(osmo_vty_cmd)
except OSError: except OSError:
print >> sys.stderr, "Current directory: %s" % os.getcwd() print("Current directory: %s" % os.getcwd(), file=sys.stderr)
print >> sys.stderr, "Consider setting -b" print("Consider setting -b", file=sys.stderr)
appstring = self.vty_app()[2] appstring = self.vty_app()[2]
appport = self.vty_app()[0] appport = self.vty_app()[0]
@ -73,14 +73,14 @@ class TestSMPPMSC(TestVTYBase):
# Enable the configuration # Enable the configuration
self.vty.enable() self.vty.enable()
self.assertTrue(self.vty.verify("configure terminal", [''])) self.assertTrue(self.vty.verify("configure terminal", ['']))
self.assertEquals(self.vty.node(), 'config') self.assertEqual(self.vty.node(), 'config')
self.assertTrue(self.vty.verify('smpp', [''])) self.assertTrue(self.vty.verify('smpp', ['']))
self.assertEquals(self.vty.node(), 'config-smpp') self.assertEqual(self.vty.node(), 'config-smpp')
self.assertTrue(self.vty.verify('system-id test', [''])) self.assertTrue(self.vty.verify('system-id test', ['']))
self.assertTrue(self.vty.verify('local-tcp-port 2775', [''])) self.assertTrue(self.vty.verify('local-tcp-port 2775', ['']))
self.assertTrue(self.vty.verify('esme test', [''])) self.assertTrue(self.vty.verify('esme test', ['']))
self.assertEquals(self.vty.node(), 'config-smpp-esme') self.assertEqual(self.vty.node(), 'config-smpp-esme')
self.assertTrue(self.vty.verify('default-route', [''])) self.assertTrue(self.vty.verify('default-route', ['']))
self.assertTrue(self.vty.verify('end', [''])) self.assertTrue(self.vty.verify('end', ['']))
@ -88,7 +88,7 @@ class TestSMPPMSC(TestVTYBase):
sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sck.setblocking(1) sck.setblocking(1)
sck.connect(('0.0.0.0', 2775)) sck.connect(('0.0.0.0', 2775))
sck.sendall('\x00\x00\x00\x02\x00') sck.sendall(b'\x00\x00\x00\x02\x00')
sck.close() sck.close()
# Check if the VTY is still there # Check if the VTY is still there
@ -98,7 +98,7 @@ class TestSMPPMSC(TestVTYBase):
sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sck.setblocking(1) sck.setblocking(1)
sck.connect(('0.0.0.0', 2775)) sck.connect(('0.0.0.0', 2775))
sck.sendall('\x00\x01\x00\x01\x01') sck.sendall(b'\x00\x01\x00\x01\x01')
sck.close() sck.close()
self.vty.verify('enable',['']) self.vty.verify('enable',[''])
@ -128,9 +128,9 @@ if __name__ == '__main__':
if args.p: if args.p:
confpath = args.p confpath = args.p
print "confpath %s, workdir %s" % (confpath, workdir) print("confpath %s, workdir %s" % (confpath, workdir))
os.chdir(workdir) os.chdir(workdir)
print "Running tests for specific SMPP" print("Running tests for specific SMPP")
suite = unittest.TestSuite() suite = unittest.TestSuite()
suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestSMPPMSC)) suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestSMPPMSC))
res = unittest.TextTestRunner(verbosity=verbose_level).run(suite) res = unittest.TextTestRunner(verbosity=verbose_level).run(suite)

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python2 #!/usr/bin/env python3
# (C) 2013 by Katerina Barone-Adesi <kat.obsc@gmail.com> # (C) 2013 by Katerina Barone-Adesi <kat.obsc@gmail.com>
# (C) 2013 by Holger Hans Peter Freyther # (C) 2013 by Holger Hans Peter Freyther
@ -33,9 +33,9 @@ class TestVTYBase(unittest.TestCase):
def checkForEndAndExit(self): def checkForEndAndExit(self):
res = self.vty.command("list") res = self.vty.command("list")
#print ('looking for "exit"\n') #print ('looking for "exit"\n')
self.assert_(res.find(' exit\r') > 0) self.assertTrue(res.find(' exit\r') > 0)
#print 'found "exit"\nlooking for "end"\n' #print 'found "exit"\nlooking for "end"\n'
self.assert_(res.find(' end\r') > 0) self.assertTrue(res.find(' end\r') > 0)
#print 'found "end"\n' #print 'found "end"\n'
def vty_command(self): def vty_command(self):
@ -54,8 +54,8 @@ class TestVTYBase(unittest.TestCase):
try: try:
self.proc = osmoutil.popen_devnull(osmo_vty_cmd) self.proc = osmoutil.popen_devnull(osmo_vty_cmd)
except OSError: except OSError:
print >> sys.stderr, "Current directory: %s" % os.getcwd() print("Current directory: %s" % os.getcwd(), file=sys.stderr)
print >> sys.stderr, "Consider setting -b" print("Consider setting -b", file=sys.stderr)
appstring = self.vty_app()[2] appstring = self.vty_app()[2]
appport = self.vty_app()[0] appport = self.vty_app()[0]
@ -79,14 +79,14 @@ class TestVTYMSC(TestVTYBase):
def testConfigNetworkTree(self, include_bsc_items=True): def testConfigNetworkTree(self, include_bsc_items=True):
self.vty.enable() self.vty.enable()
self.assertTrue(self.vty.verify("configure terminal",[''])) self.assertTrue(self.vty.verify("configure terminal",['']))
self.assertEquals(self.vty.node(), 'config') self.assertEqual(self.vty.node(), 'config')
self.checkForEndAndExit() self.checkForEndAndExit()
self.assertTrue(self.vty.verify("network",[''])) self.assertTrue(self.vty.verify("network",['']))
self.assertEquals(self.vty.node(), 'config-net') self.assertEqual(self.vty.node(), 'config-net')
self.checkForEndAndExit() self.checkForEndAndExit()
self.vty.command("write terminal") self.vty.command("write terminal")
self.assertTrue(self.vty.verify("exit",[''])) self.assertTrue(self.vty.verify("exit",['']))
self.assertEquals(self.vty.node(), 'config') self.assertEqual(self.vty.node(), 'config')
self.assertTrue(self.vty.verify("exit",[''])) self.assertTrue(self.vty.verify("exit",['']))
self.assertTrue(self.vty.node() is None) self.assertTrue(self.vty.node() is None)
@ -107,35 +107,35 @@ class TestVTYMSC(TestVTYBase):
# check the default # check the default
res = self.vty.command("write terminal") res = self.vty.command("write terminal")
self.assert_(res.find(' no smpp-first') > 0) self.assertTrue(res.find(' no smpp-first') > 0)
self.vty.verify("smpp-first", ['']) self.vty.verify("smpp-first", [''])
res = self.vty.command("write terminal") res = self.vty.command("write terminal")
self.assert_(res.find(' smpp-first') > 0) self.assertTrue(res.find(' smpp-first') > 0)
self.assertEquals(res.find('no smpp-first'), -1) self.assertEqual(res.find('no smpp-first'), -1)
self.vty.verify("no smpp-first", ['']) self.vty.verify("no smpp-first", [''])
res = self.vty.command("write terminal") res = self.vty.command("write terminal")
self.assert_(res.find('no smpp-first') > 0) self.assertTrue(res.find('no smpp-first') > 0)
def testVtyTree(self): def testVtyTree(self):
self.vty.enable() self.vty.enable()
self.assertTrue(self.vty.verify("configure terminal", [''])) self.assertTrue(self.vty.verify("configure terminal", ['']))
self.assertEquals(self.vty.node(), 'config') self.assertEqual(self.vty.node(), 'config')
self.checkForEndAndExit() self.checkForEndAndExit()
self.assertTrue(self.vty.verify('mncc-int', [''])) self.assertTrue(self.vty.verify('mncc-int', ['']))
self.assertEquals(self.vty.node(), 'config-mncc-int') self.assertEqual(self.vty.node(), 'config-mncc-int')
self.checkForEndAndExit() self.checkForEndAndExit()
self.assertTrue(self.vty.verify('exit', [''])) self.assertTrue(self.vty.verify('exit', ['']))
if self.checkForSmpp(): if self.checkForSmpp():
self.assertEquals(self.vty.node(), 'config') self.assertEqual(self.vty.node(), 'config')
self.assertTrue(self.vty.verify('smpp', [''])) self.assertTrue(self.vty.verify('smpp', ['']))
self.assertEquals(self.vty.node(), 'config-smpp') self.assertEqual(self.vty.node(), 'config-smpp')
self.checkForEndAndExit() self.checkForEndAndExit()
self.assertTrue(self.vty.verify("exit", [''])) self.assertTrue(self.vty.verify("exit", ['']))
self.assertEquals(self.vty.node(), 'config') self.assertEqual(self.vty.node(), 'config')
self.assertTrue(self.vty.verify("exit", [''])) self.assertTrue(self.vty.verify("exit", ['']))
self.assertTrue(self.vty.node() is None) self.assertTrue(self.vty.node() is None)
@ -145,10 +145,10 @@ class TestVTYMSC(TestVTYBase):
if self.checkForSmpp(): if self.checkForSmpp():
self.vty.command('smpp') self.vty.command('smpp')
self.assertEquals(self.vty.node(), 'config-smpp') self.assertEqual(self.vty.node(), 'config-smpp')
self.vty.command('mncc-int') self.vty.command('mncc-int')
self.assertEquals(self.vty.node(), 'config-mncc-int') self.assertEqual(self.vty.node(), 'config-mncc-int')
def testSi2Q(self): def testSi2Q(self):
self.vty.enable() self.vty.enable()
@ -162,7 +162,7 @@ class TestVTYMSC(TestVTYBase):
self.vty.command("si2quater neighbor-list del earfcn 1911") self.vty.command("si2quater neighbor-list del earfcn 1911")
self.vty.command("si2quater neighbor-list del earfcn 1924") self.vty.command("si2quater neighbor-list del earfcn 1924")
self.vty.command("si2quater neighbor-list del earfcn 2111") self.vty.command("si2quater neighbor-list del earfcn 2111")
self.assertEquals(before, self.vty.command("show running-config")) self.assertEqual(before, self.vty.command("show running-config"))
self.vty.command("si2quater neighbor-list add uarfcn 1976 13 1") self.vty.command("si2quater neighbor-list add uarfcn 1976 13 1")
self.vty.command("si2quater neighbor-list add uarfcn 1976 38 1") self.vty.command("si2quater neighbor-list add uarfcn 1976 38 1")
self.vty.command("si2quater neighbor-list add uarfcn 1976 44 1") self.vty.command("si2quater neighbor-list add uarfcn 1976 44 1")
@ -185,7 +185,7 @@ class TestVTYMSC(TestVTYBase):
self.vty.command("si2quater neighbor-list del uarfcn 1976 224") self.vty.command("si2quater neighbor-list del uarfcn 1976 224")
self.vty.command("si2quater neighbor-list del uarfcn 1976 225") self.vty.command("si2quater neighbor-list del uarfcn 1976 225")
self.vty.command("si2quater neighbor-list del uarfcn 1976 226") self.vty.command("si2quater neighbor-list del uarfcn 1976 226")
self.assertEquals(before, self.vty.command("show running-config")) self.assertEqual(before, self.vty.command("show running-config"))
def testEnableDisablePeriodicLU(self): def testEnableDisablePeriodicLU(self):
self.vty.enable() self.vty.enable()
@ -201,18 +201,18 @@ class TestVTYMSC(TestVTYBase):
# Enable periodic lu.. # Enable periodic lu..
self.vty.verify("periodic location update 60", ['']) self.vty.verify("periodic location update 60", [''])
res = self.vty.command("write terminal") res = self.vty.command("write terminal")
self.assert_(res.find('periodic location update 60') > 0) self.assertTrue(res.find('periodic location update 60') > 0)
self.assertEquals(res.find('no periodic location update'), -1) self.assertEqual(res.find('no periodic location update'), -1)
# Now disable it.. # Now disable it..
self.vty.verify("no periodic location update", ['']) self.vty.verify("no periodic location update", [''])
res = self.vty.command("write terminal") res = self.vty.command("write terminal")
self.assertEquals(res.find('periodic location update 60'), -1) self.assertEqual(res.find('periodic location update 60'), -1)
self.assert_(res.find('no periodic location update') > 0) self.assertTrue(res.find('no periodic location update') > 0)
def testShowNetwork(self): def testShowNetwork(self):
res = self.vty.command("show network") res = self.vty.command("show network")
self.assert_(res.startswith('BSC is on Country Code') >= 0) self.assertTrue(res.startswith('BSC is on Country Code') >= 0)
def ipa_handle_small(x, verbose = False): def ipa_handle_small(x, verbose = False):
s = data2str(x.recv(4)) s = data2str(x.recv(4))
@ -220,42 +220,42 @@ def ipa_handle_small(x, verbose = False):
raise Exception("expected to receive 4 bytes, but got %d (%r)" % (len(s)/2, s)) raise Exception("expected to receive 4 bytes, but got %d (%r)" % (len(s)/2, s))
if "0001fe00" == s: if "0001fe00" == s:
if (verbose): if (verbose):
print "\tBSC <- NAT: PING?" print("\tBSC <- NAT: PING?")
x.send(IPA().pong()) x.send(IPA().pong())
elif "0001fe06" == s: elif "0001fe06" == s:
if (verbose): if (verbose):
print "\tBSC <- NAT: IPA ID ACK" print("\tBSC <- NAT: IPA ID ACK")
x.send(IPA().id_ack()) x.send(IPA().id_ack())
elif "0001fe00" == s: elif "0001fe00" == s:
if (verbose): if (verbose):
print "\tBSC <- NAT: PONG!" print("\tBSC <- NAT: PONG!")
else: else:
if (verbose): if (verbose):
print "\tBSC <- NAT: ", s print("\tBSC <- NAT: ", s)
def ipa_handle_resp(x, tk, verbose = False, proc=None): def ipa_handle_resp(x, tk, verbose = False, proc=None):
s = data2str(x.recv(38)) s = data2str(x.recv(38))
if "0023fe040108010701020103010401050101010011" in s: if "0023fe040108010701020103010401050101010011" in s:
retries = 3 retries = 3
while True: while True:
print "\tsending IPA identity(%s) at %s" % (tk, time.strftime("%T")) print("\tsending IPA identity(%s) at %s" % (tk, time.strftime("%T")))
try: try:
x.send(IPA().id_resp(IPA().identity(name = tk.encode('utf-8')))) x.send(IPA().id_resp(IPA().identity(name = tk.encode('utf-8'))))
print "\tdone sending IPA identity(%s) at %s" % (tk, print("\tdone sending IPA identity(%s) at %s" % (tk,
time.strftime("%T")) time.strftime("%T")))
break break
except: except:
print "\tfailed sending IPA identity at", time.strftime("%T") print("\tfailed sending IPA identity at", time.strftime("%T"))
if proc: if proc:
print "\tproc.poll() = %r" % proc.poll() print("\tproc.poll() = %r" % proc.poll())
if retries < 1: if retries < 1:
print "\tgiving up" print("\tgiving up")
raise raise
print "\tretrying (%d attempts left)" % retries print("\tretrying (%d attempts left)" % retries)
retries -= 1 retries -= 1
else: else:
if (verbose): if (verbose):
print "\tBSC <- NAT: ", s print("\tBSC <- NAT: ", s)
if __name__ == '__main__': if __name__ == '__main__':
import argparse import argparse
@ -283,9 +283,9 @@ if __name__ == '__main__':
if args.p: if args.p:
confpath = args.p confpath = args.p
print "confpath %s, workdir %s" % (confpath, workdir) print("confpath %s, workdir %s" % (confpath, workdir))
os.chdir(workdir) os.chdir(workdir)
print "Running tests for specific VTY commands" print("Running tests for specific VTY commands")
suite = unittest.TestSuite() suite = unittest.TestSuite()
suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestVTYMSC)) suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestVTYMSC))