Add self.assertNotNested() in CreateString

And also add a test case.
If you try to nest CreateString you will get a clear exception.
This commit is contained in:
tguo-aa 2015-09-29 08:30:37 +08:00
parent e1e1bced08
commit d9db48257b
2 changed files with 9 additions and 0 deletions

View File

@ -350,6 +350,8 @@ class Builder(object):
def CreateString(self, s):
"""CreateString writes a null-terminated byte string as a vector."""
self.assertNotNested()
if isinstance(s, compat.string_types):
x = s.encode()
elif isinstance(s, compat.binary_type):

View File

@ -1130,6 +1130,13 @@ class TestExceptions(unittest.TestCase):
assertRaises(self, lambda: b.PrependUOffsetTRelative(1),
flatbuffers.builder.OffsetArithmeticError)
def test_create_string_is_nested_error(self):
b = flatbuffers.Builder(0)
b.StartObject(0)
s = 'test1'
assertRaises(self, lambda: b.CreateString(s),
flatbuffers.builder.ObjectIsNestedError)
def CheckAgainstGoldDataGo():
try: