Example #1
0
    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')
Example #3
0
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')
Example #6
0
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')
Example #8
0
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')
Example #13
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')
Example #16
0
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')
Example #17
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)
Example #18
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')
Example #22
0
 def test_filter(self):
     im = nexradpy.filter.output.png.PNG().filter(self.product)
     im.save(tests.get_fixture_path('p94-test.png'))
Example #23
0
 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()
Example #24
0
 def setUp(self):
     self.p94 = tests.get_fixture_path("p94r0-kewx.bin")
     self.p94_class_str = "nexradpy.decoders.p94.p94"
Example #25
0
 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")