def test_connected_to(self): mac1 = MAC('aa:bb:cc:dd:ee:ff') mac2 = MAC('00:11:22:33:44:55') node1 = factory.make_node(routers=[mac1, mac2]) node2 = factory.make_node(routers=[mac1]) factory.make_node() self.assertConstrainedNodes( [node1], {'connected_to': [ mac1.get_raw(), mac2.get_raw()]}) self.assertConstrainedNodes( [node1, node2], {'connected_to': [mac1.get_raw()]})
def test_new_MAC_with_empty_byte_string_is_None(self): self.assertIsNone(MAC(b""))
def test_new_MAC_with_empty_unicode_string_is_None(self): self.assertIsNone(MAC(""))
def test_macs_contain_returns_predicate_using_MACs(self): macs = [MAC('11:22:33:44:55:66')] where, params = macs_contain('key', macs) self.assertEqual( (where, params), ('key @> ARRAY[%s]::macaddr[]', macs))
def test_eq_punches_through_double_double_wrappings(self): mac = factory.make_MAC() self.assertTrue(MAC(mac) == MAC(mac))
def test_getquoted_punches_through_double_wrapping(self): addr = factory.make_mac_address() self.assertEqual("'%s'::macaddr" % addr, MAC(MAC(addr)).getquoted())
def test_get_raw_punches_through_double_wrapping(self): addr = factory.make_mac_address() self.assertEqual(addr, MAC(MAC(addr)).get_raw())
def test_as_byte_string(self): addr = factory.make_mac_address() mac = MAC(addr) self.assertEqual(addr.encode("ascii"), bytes(mac))
def test_get_raw_returns_wrapped_address(self): addr = factory.getRandomMACAddress() self.assertEqual(addr, MAC(addr).get_raw())
def test_get_raw_returns_wrapped_None(self): self.assertIsNone(MAC(None).get_raw())
def test_conform_accepts_ISQLQuote(self): mac = MAC(None) self.assertEqual(mac, mac.__conform__(ISQLQuote))
def test_none_mac_equals_none(self): # This is a special case that Django seems to need: it does # "value in validators.EMPTY_VALUES". self.assertEqual(None, MAC(None))
def test_mac_equals_identical_mac(self): addr = factory.getRandomMACAddress() self.assertTrue(MAC(addr) == MAC(addr))
def test_routers_stores_multiple_mac_addresses(self): node = factory.make_node() macs = [MAC('aa:bb:cc:dd:ee:ff'), MAC('00:11:22:33:44:55')] node.routers = macs node.save() self.assertEqual(macs, reload_object(node).routers)
def test_as_representation(self): addr = factory.make_mac_address() mac = MAC(addr) self.assertEqual("<MAC " + addr + ">", repr(mac))
def test_getquoted_returns_NULL_for_None(self): self.assertEqual("NULL", MAC(None).getquoted())
def test_as_unicode_string(self): addr = factory.make_mac_address() mac = MAC(addr) self.assertEqual(addr, str(mac))
def test_raw_property_is_the_address(self): addr = factory.make_mac_address() self.assertEqual(addr, MAC(addr).raw)
def test_get_raw_returns_wrapped_address(self): addr = factory.make_mac_address() self.assertEqual(addr, MAC(addr).get_raw())
def test_identical_macs_hash_identically(self): addr = factory.make_mac_address() self.assertItemsEqual( set([MAC(addr), MAC(addr), MAC(MAC(addr)), addr]), [addr])
def test_getquoted_returns_SQL_for_MAC(self): addr = factory.make_mac_address() self.assertEqual("'%s'::macaddr" % addr, MAC(addr).getquoted())
def test_conform_accepts_ISQLQuote(self): mac = MAC(factory.make_mac_address()) self.assertEqual(mac, mac.__conform__(ISQLQuote))
def test_mac_equals_identical_mac(self): addr = factory.make_mac_address() self.assertTrue(MAC(addr) == MAC(addr))
def test_new_MAC_with_None_is_None(self): self.assertIsNone(MAC(None))
def test_ne_punches_through_double_double_wrapping(self): mac = factory.make_MAC() self.assertFalse(MAC(mac) != MAC(mac))
def make_MAC(self): """Generate a random MAC address, in the form of a MAC object.""" return MAC(self.getRandomMACAddress())