Esempio n. 1
0
 def test_type_stor_info(self):
     tlib = s_types.TypeLib()
     self.assertRaises(BadStorValu,
                       tlib.addSubType,
                       'fake:newp',
                       'comp',
                       fields=())
Esempio n. 2
0
 def test_type_comp_err(self):
     tlib = s_types.TypeLib()
     self.assertRaises(BadInfoValu,
                       tlib.addSubType,
                       'fake:newp',
                       'comp',
                       fields='asdfqwer')
Esempio n. 3
0
    def test_datatype_inet_port(self):
        tlib = s_types.TypeLib()

        self.raises(BadTypeValu, tlib.getTypeParse, 'inet:port', '70000')
        self.raises(BadTypeValu, tlib.getTypeNorm, 'inet:port', 0xffffffff)

        self.eq(tlib.getTypeNorm('inet:port', 20)[0], 20)
Esempio n. 4
0
    def test_datatype_bool(self):
        tlib = s_types.TypeLib()

        self.assertRaises(BadTypeValu, tlib.getTypeParse, 'bool', 'bogus')

        self.assertTrue(tlib.getTypeParse('bool', '1'))
        self.assertTrue(tlib.getTypeParse('bool', 't'))
        self.assertTrue(tlib.getTypeParse('bool', 'y'))
        self.assertTrue(tlib.getTypeParse('bool', 'TrUe'))
        self.assertTrue(tlib.getTypeParse('bool', 'yEs'))
        self.assertTrue(tlib.getTypeParse('bool', 'ON'))

        self.assertFalse(tlib.getTypeParse('bool', '0'))
        self.assertFalse(tlib.getTypeParse('bool', 'f'))
        self.assertFalse(tlib.getTypeParse('bool', 'n'))
        self.assertFalse(tlib.getTypeParse('bool', 'FaLsE'))
        self.assertFalse(tlib.getTypeParse('bool', 'nO'))
        self.assertFalse(tlib.getTypeParse('bool', 'OFF'))

        self.assertEqual(tlib.getTypeRepr('bool', 1), 'True')
        self.assertEqual(tlib.getTypeRepr('bool', 0), 'False')

        self.assertEqual(tlib.getTypeNorm('bool', 9), 1)
        self.assertEqual(tlib.getTypeNorm('bool', 0), 0)

        self.assertEqual(tlib.getTypeFrob('bool', 9), 1)
        self.assertFalse(tlib.getTypeFrob('bool', 'f'))
        self.assertFalse(tlib.getTypeFrob('bool', 'n'))
        self.assertFalse(tlib.getTypeFrob('bool', 'FaLsE'))
Esempio n. 5
0
    def test_datatype_str_hex(self):
        tlib = s_types.TypeLib()

        self.assertRaises(BadTypeValu, tlib.getTypeNorm, 'str:hex', 0xFFF)
        self.assertRaises(BadTypeValu, tlib.getTypeNorm, 'str:hex', '0xFFF')
        self.eq(tlib.getTypeNorm('str:hex', 'FfF')[0], 'fff')
        self.eq(tlib.getTypeNorm('str:hex', '12345')[0], '12345')
        self.eq(tlib.getTypeNorm('str:hex', '12A45')[0], '12a45')

        self.none(tlib.getTypeFrob('str:hex', '0xFFF')[0])
        self.eq(tlib.getTypeFrob('str:hex', 0xFfF)[0], 'fff')
        self.eq(tlib.getTypeFrob('str:hex', 'FFF')[0], 'fff')
        self.eq(tlib.getTypeFrob('str:hex', '1A2b3C')[0], '1a2b3c')
        self.eq(tlib.getTypeFrob('str:hex', 0x1A2b3C)[0], '1a2b3c')
        self.eq(tlib.getTypeFrob('str:hex', '12345')[0], '12345') # already str
        self.eq(tlib.getTypeFrob('str:hex', 12345)[0], '3039')

        self.assertRaises(BadTypeValu, tlib.getTypeParse, 'str:hex', '0xFFF')
        self.assertRaises(BadTypeValu, tlib.getTypeParse, 'str:hex', 0xFFF)
        self.assertRaises(BadTypeValu, tlib.getTypeParse, 'str:hex', 123)
        self.eq(tlib.getTypeParse('str:hex', '10001')[0], '10001')
        self.eq(tlib.getTypeParse('str:hex', 'FFF')[0], 'fff')

        tlib.addType('woot', subof='sepr', sep='/', fields='a,str:hex|b,str:hex')
        self.eq(tlib.getTypeFrob('woot', 'AAA/BBB')[0], 'aaa/bbb')
        self.eq(tlib.getTypeFrob('woot', '123456/BBB')[0], '123456/bbb') # already str
        self.eq(tlib.getTypeFrob('woot', (123456, 'BBB'))[0], '1e240/bbb')
        self.assertRaises(BadTypeValu, tlib.getTypeParse, 'woot', '123x/aaaa')
        self.assertRaises(BadTypeValu, tlib.getTypeParse, 'woot', '0x123/aaaa')
Esempio n. 6
0
    def test_datatype_bool(self):
        tlib = s_types.TypeLib()

        self.raises(BadTypeValu, tlib.getTypeParse, 'bool', 'bogus')

        self.true(tlib.getTypeParse('bool', '1')[0])
        self.true(tlib.getTypeParse('bool', 't')[0])
        self.true(tlib.getTypeParse('bool', 'y')[0])
        self.true(tlib.getTypeParse('bool', 'TrUe')[0])
        self.true(tlib.getTypeParse('bool', 'yEs')[0])
        self.true(tlib.getTypeParse('bool', 'ON')[0])

        self.false(tlib.getTypeParse('bool', '0')[0])
        self.false(tlib.getTypeParse('bool', 'f')[0])
        self.false(tlib.getTypeParse('bool', 'n')[0])
        self.false(tlib.getTypeParse('bool', 'FaLsE')[0])
        self.false(tlib.getTypeParse('bool', 'nO')[0])
        self.false(tlib.getTypeParse('bool', 'OFF')[0])

        self.eq(tlib.getTypeRepr('bool', 1), 'True')
        self.eq(tlib.getTypeRepr('bool', 0), 'False')

        self.eq(tlib.getTypeNorm('bool', 9)[0], 1)
        self.eq(tlib.getTypeNorm('bool', 0)[0], 0)

        self.eq(tlib.getTypeNorm('bool', 9)[0], 1)
        self.false(tlib.getTypeNorm('bool', 'f')[0])
        self.false(tlib.getTypeNorm('bool', 'n')[0])
        self.false(tlib.getTypeNorm('bool', 'FaLsE')[0])
Esempio n. 7
0
    def test_datatype_inet_url(self):
        tlib = s_types.TypeLib()

        self.raises(BadTypeValu, tlib.getTypeNorm, 'inet:url', 'newp')
        self.eq(
            tlib.getTypeNorm('inet:url', 'http://WoOt.com/HeHe')[0],
            'http://woot.com/HeHe')
        self.eq(
            tlib.getTypeNorm('inet:url', 'HTTP://WoOt.com/HeHe')[0],
            'http://woot.com/HeHe')
        self.eq(
            tlib.getTypeNorm('inet:url',
                             'HttP://*****:*****@WoOt.com/HeHe&foo=10')[0],
            'http://*****:*****@woot.com/HeHe&foo=10')

        self.raises(BadTypeValu, tlib.getTypeParse, 'inet:url', 'newp')
        self.eq(
            tlib.getTypeParse('inet:url', 'http://WoOt.com/HeHe')[0],
            'http://woot.com/HeHe')
        self.eq(
            tlib.getTypeParse('inet:url', 'HTTP://WoOt.com/HeHe')[0],
            'http://woot.com/HeHe')
        self.eq(
            tlib.getTypeParse('inet:url',
                              'HttP://*****:*****@WoOt.com/HeHe&foo=10')[0],
            'http://*****:*****@woot.com/HeHe&foo=10')

        self.eq(tlib.getTypeRepr('inet:url', 'http://woot.com/HeHe'),
                'http://woot.com/HeHe')
Esempio n. 8
0
    def test_datatype_str(self):
        tlib = s_types.TypeLib()

        self.raises(BadTypeValu, tlib.getTypeNorm, 'str', 10)

        self.eq(tlib.getTypeNorm('str', 'foo')[0], 'foo')
        self.eq(tlib.getTypeParse('str', 'bar')[0], 'bar')
Esempio n. 9
0
    def test_type_comp(self):
        tlib = s_types.TypeLib()
        tlib.addType('foo:bar', subof='comp', fields='hehe=inet:fqdn,haha=inet:ipv4', optfields="time=time")

        valu, subs = tlib.getTypeNorm('foo:bar', ('WOOT.COM', 0x01020304))
        self.eq(valu, '47e2e1c0f894266153f836a75440f803')
        self.eq(subs.get('hehe'), 'woot.com')
        self.eq(subs.get('haha'), 0x01020304)
        self.none(subs.get('time'))

        valu1, subs = tlib.getTypeNorm('foo:bar', ('WOOT.COM', 0x01020304, ('time', '20170101')))
        self.eq(valu1, 'f34a0c6ed2d91772b4790f4da1d2c0d6')
        self.eq(subs.get('hehe'), 'woot.com')
        self.eq(subs.get('haha'), 0x01020304)
        self.eq(subs.get('time'), 1483228800000)

        val2, sub2 = tlib.getTypeNorm('foo:bar', {'hehe': 'WOOT.COM', 'haha': 0x01020304})
        self.eq(valu, val2)
        self.raises(BadTypeValu, tlib.getTypeNorm, 'foo:bar', {})

        val3, sub3 = tlib.getTypeNorm('foo:bar', {'hehe': 'WOOT.COM', 'haha': 0x01020304, 'time': '20170101'})
        self.eq(valu1, val3)
        self.eq(subs, sub3)

        self.raises(BadTypeValu, tlib.getTypeNorm, 'foo:bar', set([1, 2]))
Esempio n. 10
0
 def test_type_sepr_parse(self):
     tlib = s_types.TypeLib()
     tlib.addType('woot',
                  subof='sepr',
                  sep='/',
                  fields='a,str:hex|b,str:hex')
     self.eq(tlib.getTypeParse('woot', '12345/67890')[0], '12345/67890')
Esempio n. 11
0
    def test_datatype_inet_ipv6(self):
        tlib = s_types.TypeLib()

        self.assertRaises(BadTypeValu, tlib.getTypeParse, 'inet:ipv6', 'newp' )
        self.assertRaises(BadTypeValu, tlib.getTypeNorm, 'inet:srv6', 'newp' )
        self.assertRaises(BadTypeValu, tlib.getTypeNorm, 'inet:srv6', '[fffffffffffffffffffffffff::2]:80' )

        self.eq( tlib.getTypeParse('inet:ipv6', 'AF:00::02')[0], 'af::2')
        self.eq( tlib.getTypeNorm('inet:ipv6', 'AF:00::02')[0], 'af::2')
        self.eq( tlib.getTypeRepr('inet:ipv6', 'af::2'), 'af::2')

        self.eq( tlib.getTypeNorm('inet:ipv6', '2001:db8::1:1:1:1:1')[0], '2001:db8:0:1:1:1:1:1')
        self.eq( tlib.getTypeNorm('inet:ipv6', '2001:db8:0:1:1:1:1:1')[0], '2001:db8:0:1:1:1:1:1')

        self.eq( tlib.getTypeFrob('inet:ipv6', '2001:db8::1:1:1:1:1')[0], '2001:db8:0:1:1:1:1:1')

        self.eq( tlib.getTypeNorm('inet:ipv6', '2001:db8::0:1')[0], '2001:db8::1')
        self.eq( tlib.getTypeNorm('inet:ipv6', '2001:db8:0:0:0:0:2:1')[0], '2001:db8::2:1')

        self.eq( tlib.getTypeNorm('inet:ipv6', '2001:db8::')[0], '2001:db8::')

        self.eq( tlib.getTypeRepr('inet:srv6', '[af::2]:80'), '[af::2]:80')
        self.eq( tlib.getTypeParse('inet:srv6', '[AF:00::02]:80')[0], '[af::2]:80')
        self.eq( tlib.getTypeNorm('inet:srv6', '[AF:00::02]:80')[0], '[af::2]:80')
        self.assertRaises(BadTypeValu, tlib.getTypeNorm, 'inet:srv6', '[AF:00::02]:999999')
        self.assertRaises(BadTypeValu, tlib.getTypeNorm, 'inet:srv6', '[AF:00::02]:-1')
Esempio n. 12
0
    def test_type_sepr_reverse(self):
        tlib = s_types.TypeLib()

        tlib.addType('foo',subof='sepr',sep='/',fields='first,str:lwr|rest,str:lwr',reverse=1)
        foo = tlib.getTypeNorm('foo','/home/user/Downloads')
        self.eq( foo[1].get('first'), '/home/user' )
        self.eq( foo[1].get('rest'), 'downloads' )
Esempio n. 13
0
    def test_datatype_int(self):
        tlib = s_types.TypeLib()
        self.eq(tlib.getTypeNorm('int', 1), (1, {}))
        self.eq(tlib.getTypeNorm('int', -1), (-1, {}))
        self.eq(tlib.getTypeNorm('int', 0), (0, {}))
        self.eq(tlib.getTypeNorm('int', '1'), (1, {}))
        self.eq(tlib.getTypeNorm('int', '0x01'), (1, {}))

        self.eq(tlib.getTypeNorm('int', '-1'), (-1, {}))
        self.eq(tlib.getTypeNorm('int', '0'), (0, {}))
        # Bound checking
        self.eq(tlib.getTypeNorm('int', -9223372036854775808),
                (-9223372036854775808, {}))
        self.eq(tlib.getTypeNorm('int', 9223372036854775807),
                (9223372036854775807, {}))

        self.raises(BadTypeValu, tlib.getTypeNorm, 'int', 'hehe')
        self.raises(BadTypeValu, tlib.getTypeNorm, 'int', 'one')
        self.raises(BadTypeValu, tlib.getTypeNorm, 'int', 'one')
        self.raises(BadTypeValu, tlib.getTypeNorm, 'int', 1.0)
        self.raises(BadTypeValu, tlib.getTypeNorm, 'int', '1.0')

        self.raises(BadTypeValu, tlib.getTypeNorm, 'int', {})
        self.raises(BadTypeValu, tlib.getTypeNorm, 'int', [])
        self.raises(BadTypeValu, tlib.getTypeNorm, 'int', -9223372036854775809)
        self.raises(BadTypeValu, tlib.getTypeNorm, 'int', 9223372036854775808)
Esempio n. 14
0
    def test_datatype_inet_ipv4(self):
        tlib = s_types.TypeLib()

        self.eq(tlib.getTypeNorm('inet:ipv4', 0x01020304)[0], 0x01020304)
        self.eq(tlib.getTypeNorm('inet:ipv4', '0x01020304')[0], 0x01020304)
        self.eq(tlib.getTypeParse('inet:ipv4', '1.2.3.4')[0], 0x01020304)
        self.eq(tlib.getTypeRepr('inet:ipv4', 0x01020304), '1.2.3.4')
Esempio n. 15
0
    def test_datatype_basics(self):

        tlib = s_types.TypeLib()
        self.assertTrue( isinstance(tlib.getDataType('inet:url'), s_types.DataType) )

        self.assertIsNone( tlib.getDataType('newp') )
        self.assertRaises( NoSuchType, tlib.reqDataType, 'newp' )
Esempio n. 16
0
 def test_types_perm(self):
     tlib = s_types.TypeLib()
     self.raises(BadTypeValu, tlib.getTypeNorm, 'syn:perm', 'foo bar baz')
     self.raises(BadTypeValu, tlib.getTypeNorm, 'syn:perm',
                 'foo bar=(bar,baz)')
     tlib.getTypeNorm('syn:perm', 'foo:bar baz=faz')
     tlib.getTypeNorm('syn:perm', 'foo:bar   baz=faz     hehe=haha')
Esempio n. 17
0
    def test_datatype_fqdn(self):
        tlib = s_types.TypeLib()

        self.eq(tlib.getTypeNorm('inet:fqdn', 'WOOT.COM')[0], 'woot.com')
        self.eq(tlib.getTypeNorm('inet:fqdn', 'WO-OT.COM')[0], 'wo-ot.com')
        self.eq(tlib.getTypeParse('inet:fqdn', 'WOOT.COM')[0], 'woot.com')
        self.eq(tlib.getTypeParse('inet:fqdn', 'WO-OT.COM')[0], 'wo-ot.com')
Esempio n. 18
0
    def test_type_comp(self):
        tlib = s_types.TypeLib()

        tlib.addType('inet:foo:a',subof='comp',fields='fqdn,inet:fqdn|ipv4,inet:ipv4|time,time:epoch')

        jstext = '["wOOt.com","1.2.3.4","20160204080030"]'
        rawobj = ["wOOt.com","1.2.3.4","20160204080030"]

        b64t,_ = tlib.getTypeParse('inet:foo:a',jstext)
        epoc,_ = tlib.getTypeParse('time:epoch','20160204080030')

        item = msgunpack(base64.b64decode(b64t.encode('utf8')))

        self.assertEqual(item[0], 'woot.com')
        self.assertEqual(item[1], 0x01020304)
        self.assertEqual(item[2], epoc)

        b64t,_ = tlib.getTypeParse('inet:foo:a',rawobj)

        item = msgunpack(base64.b64decode(b64t.encode('utf8')))

        self.assertEqual(item[0], 'woot.com')
        self.assertEqual(item[1], 0x01020304)
        self.assertEqual(item[2], epoc)

        b64t,_ = tlib.getTypeNorm('inet:foo:a',('wOOt.com',0x01020304,epoc))

        item = msgunpack(base64.b64decode(b64t.encode('utf8')))

        self.assertEqual(item[0], 'woot.com')
        self.assertEqual(item[1], 0x01020304)
        self.assertEqual(item[2], epoc)

        b64t,_ = tlib.getTypeFrob('inet:foo:a',('wOOt.com',0x01020304,epoc))

        item = msgunpack(base64.b64decode(b64t.encode('utf8')))

        self.assertEqual(item[0], 'woot.com')
        self.assertEqual(item[1], 0x01020304)
        self.assertEqual(item[2], epoc)

        b64t,_  = tlib.getTypeNorm('inet:foo:a',b64t)

        item = msgunpack(base64.b64decode(b64t.encode('utf8')))

        self.assertEqual(item[0], 'woot.com')
        self.assertEqual(item[1], 0x01020304)
        self.assertEqual(item[2], epoc)

        b64t,_  = tlib.getTypeFrob('inet:foo:a',b64t)

        item = msgunpack(base64.b64decode(b64t.encode('utf8')))

        self.assertEqual(item[0], 'woot.com')
        self.assertEqual(item[1], 0x01020304)
        self.assertEqual(item[2], epoc)

        rept = tlib.getTypeRepr('inet:foo:a',b64t)
        self.assertEqual( rept, '["woot.com","1.2.3.4","2016/02/04 08:00:30"]')
Esempio n. 19
0
    def test_datatype_int_repr(self):
        tlib = s_types.TypeLib()

        self.eq(tlib.getTypeRepr('int', -1), '-1')
        self.eq(tlib.getTypeRepr('int', 1), '1')

        tlib.addType('woot:min', subof='int', ismin=1)
        self.eq(tlib.getTypeRepr('woot:min', 1), '1')
Esempio n. 20
0
    def test_datatype_inet_cidr(self):
        tlib = s_types.TypeLib()

        self.assertRaises(BadTypeValu, tlib.getTypeNorm, 'inet:cidr4', '1.2.3.0/33' )
        self.assertRaises(BadTypeValu, tlib.getTypeNorm, 'inet:cidr4', '1.2.3.0/-1' )

        self.eq( tlib.getTypeNorm('inet:cidr4', '1.2.3.0/24'), ('1.2.3.0/24', {'ipv4':16909056, 'mask':24}) )
        self.eq( tlib.getTypeRepr('inet:cidr4', '1.2.3.0/24'), '1.2.3.0/24')
Esempio n. 21
0
    def test_type_comp_chop(self):
        tlib = s_types.TypeLib()

        tlib.addSubType('fake:newp',
                        'comp',
                        fields='fqdn,inet:fqdn|email,inet:email')

        norm, subs = tlib.getTypeChop('fake:newp',
                                      ('woot.com', '*****@*****.**'))
Esempio n. 22
0
    def test_type_json(self):
        tlib = s_types.TypeLib()
        self.eq( tlib.getTypeNorm('json','{  "woot"       :10}')[0], '{"woot":10}' )
        self.eq( tlib.getTypeFrob('json',{'woot':10})[0], '{"woot":10}' )
        self.eq( tlib.getTypeParse('json','{"woot":10}')[0], '{"woot":10}' )

        # cant frob json string unless it's valid json... ( can't tell the difference )
        self.none(tlib.getTypeFrob('json', 'derp' )[0])
        self.assertRaises( BadTypeValu, tlib.getTypeParse, 'json', {'woot':10} )
Esempio n. 23
0
    def test_type_json(self):
        tlib = s_types.TypeLib()
        self.eq(tlib.getTypeNorm('json', '{  "woot"       :10}')[0], '{"woot":10}')
        self.eq(tlib.getTypeNorm('json', {'woot': 10})[0], '{"woot":10}')
        self.eq(tlib.getTypeNorm('json', {'hehe': 1, 'foo': 'bar'}), ('{"foo":"bar","hehe":1}', {}))
        self.eq(tlib.getTypeParse('json', '{"woot":10}')[0], '{"woot":10}')

        self.raises(BadTypeValu, tlib.getTypeNorm, 'json', {'hehe', 'haha'})
        self.raises(BadTypeValu, tlib.getTypeNorm, 'json', 'Wow"wow')
Esempio n. 24
0
    def test_type_sepr(self):
        tlib = s_types.TypeLib()
        tlib.addType('siteuser', subof='sepr', sep='/', fields='foo,inet:fqdn|bar,inet:user')
        self.eq( tlib.getTypeNorm('siteuser','WOOT.COM/visi')[0], 'woot.com/visi' )
        self.eq( tlib.getTypeParse('siteuser','WOOT.COM/visi')[0], 'woot.com/visi' )

        norm,subs = tlib.getTypeNorm('siteuser','WOOT.COM/Visi')
        self.eq(subs.get('foo'),'woot.com')
        self.eq(subs.get('bar'),'Visi')
Esempio n. 25
0
    def test_datatype_inet_udp4(self):
        tlib = s_types.TypeLib()

        self.eq(tlib.getTypeNorm('inet:udp4', 0x010203040002), 0x010203040002)

        self.assertRaises(BadTypeValu, tlib.getTypeParse, 'inet:udp4', 'newp')
        self.eq(tlib.getTypeParse('inet:udp4', '1.2.3.4:2'), 0x010203040002)

        self.eq(tlib.getTypeRepr('inet:udp4', 0x010203040002), '1.2.3.4:2')
Esempio n. 26
0
    def test_type_phone(self):
        tlib = s_types.TypeLib()
        prop = 'tel:phone'

        self.eq(tlib.getTypeNorm(prop, 1234567890)[0], 1234567890)
        self.eq(tlib.getTypeParse(prop, '123 456 7890')[0], 1234567890)

        self.eq(tlib.getTypeRepr(prop, 12345678901), '+1 (234) 567-8901')
        self.eq(tlib.getTypeRepr(prop, 9999999999), '+9999999999')
Esempio n. 27
0
    def test_datatype_hash_md5(self):
        tlib = s_types.TypeLib()

        self.assertRaises(BadTypeValu, tlib.getTypeParse, 'hash:md5', 'newp' )
        self.assertRaises(BadTypeValu, tlib.getTypeNorm, 'hash:md5', 'newp' )

        self.eq( tlib.getTypeParse('hash:md5', '000102030405060708090A0B0C0D0E0F')[0], '000102030405060708090a0b0c0d0e0f')
        self.eq( tlib.getTypeNorm('hash:md5', '000102030405060708090A0B0C0D0E0F')[0], '000102030405060708090a0b0c0d0e0f')
        self.eq( tlib.getTypeFrob('hash:md5', '000102030405060708090A0B0C0D0E0F')[0], '000102030405060708090a0b0c0d0e0f')
        self.eq( tlib.getTypeRepr('hash:md5', '000102030405060708090a0b0c0d0e0f'), '000102030405060708090a0b0c0d0e0f')
Esempio n. 28
0
    def test_datatype_inet_mac(self):
        tlib = s_types.TypeLib()

        self.assertRaises(BadTypeValu, tlib.getTypeParse, 'inet:mac', 'newp' )
        self.assertRaises(BadTypeValu, tlib.getTypeNorm, 'inet:mac', 'newp' )

        self.eq( tlib.getTypeFrob('inet:mac', 'FF:FF:FF:FF:FF:FF')[0], 'ff:ff:ff:ff:ff:ff' )
        self.eq( tlib.getTypeNorm('inet:mac', 'FF:FF:FF:FF:FF:FF')[0], 'ff:ff:ff:ff:ff:ff' )
        self.eq( tlib.getTypeParse('inet:mac', 'FF:FF:FF:FF:FF:FF')[0], 'ff:ff:ff:ff:ff:ff' )
        self.eq( tlib.getTypeRepr('inet:mac', 'ff:ff:ff:ff:ff:ff'), 'ff:ff:ff:ff:ff:ff' )
Esempio n. 29
0
    def test_datatype_str_enums(self):
        tlib = s_types.TypeLib()

        tlib.addType('woot', subof='str', enums='hehe,haha,hoho', lower=1)

        self.raises(BadTypeValu, tlib.getTypeNorm, 'woot', 'asdf')
        self.raises(BadTypeValu, tlib.getTypeParse, 'woot', 'asdf')

        self.eq(tlib.getTypeNorm('woot', 'HeHe')[0], 'hehe')
        self.eq(tlib.getTypeParse('woot', 'HeHe')[0], 'hehe')
Esempio n. 30
0
    def test_type_comp(self):
        tlib = s_types.TypeLib()
        tlib.addType('foo:bar',
                     subof='comp',
                     fields='hehe=inet:fqdn,haha=inet:ipv4')

        valu, subs = tlib.getTypeNorm('foo:bar', ('WOOT.COM', 0x01020304))
        self.eq(valu, '47e2e1c0f894266153f836a75440f803')
        self.eq(subs.get('hehe'), 'woot.com')
        self.eq(subs.get('haha'), 0x01020304)