Fix issue #4389, if field is ommitted the return type is the same for… (#4444)

* Fix issue #4389, if field is ommitted the return type is the same for python generator

* Fix issue #4389, bytes is returned when field is omitted

* Fix issue #4389, added generated python code after generator modification
This commit is contained in:
Dariusz Ostolski
2017-10-05 23:07:42 +02:00
committed by Wouter van Oortmerssen
parent 971a68110e
commit 5e4739184f
4 changed files with 4 additions and 4 deletions

View File

@@ -198,7 +198,7 @@ static void GetStringField(const StructDef &struct_def,
code += OffsetPrefix(field); code += OffsetPrefix(field);
code += Indent + Indent + Indent + "return " + GenGetter(field.value.type); code += Indent + Indent + Indent + "return " + GenGetter(field.value.type);
code += "o + self._tab.Pos)\n"; code += "o + self._tab.Pos)\n";
code += Indent + Indent + "return \"\"\n\n"; code += Indent + Indent + "return bytes()\n\n";
} }
// Get the value of a union from an object. // Get the value of a union from an object.

View File

@@ -49,7 +49,7 @@ class Monster(object):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10))
if o != 0: if o != 0:
return self._tab.String(o + self._tab.Pos) return self._tab.String(o + self._tab.Pos)
return "" return bytes()
# Monster # Monster
def Inventory(self, j): def Inventory(self, j):

View File

@@ -23,7 +23,7 @@ class Stat(object):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
if o != 0: if o != 0:
return self._tab.String(o + self._tab.Pos) return self._tab.String(o + self._tab.Pos)
return "" return bytes()
# Stat # Stat
def Val(self): def Val(self):

View File

@@ -895,7 +895,7 @@ class TestAllCodePathsOfExampleSchema(unittest.TestCase):
self.assertEqual(100, self.mon.Hp()) self.assertEqual(100, self.mon.Hp())
def test_default_monster_name(self): def test_default_monster_name(self):
self.assertEqual('', self.mon.Name()) self.assertEqual(b'', self.mon.Name())
def test_default_monster_inventory_item(self): def test_default_monster_inventory_item(self):
self.assertEqual(0, self.mon.Inventory(0)) self.assertEqual(0, self.mon.Inventory(0))