def test_byFilters_bySubring_byTransport_wrong_subhashring_no_transport(self): """Filtering byTransport('voltron') and bySubring(HMAC, 2, 2) when the Bridge has no transports and is assigned to sub-hashring 1-of-2 should return False. """ filtre = filters.byFilters([filters.bySubring(self.hmac, 2, 2), filters.byTransport('voltron')]) self.assertFalse(filtre(self.bridge))
def test_bySubring_2_of_2(self): """A Bridge with fingerprint 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' should be assigned to sub-hashring 1-of-2 (in this case, using a particular HMAC key), and therefore filters.bySubring(HMAC, 2, 2) should *not* return that Bridge (because it is in sub-hashring 1-of-2 and we asked for Bridges which are in sub-hashring 2-of-2). """ filtre = filters.bySubring(self.hmac, 2, 2) self.assertFalse(filtre(self.bridge))
def test_bySubring_1_of_2(self): """A Bridge with fingerprint 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' should be assigned to sub-hashring 1-of-2 (in this case, using a particular HMAC key), and therefore filters.bySubring(HMAC, 1, 2) should return that Bridge (because it is in the sub-hashring we asked for). """ filtre = filters.bySubring(self.hmac, 1, 2) self.assertTrue(filtre(self.bridge))
def test_byFilters_bySubring_byTransport_correct_subhashring_with_transport(self): """Filtering byTransport('voltron') and bySubring(HMAC, 1, 2) when the Bridge has a voltron transport and is assigned to sub-hashring 1-of-2 should return True. """ self.addIPv4VoltronPT() filtre = filters.byFilters([filters.bySubring(self.hmac, 1, 2), filters.byTransport('voltron')]) self.assertTrue(filtre(self.bridge))
def test_byFilters_bySubring_byTransport_correct_subhashring_no_transport( self): """Filtering byTransport('voltron') and bySubring(HMAC, 1, 2) when the Bridge has no transports and is assigned to sub-hashring 1-of-2 should return False. """ filtre = filters.byFilters([ filters.bySubring(self.hmac, 1, 2), filters.byTransport('voltron') ]) self.assertFalse(filtre(self.bridge))
def test_byFilters_bySubring_byTransport_wrong_subhashring_with_transport( self): """Filtering byTransport('voltron') and bySubring(HMAC, 2, 2) when the Bridge has a voltron transport and is assigned to sub-hashring 1-of-2 should return False. """ self.addIPv4VoltronPT() filtre = filters.byFilters([ filters.bySubring(self.hmac, 2, 2), filters.byTransport('voltron') ]) self.assertFalse(filtre(self.bridge))
def _buildHashringFilters(self, previousFilters, subring): f = bySubring(self.hashring.hmac, subring, self.totalSubrings) previousFilters.append(f) return frozenset(previousFilters)