Author: mattip <matti.pi...@gmail.com>
Branch: 
Changeset: r78746:f3e27c185636
Date: 2015-08-02 19:22 +0300
http://bitbucket.org/pypy/pypy/changeset/f3e27c185636/

Log:    test, fix for issue #2105

diff --git a/pypy/tool/release/package.py b/pypy/tool/release/package.py
--- a/pypy/tool/release/package.py
+++ b/pypy/tool/release/package.py
@@ -106,7 +106,7 @@
                                 'not find it' % (str(libpypy_c),))
         binaries.append((libpypy_c, libpypy_name))
     #
-    builddir = options.builddir
+    builddir = py.path.local(options.builddir)
     pypydir = builddir.ensure(name, dir=True)
     includedir = basedir.join('include')
     # Recursively copy all headers, shutil has only ignore
diff --git a/pypy/tool/release/test/test_package.py 
b/pypy/tool/release/test/test_package.py
--- a/pypy/tool/release/test/test_package.py
+++ b/pypy/tool/release/test/test_package.py
@@ -3,28 +3,31 @@
 from pypy.conftest import pypydir
 from pypy.tool.release import package
 from pypy.module.sys.version import  CPYTHON_VERSION
+from rpython.tool.udir import udir
 import tarfile, zipfile, sys
 
-def test_dir_structure(test='test'):
-    # make sure we have sort of pypy-c
-    if sys.platform == 'win32':
-        basename = 'pypy-c.exe'
-        rename_pypy_c = 'pypy-c'
-        exe_name_in_archive = 'pypy-c.exe'
-    else:
-        basename = 'pypy-c'
-        rename_pypy_c = 'pypy'
-        exe_name_in_archive = 'bin/pypy'
-    pypy_c = py.path.local(pypydir).join('goal', basename)
-    try:
+class TestPackaging:
+    def setup_class(cls):
+        # make sure we have sort of pypy-c
+        if sys.platform == 'win32':
+            basename = 'pypy-c.exe'
+            cls.rename_pypy_c = 'pypy-c'
+            cls.exe_name_in_archive = 'pypy-c.exe'
+        else:
+            basename = 'pypy-c'
+            cls.rename_pypy_c = 'pypy'
+            cls.exe_name_in_archive = 'bin/pypy'
+        cls.pypy_c = py.path.local(pypydir).join('goal', basename)
+
+    def test_dir_structure(self, test='test'):
         retval, builddir = package.package(
             '--without-cffi', str(py.path.local(pypydir).dirpath()),
-            test, rename_pypy_c, _fake=True)
+            test, self.rename_pypy_c, _fake=True)
         assert retval == 0
         prefix = builddir.join(test)
         cpyver = '%d.%d' % CPYTHON_VERSION[:2]
         assert prefix.join('lib-python', cpyver, 'test').check()
-        assert prefix.join(exe_name_in_archive).check()
+        assert prefix.join(self.exe_name_in_archive).check()
         assert prefix.join('lib_pypy', 'syslog.py').check()
         assert not prefix.join('lib_pypy', 'py').check()
         assert not prefix.join('lib_pypy', 'ctypes_configure').check()
@@ -36,7 +39,7 @@
         else:
             th = tarfile.open(str(builddir.join('%s.tar.bz2' % test)))
             syslog = th.getmember('%s/lib_pypy/syslog.py' % test)
-            exe = th.getmember('%s/%s' % (test, exe_name_in_archive))
+            exe = th.getmember('%s/%s' % (test, self.exe_name_in_archive))
             assert syslog.mode == 0644
             assert exe.mode == 0755
             assert exe.uname == ''
@@ -63,16 +66,22 @@
         check_include('modsupport.h')
         check_include('pypy_decl.h')
         check_include('numpy/arrayobject.h')
-    finally:
-        pass    # to keep the indentation
 
-def test_with_zipfile_module():
-    prev = package.USE_ZIPFILE_MODULE
-    try:
-        package.USE_ZIPFILE_MODULE = True
-        test_dir_structure(test='testzipfile')
-    finally:
-        package.USE_ZIPFILE_MODULE = prev
+    def test_options(self, test='testoptions'):
+        builddir = udir.ensure("build", dir=True)
+        retval, builddir = package.package(
+            '--without-cffi', '--builddir', str(builddir),
+            str(py.path.local(pypydir).dirpath()),
+            test, self.rename_pypy_c, _fake=True)
+
+    def test_with_zipfile_module(self):
+        prev = package.USE_ZIPFILE_MODULE
+        try:
+            package.USE_ZIPFILE_MODULE = True
+            self.test_dir_structure(test='testzipfile')
+        finally:
+            package.USE_ZIPFILE_MODULE = prev
+
 
 def test_fix_permissions(tmpdir):
     if sys.platform == 'win32':
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to