def test_get_accounting_stats(self, get_info_mock): """ Exercises the get_accounting_stats() method. """ get_info_mock.side_effect = lambda param, **kwargs: { 'accounting/enabled': '1', 'accounting/hibernating': 'awake', 'accounting/interval-end': '2014-09-14 19:41:00', 'accounting/bytes': '4837 2050', 'accounting/bytes-left': '102944 7440', }[param] expected = stem.control.AccountingStats( 1410723598.276578, 'awake', datetime.datetime(2014, 9, 14, 19, 41), 62, 4837, 102944, 107781, 2050, 7440, 9490, ) self.assertEqual(expected, self.controller.get_accounting_stats()) get_info_mock.side_effect = ControllerError('nope, too bad') self.assertRaises(ControllerError, self.controller.get_accounting_stats) self.assertEqual('my default', self.controller.get_accounting_stats('my default'))
def test_get_effective_rate(self, get_conf_mock): """ Exercise the get_effective_rate() method. """ # check default if nothing was set async def get_conf_mock_side_effect(self, param, *args, **kwargs): return { 'BandwidthRate': '1073741824', 'BandwidthBurst': '1073741824', 'RelayBandwidthRate': '0', 'RelayBandwidthBurst': '0', 'MaxAdvertisedBandwidth': '1073741824', }[param] get_conf_mock.side_effect = get_conf_mock_side_effect self.assertEqual(1073741824, self.controller.get_effective_rate()) self.assertEqual(1073741824, self.controller.get_effective_rate(burst=True)) get_conf_mock.side_effect = coro_func_raising_exc( ControllerError('nope, too bad')) self.assertRaises(ControllerError, self.controller.get_effective_rate) self.assertEqual('my_default', self.controller.get_effective_rate('my_default'))
def test_get_network_status_for_ourselves(self, get_info_mock): """ Exercises the get_network_status() method for getting our own relay. """ # when there's an issue getting our fingerprint get_info_mock.side_effect = ControllerError('nope, too bad') try: self.controller.get_network_status() self.fail("We should've raised an exception") except ControllerError as exc: self.assertEqual( 'Unable to determine our own fingerprint: nope, too bad', str(exc)) self.assertEqual('boom', self.controller.get_network_status(default='boom')) # successful request desc = NS_DESC % ('moria1', '/96bKo4soysolMgKn5Hex2nyFSY') get_info_mock.side_effect = lambda param, **kwargs: { 'fingerprint': '9695DFC35FFEB861329B9F1AB04C46397020CE31', 'ns/id/9695DFC35FFEB861329B9F1AB04C46397020CE31': desc, }[param] self.assertEqual( stem.descriptor.router_status_entry.RouterStatusEntryV3(desc), self.controller.get_network_status())
def test_get_network_status_for_ourselves(self, get_info_mock): """ Exercises the get_network_status() method for getting our own relay. """ # when there's an issue getting our fingerprint get_info_mock.side_effect = coro_func_raising_exc( ControllerError('nope, too bad')) exc_msg = 'Unable to determine our own fingerprint: nope, too bad' self.assertRaisesWith(ControllerError, exc_msg, self.controller.get_network_status) self.assertEqual('boom', self.controller.get_network_status(default='boom')) # successful request desc = NS_DESC % ('moria1', '/96bKo4soysolMgKn5Hex2nyFSY') async def get_info_mock_side_effect(self, param, **kwargs): return { 'fingerprint': '9695DFC35FFEB861329B9F1AB04C46397020CE31', 'ns/id/9695DFC35FFEB861329B9F1AB04C46397020CE31': desc, }[param] get_info_mock.side_effect = get_info_mock_side_effect self.assertEqual( stem.descriptor.router_status_entry.RouterStatusEntryV3(desc), self.controller.get_network_status())
def test_get_effective_rate(self, get_conf_mock): """ Exercise the get_effective_rate() method. """ # check default if nothing was set get_conf_mock.side_effect = lambda param, **kwargs: { 'BandwidthRate': '1073741824', 'BandwidthBurst': '1073741824', 'RelayBandwidthRate': '0', 'RelayBandwidthBurst': '0', 'MaxAdvertisedBandwidth': '1073741824', }[param] self.assertEqual(1073741824, self.controller.get_effective_rate()) self.assertEqual(1073741824, self.controller.get_effective_rate(burst = True)) get_conf_mock.side_effect = ControllerError('nope, too bad') self.assertRaises(ControllerError, self.controller.get_effective_rate) self.assertEqual('my_default', self.controller.get_effective_rate('my_default'))