diff --git a/tests/ctrl_test_runner.py b/tests/ctrl_test_runner.py index d4531974..7c14f504 100644 --- a/tests/ctrl_test_runner.py +++ b/tests/ctrl_test_runner.py @@ -163,6 +163,46 @@ class TestCtrlBase(unittest.TestCase): return responses +class TestCtrlHLR(TestCtrlBase): + + HLR_DB = 'hlr_ctrl_test.db' + HLR_SQL = '%s/sql/hlr.sql' % confpath + HLR_TEST_SQL = '%s/tests/test_subscriber.sql' % confpath + + def setUp(self): + print('\n') + print(os.getcwd()) + assert subprocess.call('sqlite3 %s < %s' % (self.HLR_DB, self.HLR_SQL), shell=True) == 0 + assert subprocess.call('sqlite3 %s < %s' % (self.HLR_DB, self.HLR_TEST_SQL), shell=True) == 0 + super(TestCtrlHLR, self).setUp() + + def tearDown(self): + super(TestCtrlHLR, self).tearDown() + os.unlink("hlr_ctrl_test.db") + + def ctrl_command(self): + return ["./src/osmo-hlr", "-c", "doc/examples/osmo-hlr.cfg", '-l', 'hlr_ctrl_test.db'] + + def ctrl_app(self): + return (4259, "./src/osmo-hlr", "OsmoHLR", "hlr") + + def testCtrlErrs(self): + r = self.do_get('invalid') + self.assertEquals(r['mtype'], 'ERROR') + self.assertEquals(r['error'], 'Command not found') + + def testEnableDisablePs(self): + self.assert_set('enable-ps', '901990000000001', 'OK') + self.assert_set('status-ps', '901990000000001', '1') + self.assert_set('enable-ps', '901990000000001', 'OK') + self.assert_set('status-ps', '901990000000001', '1') + self.assert_set('disable-ps', '901990000000001', 'OK') + self.assert_set('status-ps', '901990000000001', '0') + self.assert_set('disable-ps', '901990000000001', 'OK') + self.assert_set('status-ps', '901990000000001', '0') + self.assert_set('enable-ps', '901990000000001', 'OK') + self.assert_set('status-ps', '901990000000001', '1') + if __name__ == '__main__': import argparse import sys @@ -193,6 +233,8 @@ if __name__ == '__main__': os.chdir(workdir) print "Running tests for specific control commands" suite = unittest.TestSuite() + test = unittest.TestLoader().loadTestsFromTestCase(TestCtrlHLR) + suite.addTest(test) res = unittest.TextTestRunner(verbosity=verbose_level).run(suite) sys.exit(len(res.errors) + len(res.failures)) diff --git a/tests/test_subscriber.sql b/tests/test_subscriber.sql new file mode 100644 index 00000000..0767d486 --- /dev/null +++ b/tests/test_subscriber.sql @@ -0,0 +1,13 @@ + +-- 2G only subscriber +INSERT INTO subscriber (id, imsi) VALUES (1, '901990000000001'); +INSERT INTO auc_2g (subscriber_id, algo_id_2g, ki) VALUES (1, 1, '000102030405060708090a0b0c0d0e0f'); + +-- 3G only subscriber +INSERT INTO subscriber (id, imsi) VALUES (2, '901990000000002'); +INSERT INTO auc_3g (subscriber_id, algo_id_3g, k, opc, sqn) VALUES (2, 5, '000102030405060708090a0b0c0d0e0f', '101112131415161718191a1b1c1d1e1f', 0); + +-- 2G + 3G subscriber +INSERT INTO subscriber (id, imsi) VALUES (3, '901990000000003'); +INSERT INTO auc_2g (subscriber_id, algo_id_2g, ki) VALUES (3, 1, '000102030405060708090a0b0c0d0e0f'); +INSERT INTO auc_3g (subscriber_id, algo_id_3g, k, opc, sqn) VALUES (3, 5, '000102030405060708090a0b0c0d0e0f', '101112131415161718191a1b1c1d1e1f', 0);