diff --git a/lupa/_lupa.pyx b/lupa/_lupa.pyx index 7b7e78a1..ba7303cf 100644 --- a/lupa/_lupa.pyx +++ b/lupa/_lupa.pyx @@ -430,7 +430,7 @@ cdef class LuaRuntime: for obj in args: if isinstance(obj, dict): for key, value in obj.iteritems(): - py_to_lua(self, L, key) + py_to_lua(self, L, key, wrap_none=True) py_to_lua(self, L, value) lua.lua_rawset(L, -3) @@ -447,7 +447,7 @@ cdef class LuaRuntime: elif isinstance(obj, Mapping): for key in obj: value = obj[key] - py_to_lua(self, L, key) + py_to_lua(self, L, key, wrap_none=True) py_to_lua(self, L, value) lua.lua_rawset(L, -3) else: diff --git a/lupa/tests/test.py b/lupa/tests/test.py index 48d92b42..67873011 100644 --- a/lupa/tests/test.py +++ b/lupa/tests/test.py @@ -494,10 +494,11 @@ def test_create_table_args_kwargs(self): self.assertEqual(6, len(table)) def test_table_from_dict(self): - table = self.lua.table_from({"foo": 1, "bar": 20, "baz": "spam"}) + table = self.lua.table_from({"foo": 1, "bar": 20, "baz": "spam", None: "python.none"}) self.assertEqual( 1, table['foo']) self.assertEqual( 20, table['bar']) self.assertEqual("spam", table['baz']) + self.assertEqual("python.none", table[None]) self.assertEqual(0, len(table))