Пример #1
0
 def test_pyc_magic_changes(self):
     # test that the pyc files produced by a space are not reimportable
     # from another, if they differ in what opcodes they support
     allspaces = [self.space]
     for opcodename in self.space.config.objspace.opcodes.getpaths():
         key = 'objspace.opcodes.' + opcodename
         space2 = gettestobjspace(**{key: True})
         allspaces.append(space2)
     for space1 in allspaces:
         for space2 in allspaces:
             if space1 is space2:
                 continue
             pathname = "whatever"
             mtime = 12345
             co = compile('x = 42', '?', 'exec')
             cpathname = _testfile(importing.get_pyc_magic(space1),
                                   mtime, co)
             w_modulename = space2.wrap('somemodule')
             stream = streamio.open_file_as_stream(cpathname, "rb")
             try:
                 w_mod = space2.wrap(Module(space2, w_modulename))
                 magic = importing._r_long(stream)
                 timestamp = importing._r_long(stream)
                 space2.raises_w(space2.w_ImportError,
                                 importing.load_compiled_module,
                                 space2,
                                 w_modulename,
                                 w_mod,
                                 cpathname,
                                 magic,
                                 timestamp,
                                 stream.readall())
             finally:
                 stream.close()
Пример #2
0
 def test_load_compiled_module(self):
     space = self.space
     pathname = "whatever"
     mtime = 12345
     co = compile('x = 42', '?', 'exec')
     cpathname = _testfile(importing.get_pyc_magic(space), mtime, co)
     w_modulename = space.wrap('somemodule')
     stream = streamio.open_file_as_stream(cpathname, "r")
     try:
         w_mod = space.wrap(Module(space, w_modulename))
         magic = importing._r_long(stream)
         timestamp = importing._r_long(stream)
         w_ret = importing.load_compiled_module(space,
                                                w_modulename,
                                                w_mod,
                                                cpathname,
                                                magic,
                                                timestamp,
                                                stream.readall())
     finally:
         stream.close()
     assert w_mod is w_ret
     w_ret = space.getattr(w_mod, space.wrap('x'))
     ret = space.int_w(w_ret)
     assert ret == 42
Пример #3
0
 def test_long_writes(self):
     pathname = str(udir.join('test.dat'))
     stream = streamio.open_file_as_stream(pathname, "wb")
     try:
         importing._w_long(stream, 42)
         importing._w_long(stream, 12312)
         importing._w_long(stream, 128397198)
     finally:
         stream.close()
     stream = streamio.open_file_as_stream(pathname, "rb")
     try:
         res = importing._r_long(stream)
         assert res == 42
         res = importing._r_long(stream)
         assert res == 12312
         res = importing._r_long(stream)
         assert res == 128397198
     finally:
         stream.close()
Пример #4
0
 def test_load_compiled_module(self):
     space = self.space
     pathname = "whatever"
     mtime = 12345
     co = compile('x = 42', '?', 'exec')
     cpathname = _testfile(importing.get_pyc_magic(space), mtime, co)
     w_modulename = space.wrap('somemodule')
     stream = streamio.open_file_as_stream(cpathname, "r")
     try:
         w_mod = space.wrap(Module(space, w_modulename))
         magic = importing._r_long(stream)
         timestamp = importing._r_long(stream)
         w_ret = importing.load_compiled_module(space, w_modulename, w_mod,
                                                cpathname, magic, timestamp,
                                                stream.readall())
     finally:
         stream.close()
     assert w_mod is w_ret
     w_ret = space.getattr(w_mod, space.wrap('x'))
     ret = space.int_w(w_ret)
     assert ret == 42