def test_numbermethods(self, space): assert "ab" == space.unwrap( PyNumber_Add(space, space.wrap("a"), space.wrap("b"))) assert "aaa" == space.unwrap( PyNumber_Multiply(space, space.wrap("a"), space.wrap(3))) w_l = space.newlist([1, 2, 3]) w_l2 = PyNumber_Multiply(space, w_l, space.wrap(3)) assert PyObject_Size(space, w_l2) == 9 assert PyObject_Size(space, w_l) == 3 w_l3 = PyNumber_InPlaceMultiply(space, w_l, space.wrap(3)) assert PyObject_Size(space, w_l) == 9 assert w_l3 is w_l # unary function assert 9 == space.unwrap(PyNumber_Absolute(space, space.wrap(-9))) # power assert 9 == space.unwrap( PyNumber_Power(space, space.wrap(3), space.wrap(2), space.w_None)) assert 4 == space.unwrap( PyNumber_Power(space, space.wrap(3), space.wrap(2), space.wrap(5))) assert 9 == space.unwrap( PyNumber_InPlacePower(space, space.wrap(3), space.wrap(2), space.w_None))
def test_run_string(self, space): def run(code, start, w_globals, w_locals): buf = rffi.str2charp(code) try: return PyRun_String(space, buf, start, w_globals, w_locals) finally: rffi.free_charp(buf) w_globals = space.newdict() assert 42 * 43 == space.unwrap( run("42 * 43", Py_eval_input, w_globals, w_globals)) assert PyObject_Size(space, w_globals) == 0 assert run("a = 42 * 43", Py_single_input, w_globals, w_globals) == space.w_None assert 42 * 43 == space.unwrap( PyObject_GetItem(space, w_globals, space.wrap("a")))
def test_run_string(self, space): def run(code, start, w_globals, w_locals): buf = rffi.str2charp(code) try: return PyRun_String(space, buf, start, w_globals, w_locals) finally: rffi.free_charp(buf) w_globals = space.newdict() assert 42 * 43 == space.unwrap( run("42 * 43", Py_eval_input, w_globals, w_globals)) # __builtins__ is added assert PyObject_Size(space, w_globals) == 1 assert run("a = 42 * 43", Py_single_input, w_globals, w_globals) == space.w_None py_obj = PyObject_GetItem(space, w_globals, space.wrap("a")) assert 42 * 43 == space.unwrap(get_w_obj_and_decref(space, py_obj))