def test_python_to_lua_float(self): pval = 10.1 lval = MockRedisScript._python_to_lua(pval) lval_expected = self.lua.eval('10.1') eq_("number", self.lua_globals.type(lval)) ok_( MockRedisScript._lua_to_python( self.lua_compare_val(lval_expected, lval)))
def test_python_to_lua_float(self): pval = 10.1 lval = MockredisScript._python_to_lua(pval) lval_expected = self.lua.eval('10.1') self.assertEqual("number", self.lua_globals.type(lval)) self.assertTrue( MockredisScript._lua_to_python( self.lua_compare_val(lval_expected, lval)))
def test_python_to_lua_none(self): pval = None lval = MockRedisScript._python_to_lua(pval) is_null = """ function is_null(var1) return var1 == nil end return is_null """ lua_is_null = self.lua.execute(is_null) ok_(MockRedisScript._lua_to_python(lua_is_null(lval)))
def _lua_to_python(lval, return_status=False): """ Patch MockRedis+Lua for Python 3 compatibility """ # noinspection PyUnresolvedReferences import lua lua_globals = lua.globals() if lval is None: # Lua None --> Python None return None if lua_globals.type(lval) == 'table': # Lua table --> Python list pval = [] for i in lval: if return_status: if i == 'ok': return lval[i] if i == 'err': raise ResponseError(lval[i]) pval.append(Script._lua_to_python(lval[i])) return pval elif isinstance(lval, six.integer_types): # Lua number --> Python long return six.integer_types[-1](lval) elif isinstance(lval, float): # Lua number --> Python float return float(lval) elif lua_globals.type(lval) == 'userdata': # Lua userdata --> Python string return str(lval) elif lua_globals.type(lval) == 'string': # Lua string --> Python string return lval elif lua_globals.type(lval) == 'boolean': # Lua boolean --> Python bool return bool(lval) raise RuntimeError('Invalid Lua type: ' + str(lua_globals.type(lval)))
def test_lua_to_python_bool(self): lval = self.lua.eval('true') pval = MockRedisScript._lua_to_python(lval) ok_(isinstance(pval, bool)) eq_(True, pval)
def test_python_to_lua_float(self): pval = 10.1 lval = MockredisScript._python_to_lua(pval) lval_expected = self.lua.eval('10.1') self.assertEqual("number", self.lua_globals.type(lval)) self.assertTrue(MockredisScript._lua_to_python(self.lua_compare_val(lval_expected, lval)))
def test_lua_to_python_list(self): lval = self.lua.eval('{"val1", "val2"}') pval = MockRedisScript._lua_to_python(lval) ok_(isinstance(pval, list)) eq_(["val1", "val2"], pval)
def test_lua_to_python_flota(self): lval = self.lua.eval('22.2') pval = MockRedisScript._lua_to_python(lval) ok_(isinstance(pval, float)) eq_(22.2, pval)
def test_lua_to_python_bool(self): lval = self.lua.eval('true') pval = MockredisScript._lua_to_python(lval) self.assertIsInstance(pval, bool) self.assertEqual(True, pval)
def test_python_to_lua_boolean(self): pval = True lval = MockredisScript._python_to_lua(pval) self.assertEqual("boolean", self.lua_globals.type(lval)) self.assertTrue(MockredisScript._lua_to_python(lval))
def test_lua_to_python_long(self): lval = self.lua.eval("22") pval = MockRedisScript._lua_to_python(lval) ok_(isinstance(pval, long)) eq_(22, pval)
def test_lua_to_python_flota(self): lval = self.lua.eval('22.2') pval = MockredisScript._lua_to_python(lval) self.assertIsInstance(pval, float) self.assertEqual(22.2, pval)
def test_lua_to_python_none(self): lval = self.lua.eval("") pval = MockRedisScript._lua_to_python(lval) ok_(pval is None)
def test_python_to_lua_long(self): pval = long(10) lval = MockRedisScript._python_to_lua(pval) lval_expected = self.lua.eval('10') eq_("number", self.lua_globals.type(lval)) ok_(MockRedisScript._lua_to_python(self.lua_compare_val(lval_expected, lval)))
def test_lua_to_python_string(self): lval = self.lua.eval('"somestring"') pval = MockredisScript._lua_to_python(lval) self.assertIsInstance(pval, str) self.assertEqual("somestring", pval)
def test_lua_to_python_list(self): lval = self.lua.eval('{"val1", "val2"}') pval = MockredisScript._lua_to_python(lval) self.assertIsInstance(pval, list) self.assertEqual(["val1", "val2"], pval)
def test_lua_to_python_flota(self): lval = self.lua.eval("22.2") pval = MockRedisScript._lua_to_python(lval) ok_(isinstance(pval, float)) eq_(22.2, pval)
def test_lua_to_python_long(self): lval = self.lua.eval('22') pval = MockredisScript._lua_to_python(lval) self.assertIsInstance(pval, long) self.assertEqual(22, pval)
def test_lua_to_python_string(self): lval = self.lua.eval('"somestring"') pval = MockRedisScript._lua_to_python(lval) ok_(isinstance(pval, str)) eq_("somestring", pval)
def test_lua_to_python_bool(self): lval = self.lua.eval("true") pval = MockRedisScript._lua_to_python(lval) ok_(isinstance(pval, bool)) eq_(True, pval)
def test_python_to_lua_boolean(self): pval = True lval = MockRedisScript._python_to_lua(pval) eq_("boolean", self.lua_globals.type(lval)) ok_(MockRedisScript._lua_to_python(lval))
def test_lua_to_python_long(self): lval = self.lua.eval('22') pval = MockRedisScript._lua_to_python(lval) ok_(isinstance(pval, long)) eq_(22, pval)
def test_lua_to_python_none(self): lval = self.lua.eval("") pval = MockredisScript._lua_to_python(lval) self.assertTrue(pval is None)
def test_python_to_lua_float(self): pval = 10.1 lval = MockRedisScript._python_to_lua(pval) lval_expected = self.lua.eval("10.1") eq_("number", self.lua_globals.type(lval)) ok_(MockRedisScript._lua_to_python(self.lua_compare_val(lval_expected, lval)))