From 5e4739184f7ac028dfe2eb14eed5c3e25b49f9c9 Mon Sep 17 00:00:00 2001 From: Dariusz Ostolski Date: Thu, 5 Oct 2017 23:07:42 +0200 Subject: [PATCH] =?UTF-8?q?Fix=20issue=20#4389,=20if=20field=20is=20ommitt?= =?UTF-8?q?ed=20the=20return=20type=20is=20the=20same=20for=E2=80=A6=20(#4?= =?UTF-8?q?444)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 --- src/idl_gen_python.cpp | 2 +- tests/MyGame/Example/Monster.py | 2 +- tests/MyGame/Example/Stat.py | 2 +- tests/py_test.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/idl_gen_python.cpp b/src/idl_gen_python.cpp index fd2e1c3fe..a1a96b5c8 100644 --- a/src/idl_gen_python.cpp +++ b/src/idl_gen_python.cpp @@ -198,7 +198,7 @@ static void GetStringField(const StructDef &struct_def, code += OffsetPrefix(field); code += Indent + Indent + Indent + "return " + GenGetter(field.value.type); 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. diff --git a/tests/MyGame/Example/Monster.py b/tests/MyGame/Example/Monster.py index 910f39ab2..fc834edb1 100644 --- a/tests/MyGame/Example/Monster.py +++ b/tests/MyGame/Example/Monster.py @@ -49,7 +49,7 @@ class Monster(object): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) if o != 0: return self._tab.String(o + self._tab.Pos) - return "" + return bytes() # Monster def Inventory(self, j): diff --git a/tests/MyGame/Example/Stat.py b/tests/MyGame/Example/Stat.py index b0e251d46..2e0cc05c5 100644 --- a/tests/MyGame/Example/Stat.py +++ b/tests/MyGame/Example/Stat.py @@ -23,7 +23,7 @@ class Stat(object): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.String(o + self._tab.Pos) - return "" + return bytes() # Stat def Val(self): diff --git a/tests/py_test.py b/tests/py_test.py index d15a31654..1302722be 100644 --- a/tests/py_test.py +++ b/tests/py_test.py @@ -895,7 +895,7 @@ class TestAllCodePathsOfExampleSchema(unittest.TestCase): self.assertEqual(100, self.mon.Hp()) def test_default_monster_name(self): - self.assertEqual('', self.mon.Name()) + self.assertEqual(b'', self.mon.Name()) def test_default_monster_inventory_item(self): self.assertEqual(0, self.mon.Inventory(0))