def test_fail_on_dynamic_length(self):
     union = UnionTemplate('NotLegal', 'dymagic', parent=None)
     union.add(UInt(2, 'bar', None))
     struct = StructTemplate('Foo', 'foo', parent=None)
     struct.add(UInt(1, 'len', 22))
     struct.add(Char('len', 'dymagic', 'foo'))
     self.assertRaises(Exception, union.add, struct)
Example #2
0
def get_empty_recursive_struct():
    str_str = StructTemplate('StructStruct', '3pairs', parent=None)
    pair1 = get_empty_pair('pair1')
    pair2 = get_empty_pair('pair2')
    pair3 = get_empty_pair('pair3')
    str_str.add(pair1)
    str_str.add(pair2)
    str_str.add(pair3)
    return str_str
Example #3
0
 def test_dynamic_field_validation(self):
     struct = StructTemplate('Foo', 'foo', parent=None)
     struct.add(UInt(2, 'len', None))
     struct.add(Char('len', 'text', None))
     encoded = struct.encode({'foo.len': 6, 'foo.text': 'fobba'})
     self._should_pass(
         struct.validate({'foo': encoded}, {'foo.text': 'fobba'}))
     self._should_fail(
         struct.validate({'foo': encoded}, {'foo.text': 'fob'}), 1)
 def test_dynamic_field_validation(self):
     struct = StructTemplate('Foo', 'foo', parent=None)
     struct.add(UInt(2, 'len', None))
     struct.add(Char('len', 'text', None))
     encoded = struct.encode({'foo.len': 6, 'foo.text': 'fobba'})
     self._should_pass(struct.validate({'foo': encoded}, {'foo.text': 'fobba'}))
     self._should_fail(struct.validate({'foo': encoded}, {'foo.text': 'fob'}), 1)
Example #5
0
 def test_fail_on_dynamic_length(self):
     union = UnionTemplate('NotLegal', 'dymagic', parent=None)
     union.add(UInt(2, 'bar', None))
     struct = StructTemplate('Foo', 'foo', parent=None)
     struct.add(UInt(1, 'len', 22))
     struct.add(Char('len', 'dymagic', 'foo'))
     self.assertRaises(Exception, union.add, struct)
Example #6
0
def get_empty_recursive_struct():
    str_str = StructTemplate('StructStruct', '3pairs', parent=None)
    pair1 = get_empty_pair('pair1')
    pair2 = get_empty_pair('pair2')
    pair3 = get_empty_pair('pair3')
    str_str.add(pair1)
    str_str.add(pair2)
    str_str.add(pair3)
    return str_str
 def test_add_field_with_length_reference_to_parent(self):
     tmp = MessageTemplate('Dymagic', self._protocol, {})
     tmp.add(UInt(2, 'len', None))
     str = StructTemplate('FooType', 'foo', tmp)
     str.add(Char('len', "bar"))
Example #8
0
def get_struct_with_two_lists(name='pair'):
    struct = StructTemplate('PairOfLists', name, parent=None)
    struct.add(get_list_of_three('first_list', None))
    struct.add(get_list_of_three('second_list', None))
    return struct
Example #9
0
def get_struct_with_length_and_alignment():
    struct = StructTemplate('Pair', 'pair', parent=None, align=4)
    struct.add(UInt(2, 'first', 1))
    struct.add(UInt(1, 'second', 2))
    return struct
Example #10
0
def get_empty_pair(name='pair'):
    struct = StructTemplate('Pair', name, parent=None)
    struct.add(UInt(2, 'first', None))
    struct.add(UInt(2, 'second', None))
    return struct
Example #11
0
def get_recursive_struct():
    str_str = StructTemplate('StructStruct', 'str_str', parent=None)
    inner = get_pair()
    str_str.add(inner)
    return str_str
Example #12
0
def get_pair():
    struct = StructTemplate('Pair', 'pair', parent=None)
    struct.add(UInt(2, 'first', 1))
    struct.add(UInt(2, 'second', 2))
    return struct
Example #13
0
def get_pair():
    struct = StructTemplate('Pair', 'pair', parent=None)
    struct.add(UInt(2, 'first', 1))
    struct.add(UInt(2, 'second', 2))
    return struct
Example #14
0
def get_struct_with_two_lists(name='pair'):
    struct = StructTemplate('PairOfLists', name, parent=None)
    struct.add(get_list_of_three('first_list', None))
    struct.add(get_list_of_three('second_list', None))
    return struct
 def test_add_field_with_length_reference_missing(self):
     tmp = MessageTemplate('Dymagic', self._protocol, {})
     tmp.add(UInt(2, 'len', None))
     str = StructTemplate('FooType', 'foo', tmp)
     self.assertRaises(AssertionError, str.add, Char('notfound', "bar"))
Example #16
0
 def test_add_field_with_length_reference_to_parent(self):
     tmp = MessageTemplate('Dymagic', self._protocol, {})
     tmp.add(UInt(2, 'len', None))
     str = StructTemplate('FooType', 'foo', tmp)
     str.add(Char('len', "bar"))
Example #17
0
def get_struct_with_length_and_alignment():
    struct = StructTemplate('Pair', 'pair', parent=None, align=4)
    struct.add(UInt(2, 'first', 1))
    struct.add(UInt(1, 'second', 2))
    return struct
Example #18
0
def get_empty_pair(name='pair'):
    struct = StructTemplate('Pair', name, parent=None)
    struct.add(UInt(2, 'first', None))
    struct.add(UInt(2, 'second', None))
    return struct
Example #19
0
def get_recursive_struct():
    str_str = StructTemplate('StructStruct', 'str_str', parent=None)
    inner = get_pair()
    str_str.add(inner)
    return str_str