def test_load_asylum_file(self): system = System() sqlite.init('sqlite://') system.sqlite.create_nefw_database() path = get_fixture_path('helloworld') Container.build(path)
class SubscriberSetTestCase(MockSocketTestCase): fixture_file = get_fixture_path('subscriber_set.txt') @classmethod def setUpClass(cls): super(SubscriberSetTestCase, cls).setUpClass() cls.s = osmocom.subscribers.Subscribers() cls.s.open() @classmethod def tearDownClass(cls): super(SubscriberSetTestCase, cls).tearDownClass() cls.s.close() def test_set_extension(self): """Test set subscriber extension.""" self.s.set_extension('IMSI901550000000001', '5722543') self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'subscriber imsi 901550000000001 extension 5722543\r\n' + 'disable\r\n') def test_set_name(self): """Test set subscriber name.""" self.s.set_name('901550000000001', 'Omar') self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'subscriber imsi 901550000000001 name Omar\r\n' + 'disable\r\n') def test_set_authorized(self): """Test set subscriber auth.""" self.s.set_authorized('901550000000001', 1) self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'subscriber imsi 901550000000001 authorized 1\r\n' + 'disable\r\n')
class BTSGetOfflineTestCase(MockSocketTestCase): fixture_file = get_fixture_path('bts_get_offline.txt') @classmethod def setUpClass(cls): super(BTSGetOfflineTestCase, cls).setUpClass() cls.b = osmocom.bts.BTS() cls.b.open() def test_get_offline(self): """Test reading bts settings.""" data = self.b.show(0) self.assertEqual(data['ms_max_power'], '12') self.assertEqual(data['ci'], '1') self.assertEqual(data['ms_min_rx'], '-110') self.assertEqual(data['bsic'], '61') self.assertEqual(data['bcc'], '5') self.assertEqual(data['trx_count'], '1') self.assertEqual(data['lac'], '3') self.assertEqual(data['band'], 'DCS1800') self.assertEqual(data['hysteresis'], '4') self.assertEqual(data['rach_max_transmissions'], '7') self.assertEqual(data['rach_tx_int'], '9') self.assertEqual(data['ncc'], '7') self.assertEqual(data['type'], 'sysmobts') self.assertEqual(data['id'], '0') self.assertEqual(data['description'], '(null)') self.assertEqual(data['oml_link'], 'disconnected')
class SubscriberDeleteTestCase(MockSocketTestCase): fixture_file = get_fixture_path('subscriber_delete.txt') @classmethod def setUpClass(cls): super(SubscriberDeleteTestCase, cls).setUpClass() cls.s = osmocom.subscribers.Subscribers() cls.s.open() @classmethod def tearDownClass(cls): super(SubscriberDeleteTestCase, cls).tearDownClass() cls.s.close() def test_create(self): """Test that we send the correct command on creation""" self.s.create('901550000000001') self.assertEqual(self.sendall_buffer, 'subscriber create imsi 901550000000001\r\n') def test_delete(self): """Test deleting the subscriber we just created.""" self.s.delete('901550000000001') self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'subscriber imsi 901550000000001 delete\r\n' + 'disable\r\n')
class SubscriberGetInvalidTestCase(MockSocketTestCase): fixture_file = get_fixture_path('subscriber_get_error.txt') def test_get_error(self): """Getting a subscriber that doesnt exist will raise a ValueError""" with osmocom.subscribers.Subscribers() as s: with self.assertRaises(ValueError): s.show('imsi', '901550000000002')
class BTSConnectedOfflineTestCase(MockSocketTestCase): fixture_file = get_fixture_path('bts_get_offline.txt') @classmethod def setUpClass(cls): super(BTSConnectedOfflineTestCase, cls).setUpClass() cls.b = osmocom.bts.BTS() cls.b.open() def test_get_offline(self): """This should return the bts is not connected.""" self.assertEqual(self.b.is_connected(0), False)
class TRXGetTestCase(MockSocketTestCase): fixture_file = get_fixture_path('trx_get.txt') def test_get(self): """Test reading trx settings.""" with osmocom.trx.TRX() as t: data = t.show(0, 0) self.assertEqual(data['arfcn'], '1') self.assertEqual(data['id'], '0') self.assertEqual(data['bts_id'], '0') self.assertEqual(data['description'], '(null)') self.assertEqual(data['nominal_power'], '23') self.assertEqual(data['attenuation'], '0') self.assertEqual(data['power'], '23')
class BTSSetTestCase(MockSocketTestCase): fixture_file = get_fixture_path('bts_set.txt') @classmethod def setUpClass(cls): super(BTSSetTestCase, cls).setUpClass() cls.b = osmocom.bts.BTS() cls.b.open() @classmethod def tearDownClass(cls): super(BTSSetTestCase, cls).tearDownClass() cls.b.close() def test_set_type(self): """Test writing bts settings.""" self.b.set_type(0, 'sysmobts') self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'configure terminal\r\n' + 'network\r\n' + 'bts 0\r\n' + 'type sysmobts\r\n' + 'write\r\n' + 'exit\r\n' + 'exit\r\n' + 'exit\r\n' + 'disable\r\n') def test_set_cell_idenity(self): self.b.set_cell_identity(0, 1) self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'configure terminal\r\n' + 'network\r\n' + 'bts 0\r\n' + 'cell_identity 1\r\n' + 'write\r\n' + 'exit\r\n' + 'exit\r\n' + 'exit\r\n' + 'disable\r\n') def test_set_location_area_code(self): self.b.set_location_area_code(0, 3) self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'configure terminal\r\n' + 'network\r\n' + 'bts 0\r\n' + 'location_area_code 3\r\n' + 'write\r\n' + 'exit\r\n' + 'exit\r\n' + 'exit\r\n' + 'disable\r\n') def test_set_bsic(self): self.b.set_bsic(0, 61) self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'configure terminal\r\n' + 'network\r\n' + 'bts 0\r\n' + 'base_station_id_code 61\r\n' + 'write\r\n' + 'exit\r\n' + 'exit\r\n' + 'exit\r\n' + 'disable\r\n') def test_set_band(self): self.b.set_band(0, 'DCS1800') self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'configure terminal\r\n' + 'network\r\n' + 'bts 0\r\n' + 'band DCS1800\r\n' + 'write\r\n' + 'exit\r\n' + 'exit\r\n' + 'exit\r\n' + 'disable\r\n')
class SubscriberTestIMSITestCase(MockSocketTestCase): fixture_file = get_fixture_path('subscriber_get_test_imsi.txt') @classmethod def setUpClass(cls): super(SubscriberTestIMSITestCase, cls).setUpClass() cls.s = osmocom.subscribers.Subscribers() cls.s.open() def test_pad_imsi_len_15(self): """Test getting a subscriber with a zero prefixed imsi.""" data = self.s.show('imsi', 'IMSI001501252002526') # The IMSI is length 15 with zero-padding self.assertEqual(len(data['imsi']), 15) self.assertEqual(data['imsi'], '001501252002526')
class NetworkSetTestCase(MockSocketTestCase): fixture_file = get_fixture_path('network_set.txt') @classmethod def setUpClass(cls): super(NetworkSetTestCase, cls).setUpClass() cls.n = osmocom.network.Network() cls.n.open() @classmethod def tearDownClass(cls): super(NetworkSetTestCase, cls).tearDownClass() cls.n.close() def test_set_mcc(self): """Test reading writing network mcc.""" self.n.set_mcc(901) self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'configure terminal\r\n' + 'network\r\n' + 'network country code 901\r\n' + 'write\r\n' + 'exit\r\n' + 'exit\r\n' + 'disable\r\n') def test_set_mnc(self): """Test reading writing network mnc.""" self.n.set_mnc(55) self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'configure terminal\r\n' + 'network\r\n' + 'mobile network code 55\r\n' + 'write\r\n' + 'exit\r\n' + 'exit\r\n' + 'disable\r\n') def test_set_short_name(self): """Test reading writing network short name.""" self.n.set_short_name('Test') self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'configure terminal\r\n' + 'network\r\n' + 'short name Test\r\n' + 'write\r\n' + 'exit\r\n' + 'exit\r\n' + 'disable\r\n') def test_set_long_name(self): """Test reading writing network long name.""" self.n.set_long_name('Test_Network') self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'configure terminal\r\n' + 'network\r\n' + 'long name Test_Network\r\n' + 'write\r\n' + 'exit\r\n' + 'exit\r\n' + 'disable\r\n')
class SubscriberCreateTestCase(MockSocketTestCase): fixture_file = get_fixture_path('subscriber_create.txt') def test_create(self): """Test create subscriber.""" with osmocom.subscribers.Subscribers() as s: data = s.create('901550000000001') self.assertEqual(data['name'], 'Omar') self.assertEqual(data['extension'], '5722543') self.assertEqual(data['authorized'], '1') self.assertEqual(data['lac'], '0') self.assertEqual(data['use_count'], '1') self.assertEqual(data['paging'], 'not') self.assertEqual(data['expiration'], 'Wed, 31 Dec 1969 16:00:00 -0800') self.assertEqual(data['requests'], '0') self.assertEqual(data['id'], '2') self.assertEqual(data['imsi'], '901550000000001') self.assertEqual(data['lac_hex'], '0')
class NetworkGetTestCase(MockSocketTestCase): fixture_file = get_fixture_path('network_get.txt') def test_get(self): """Test reading writing network settings.""" with osmocom.network.Network() as n: network_data = n.show() self.assertEqual(network_data['handover'], 'Off') self.assertEqual(network_data['auth_policy'], 'accept-all') self.assertEqual(network_data['short_name'], 'Test') self.assertEqual(network_data['neci'], '1') self.assertEqual(network_data['encryption'], 'A5/0') self.assertEqual(network_data['mm_info'], 'On') self.assertEqual(network_data['mcc'], '901') self.assertEqual(network_data['mnc'], '55') self.assertEqual(network_data['long_name'], 'Test_Network') self.assertEqual(network_data['rrlp_mode'], 'none') self.assertEqual(network_data['lur_reject_cause'], '13') self.assertEqual(network_data['bts_count'], '1') self.assertEqual(network_data['tch_paging'], '0')
class BTSRunningConfigTestCase(MockSocketTestCase): fixture_file = get_fixture_path('running_config.txt') def test_running_config(self): """Test reading bts settings.""" with osmocom.bts.BTS() as b: data = b.running_config(0) self.assertEqual(data['type'], 'sysmobts') self.assertEqual(data['channel-descrption bs-ag-blks-res'], '1') self.assertEqual(data['force-combined-si'], 'no') self.assertEqual(data['trx']['0']['rf_locked'], '0') self.assertEqual( data['trx']['0']['rsl e1 tei']['0']['timeslot']['0'] ['phys_chan_config'], 'CCCH+SDCCH4') self.assertEqual( data['trx']['0']['rsl e1 tei']['0']['timeslot']['1'] ['phys_chan_config'], 'TCH/F') self.assertEqual( data['trx']['0']['rsl e1 tei']['0']['timeslot']['7'] ['phys_chan_config'], 'PDCH')
class SubscriberSetErrorTestCase(MockSocketTestCase): fixture_file = get_fixture_path('subscriber_set_error.txt') @classmethod def setUpClass(cls): super(SubscriberSetErrorTestCase, cls).setUpClass() cls.s = osmocom.subscribers.Subscribers() cls.s.open() @classmethod def tearDownClass(cls): super(SubscriberSetErrorTestCase, cls).tearDownClass() cls.s.close() def test_set_not_exists(self): """Ensure that setting a non-existent user results in error""" with self.assertRaises(ValueError): self.s.set_authorized('901550000000111', 1) self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'subscriber imsi 901550000000111 authorized 1\r\n' + 'disable\r\n')
class SubscriberDeleteErrorTestCase(MockSocketTestCase): fixture_file = get_fixture_path('subscriber_delete_error.txt') @classmethod def setUpClass(cls): super(SubscriberDeleteErrorTestCase, cls).setUpClass() cls.s = osmocom.subscribers.Subscribers() cls.s.open() @classmethod def tearDownClass(cls): super(SubscriberDeleteErrorTestCase, cls).tearDownClass() cls.s.close() def test_delete_not_exist(self): """Deleting a subscriber that doesn't exist causes an error.""" with self.assertRaises(ValueError): self.s.delete('901550000000001') self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'subscriber imsi 901550000000001 delete\r\n' + 'disable\r\n')
class BTSGetOnlineTestCase(MockSocketTestCase): fixture_file = get_fixture_path('bts_get_online.txt') @classmethod def setUpClass(cls): super(BTSGetOnlineTestCase, cls).setUpClass() cls.b = osmocom.bts.BTS() cls.b.open() def test_get_online(self): """Test reading bts status for online bts.""" data = self.b.show(0) self.assertEqual(data['oml_link'], 'connected') self.assertEqual(data['ccch_sdcch4_load'], '0') self.assertEqual(data['ccch_sdcch4_max'], '4') self.assertEqual(data['tch_f_load'], '0') self.assertEqual(data['tch_f_max'], '2') self.assertEqual(data['tch_h_load'], '0') self.assertEqual(data['tch_h_max'], '2') self.assertEqual(data['sdcch8_load'], '0') self.assertEqual(data['sdcch8_max'], '8') self.assertEqual(data['tch_f_pdch_load'], '0')
class BTSLoadOfflineTestCase(MockSocketTestCase): fixture_file = get_fixture_path('bts_get_offline.txt') @classmethod def setUpClass(cls): super(BTSLoadOfflineTestCase, cls).setUpClass() cls.b = osmocom.bts.BTS() cls.b.open() def test_get_offline_load(self): """This load readings should be zero for an offline BTS.""" load = self.b.get_load(0) self.assertEqual(load['ccch_sdcch4_max'], 0) self.assertEqual(load['ccch_sdcch4_load'], 0) self.assertEqual(load['tch_f_load'], 0) self.assertEqual(load['tch_f_max'], 0) self.assertEqual(load['tch_h_load'], 0) self.assertEqual(load['tch_h_max'], 0) self.assertEqual(load['sdcch8_load'], 0) self.assertEqual(load['sdcch8_max'], 0) self.assertEqual(load['tch_f_pdch_load'], 0) self.assertEqual(load['tch_f_pdch_max'], 0)
class BTSLoadOnlineTestCase(MockSocketTestCase): fixture_file = get_fixture_path('bts_get_online.txt') @classmethod def setUpClass(cls): super(BTSLoadOnlineTestCase, cls).setUpClass() cls.b = osmocom.bts.BTS() cls.b.open() def test_get_online_load(self): """Read the loads for an online BTS without load.""" load = self.b.get_load(0) self.assertEqual(load['ccch_sdcch4_load'], 0) self.assertEqual(load['ccch_sdcch4_max'], 4) self.assertEqual(load['tch_f_load'], 0) self.assertEqual(load['tch_f_max'], 2) self.assertEqual(load['tch_h_load'], 0) self.assertEqual(load['tch_h_max'], 2) self.assertEqual(load['sdcch8_load'], 0) self.assertEqual(load['sdcch8_max'], 8) self.assertEqual(load['tch_f_pdch_load'], 0) self.assertEqual(load['tch_f_pdch_max'], 1)
class TRXSetTestCase(MockSocketTestCase): fixture_file = get_fixture_path('trx_set.txt') @classmethod def setUpClass(cls): super(TRXSetTestCase, cls).setUpClass() cls.t = osmocom.trx.TRX() cls.t.open() @classmethod def tearDownClass(cls): super(TRXSetTestCase, cls).tearDownClass() cls.t.close() def test_set_arfcn(self): """Test writing trx settings.""" self.t.set_arfcn(0, 0, 1) self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'configure terminal\r\n' + 'network\r\n' + 'bts 0\r\n' + 'trx 0\r\n' + 'arfcn 1\r\n' + 'write\r\n' + 'exit\r\n' + 'exit\r\n' + 'exit\r\n' + 'exit\r\n' + 'disable\r\n')
class NetworkSetBadTestCase(MockSocketTestCase): fixture_file = get_fixture_path('network_set_invalid.txt') @classmethod def setUpClass(cls): super(NetworkSetBadTestCase, cls).setUpClass() cls.n = osmocom.network.Network() cls.n.open() @classmethod def tearDownClass(cls): super(NetworkSetBadTestCase, cls).tearDownClass() cls.n.close() def test_set_short_name_space(self): """Test writing invalid network short name with space.""" with self.assertRaises(ValueError): self.n.set_short_name('Invalid Space') self.assertEqual( self.sendall_buffer, 'enable\r\n' + 'configure terminal\r\n' + 'network\r\n' + 'short name Invalid Space\r\n' + 'exit\r\n' + 'exit\r\n' + 'disable\r\n')
class SubscriberGetTestCase(MockSocketTestCase): fixture_file = get_fixture_path('subscriber_get.txt') @classmethod def setUpClass(cls): super(SubscriberGetTestCase, cls).setUpClass() cls.s = osmocom.subscribers.Subscribers() cls.s.open() def test_get(self): """Test getting a subscriber.""" data = self.s.show('imsi', 'IMSI901550000000001') self.assertEqual(data['name'], 'Omar') self.assertEqual(data['extension'], '5722543') self.assertEqual(data['authorized'], '1') self.assertEqual(data['lac'], '0') self.assertEqual(data['use_count'], '1') self.assertEqual(data['paging'], 'not') self.assertEqual(data['expiration'], 'Wed, 31 Dec 1969 16:00:00 -0800') self.assertEqual(data['requests'], '0') self.assertEqual(data['id'], '2') self.assertEqual(data['imsi'], '901550000000001') self.assertEqual(data['lac_hex'], '0')
def test_filter(self): im = nexradpy.filter.output.png.PNG().filter(self.product) im.save(tests.get_fixture_path('p94-test.png'))
def setUp(self): self.p94 = tests.get_fixture_path('p94r0-kewx.bin') self.decoder = nexradpy.decoder.load_file(self.p94) self.product = self.decoder.decode()
def setUp(self): self.p94 = tests.get_fixture_path("p94r0-kewx.bin") self.p94_class_str = "nexradpy.decoders.p94.p94"
def test_load_yaml_file(self): a_file_path = get_fixture_path("a_file.yml") a_config = config.load_yaml_file(a_file_path) self.assertEqual(a_config['a']['item'], "a value")