def testCorrectOffsetIsSetMiddleFieldSingleLevel(self): uut = self.get_default_field() first_field = String('Reykjavik', name='first_field') con = Container(name='container', fields=[first_field, uut]) con.render() self.assertEqual(uut.get_offset(), len(first_field.render())) while con.mutate(): con.render() self.assertEqual(uut.get_offset(), len(first_field.render()))
def testAbsoluteOffsetOfPreFieldNotAtTheBeginning(self): uut = self.get_default_field() pre_field = String(name='first', value='first') container = Container(name='container', fields=[pre_field, self.to, uut]) while container.mutate(): container.render() uut_rendered = uut.render() uut_val = unpack('>I', uut_rendered.tobytes())[0] self.assertEqual(len(pre_field.render()), uut_val)
def testCorrectionInt(self): self.correction = 5 uut = self.get_default_field() pre_field = String(name='first', value='first') container = Container(name='container', fields=[pre_field, self.to, uut]) while container.mutate(): container.render() uut_rendered = uut.render() uut_val = unpack('>I', uut_rendered.tobytes())[0] self.assertEqual(len(pre_field.render()) + 5, uut_val)