def test_repr(self): router = Router(FakeController()) router.update("foo", "AHhuQ8zFQJdT8l42Axxc6m6kNwI", "MAANkj30tnFvmoh7FsjVFr+cmcs", "2011-12-16 15:11:34", "1.2.3.4", "24051", "24052") router.flags = ['Named'] repr(router)
def test_flags_from_string(self): controller = object() router = Router(controller) router.update("foo", "AHhuQ8zFQJdT8l42Axxc6m6kNwI", "MAANkj30tnFvmoh7FsjVFr+cmcs", "2011-12-16 15:11:34", "77.183.225.114", "24051", "24052") router.flags = "Exit Fast Named Running V2Dir Valid" self.assertEqual(router.name_is_unique, True)
def test_unique_name(self): controller = object() router = Router(controller) router.update("foo", "AHhuQ8zFQJdT8l42Axxc6m6kNwI", "MAANkj30tnFvmoh7FsjVFr+cmcs", "2011-12-16 15:11:34", "77.183.225.114", "24051", "24052") self.assertEqual(router.id_hex, "$00786E43CCC5409753F25E36031C5CEA6EA43702") self.assertEqual(router.unique_name, "$00786E43CCC5409753F25E36031C5CEA6EA43702") router.flags = ['Named'] self.assertEqual(router.unique_name, "foo")
def _create_router(self, **kw): id_hex = hexIdFromHash(kw['idhash']) try: router = self.routers[id_hex] except KeyError: router = Router(self.protocol) self.routers[router.id_hex] = router router.from_consensus = True router.update( kw['nickname'], kw['idhash'], kw['orhash'], kw['modified'], kw['ip'], kw['orport'], kw['dirport'], ) router.flags = kw.get('flags', []) if 'bandwidth' in kw: router.bandwidth = kw['bandwidth'] if 'ip_v6' in kw: router.ip_v6.extend(kw['ip_v6']) if 'guard' in router.flags: self.guards[router.id_hex] = router if 'authority' in router.flags: self.authorities[router.name] = router if router.id_hex in self.routers: # FIXME should I do an update() on this one?? router = self.routers[router.id_hex] else: if router.name in self.routers: self.routers[router.name] = None else: self.routers[router.name] = router if router.name in self.routers_by_name: self.routers_by_name[router.name].append(router) else: self.routers_by_name[router.name] = [router] self.routers[router.id_hex] = router self.routers_by_hash[router.id_hex] = router self.all_routers.add(router)