tracer/structure: handle boolean fields

This commit is contained in:
Stefan Sauer 2016-12-20 12:09:21 +01:00
parent 4a8a29a884
commit 167be7d7af
2 changed files with 7 additions and 1 deletions

View file

@ -90,6 +90,8 @@ class Structure(object):
v = Structure(v)
elif t == 'string' and v[0] == '"':
v = v[1:-1]
elif t == 'boolean':
v = (v == '1')
elif t in INT_TYPES:
v = int(v)
types[k] = t

View file

@ -13,7 +13,7 @@ BAD_TYPE2 = r'foo, bar=(int'
EMPTY_STRUCTURE = r'foo;'
SINGLE_VALUE_STRUCTURE = r'foo, key=(string)"value";'
MISC_TYPES_STRUCTURE = r'foo, key1=(string)"value", key2=(int)5, key3=(boolean)true;'
MISC_TYPES_STRUCTURE = r'foo, key1=(string)"value", key2=(int)5, key3=(boolean)1;'
NESTED_STRUCTURE = r'foo, nested=(structure)"bar\,\ key1\=\(int\)0\,\ key2\=\(int\)5\;";'
@ -78,6 +78,10 @@ class TestStructure(unittest.TestCase):
structure = Structure(MISC_TYPES_STRUCTURE)
self.assertEqual(structure.values['key2'], 5)
def test_parses_boolean_value(self):
structure = Structure(MISC_TYPES_STRUCTURE)
self.assertEqual(structure.values['key3'], True)
def test_parses_nested_structure(self):
structure = Structure(NESTED_STRUCTURE)
self.assertEqual(structure.text, NESTED_STRUCTURE)