def testCmp(self): m2 = MACAddress(bytearray([0x48, 0x45, 0x00, 0x00, 0x02, 0x2e])) m3 = MACAddress(bytearray([0x48, 0x44, 0x00, 0x00, 0x02, 0x2e])) m3a = MACAddress(bytearray([0x48, 0x44, 0x00, 0x00, 0x02, 0x2e])) self.assertEqual(m3, m3a) self.assertTrue(m3 <= m3a) self.assertTrue(m3 >= m3a) self.assertTrue(m3 < m2) self.assertTrue(m2 > m3) self.assertTrue(m3 <= m2) self.assertTrue(m2 >= m3) self.assertTrue(m3 != m2) self.assertFalse(m3 > m2) self.assertFalse(m2 < m3) self.assertFalse(m3 >= m2) self.assertFalse(m2 <= m3) self.assertFalse(m3 == m2) self.assertEqual(m2.__lt__("hello"), NotImplemented) self.assertNotEqual(m2, "hello") # None case self.assertFalse(m3 < None) self.assertTrue(m3 > None) self.assertFalse(m3 <= None) self.assertTrue(m3 >= None) self.assertTrue(m3 is not None) self.assertFalse(m3 is None)
def testSorting(self): m1 = MACAddress(bytearray([0x48, 0x45, 0xff, 0xff, 0xff, 0xfe])) m2 = MACAddress(bytearray([0x48, 0x45, 0x00, 0x00, 0x02, 0x2e])) m3 = MACAddress(bytearray([0x48, 0x44, 0x00, 0x00, 0x02, 0x2e])) m4 = MACAddress(bytearray([0x48, 0x46, 0x00, 0x00, 0x02, 0x2e])) macs = sorted([m1, m2, m3, m4]) self.assertEqual([m3, m2, m1, m4], macs)
def testBasic(self): mac = MACAddress(bytearray([0x01, 0x23, 0x45, 0x67, 0x89, 0xab])) self.assertEquals(b'\x01\x23\x45\x67\x89\xab', bytes(mac.mac_address)) self.assertEquals('01:23:45:67:89:ab', str(mac)) self.assertTrue(mac > None) mac2 = MACAddress(bytearray([0x01, 0x23, 0x45, 0x67, 0x89, 0xcd])) self.assertTrue(mac2 > mac) mac3 = MACAddress(bytearray([0x01, 0x23, 0x45, 0x67, 0x88, 0xab])) self.assertTrue(mac > mac3) macs = [mac, mac2, mac3] self.assertEquals([mac3, mac, mac2], sorted(macs))
def testBasic(self): mac = MACAddress(bytearray([0x01, 0x23, 0x45, 0x67, 0x89, 0xab])) self.assertEqual(b'\x01\x23\x45\x67\x89\xab', bytes(mac.mac_address)) self.assertEqual('01:23:45:67:89:ab', str(mac)) # Python 3 does not allow sorting of incompatible types. # We don't use sys.version_info.major to support Python 2.6. if sys.version_info[0] == 2: self.assertTrue(mac > None) mac2 = MACAddress(bytearray([0x01, 0x23, 0x45, 0x67, 0x89, 0xcd])) self.assertTrue(mac2 > mac) mac3 = MACAddress(bytearray([0x01, 0x23, 0x45, 0x67, 0x88, 0xab])) self.assertTrue(mac > mac3) macs = [mac, mac2, mac3] self.assertEqual([mac3, mac, mac2], sorted(macs))
def Unpack(self, data): format_string = self._FormatString() try: values = struct.unpack(format_string, data) except struct.error as e: raise UnpackException(e) return MACAddress( bytearray([ values[0], values[1], values[2], values[3], values[4], values[5] ]))
def testFromString(self): self.assertEqual(None, MACAddress.FromString('')) self.assertEqual(None, MACAddress.FromString('abc')) self.assertEqual(None, MACAddress.FromString(':')) self.assertEqual(None, MACAddress.FromString('0:1:2')) self.assertEqual(None, MACAddress.FromString('12345:1234')) mac = MACAddress.FromString('01:23:45:67:89:ab') self.assertTrue(mac) self.assertEqual(b'\x01\x23\x45\x67\x89\xab', bytes(mac.mac_address)) self.assertEqual('01:23:45:67:89:ab', str(mac)) mac2 = MACAddress.FromString('98.76.54.fe.dc.ba') self.assertTrue(mac2) self.assertEqual(b'\x98\x76\x54\xfe\xdc\xba', bytes(mac2.mac_address)) self.assertEqual('98:76:54:fe:dc:ba', str(mac2))
def Pack(self, args): mac = None if isinstance(args[0], MACAddress): mac = args[0] else: mac = MACAddress.FromString(args[0]) if mac is None: raise ArgsValidationError("Invalid MAC Address: %s" % e) format_string = self._FormatString() try: data = struct.pack(format_string, mac.mac_address[0], mac.mac_address[1], mac.mac_address[2], mac.mac_address[3], mac.mac_address[4], mac.mac_address[5]) except struct.error, e: raise ArgsValidationError("Can't pack data: %s" % e)
def testEquals(self): m1 = MACAddress(bytearray([0x48, 0x45, 0xff, 0xff, 0xff, 0xfe])) m2 = MACAddress(bytearray([0x48, 0x45, 0xff, 0xff, 0xff, 0xfe])) self.assertEqual(m1, m2)