Esempio n. 1
0
    def test_oid(self):
        oid1 = ObjectIdentifier(4, 2, 0, 0, (1, 1, 1, 0))
        self.assertEqual(str(oid1), '.1.3.6.1.2.1.1.1.0')
        self.assertEqual(oid1.size, 20)
        print(oid1)
        oid2 = ObjectIdentifier.from_bytes(oid1.to_bytes('!'), '!')  # round-trip
        self.assertEqual(str(oid2), '.1.3.6.1.2.1.1.1.0')
        self.assertEqual(oid2.size, 20)

        oid_literal = ObjectIdentifier(4, 0, 0, 0, (1, 2, 3, 4))
        self.assertEqual(str(oid_literal), '.1.2.3.4')
        print(oid_literal)

        oid_small = ObjectIdentifier(0, 0, 0, 0, ())
        self.assertEqual(oid_small.size, 4)

        dell_oid = ObjectIdentifier(n_subid=7, prefix_=4, include=0, reserved=0, subids=(1, 6027, 3, 10, 1, 2, 9))
        check = ObjectIdentifier.from_bytes(dell_oid.to_bytes('!'), '!')
        self.assertEqual(check, dell_oid)
Esempio n. 2
0
    def test_oid_zero(self):
        null_oid_ints = (0, 0, 0, 0)
        null_oid_bytes = struct.pack('!BBBB', *null_oid_ints)

        null_oid = ObjectIdentifier.from_bytes(null_oid_bytes, '!')
        self.assertEqual(null_oid.n_subid, 0)
        self.assertEqual(null_oid.prefix_, 0)
        self.assertEqual(null_oid.include, 0)
        self.assertEqual(null_oid.reserved, 0)
        self.assertIs(null_oid.subids, ())
Esempio n. 3
0
    def test_bad_unpack(self):
        with self.assertRaises(struct.error):
            # garbage data. Don't assume '' -> 0, 0, 0...
            ObjectIdentifier.from_bytes(b'', '')

        with self.assertRaises(struct.error):
            # n_subid = 4 -> should be at least 20 bytes -> input is too short.
            ObjectIdentifier.from_bytes(b'\x04\x00\x00\x00', '!')

        with self.assertRaises(struct.error):
            # Bad format specifier.
            ObjectIdentifier.from_bytes(b'\x00\x00\x00\x00', '-')