1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import os
- import shutil
- import sys
- import tempfile
- import unittest
- pjoin = os.path.join
- from .utils import assert_is_file, assert_is_dir, test_dir
- running_python = '.'.join(str(x) for x in sys.version_info[:3])
- sample_path = [pjoin(test_dir, 'sample_pkgs'),
- pjoin(test_dir, 'sample_zip.egg'),
- pjoin(test_dir, 'sample_zip.egg/rootdir'),
- ]
- from nsist.copymodules import copy_modules, ExtensionModuleMismatch
- class TestCopyModules(unittest.TestCase):
- def setUp(self):
- self.target = tempfile.mkdtemp()
-
- def tearDown(self):
- shutil.rmtree(self.target)
-
- def test_copy_plain(self):
- copy_modules(['plainmod', 'plainpkg'], self.target, '3.3.5', sample_path)
- assert_is_file(pjoin(self.target, 'plainmod.py'))
- assert_is_dir(pjoin(self.target, 'plainpkg'))
-
- @unittest.skipIf(sys.platform.startswith("win"), "test for non-Windows platforms")
- def test_copy_wrong_platform(self):
- with self.assertRaisesRegexp(ExtensionModuleMismatch, "will not be usable on Windows"):
- copy_modules(['unix_extmod'], self.target, '3.3.5', sample_path)
-
- with self.assertRaisesRegexp(ExtensionModuleMismatch, "will not be usable on Windows"):
- copy_modules(['unix_extpkg'], self.target, '3.3.5', sample_path)
-
- @unittest.skipUnless(sys.platform.startswith("win"), "requires Windows")
- def test_copy_windows(self):
- copy_modules(['win_extmod', 'win_extpkg'], self.target, running_python, sample_path)
- assert_is_file(pjoin(self.target, 'win_extmod.pyd'))
- assert_is_dir(pjoin(self.target, 'win_extpkg'))
-
- @unittest.skipUnless(sys.platform.startswith("win"), "requires Windows")
- def test_copy_wrong_pyversion(self):
- with self.assertRaisesRegexp(ExtensionModuleMismatch, "on Python 4"):
- copy_modules(['win_extpkg'], self.target, '4.0.0', sample_path)
-
- with self.assertRaisesRegexp(ExtensionModuleMismatch, "on Python 4"):
- copy_modules(['win_extmod'], self.target, '4.0.0', sample_path)
-
- def test_copy_from_zipfile(self):
- copy_modules(['zippedmod2','zippedpkg2'],
- self.target, running_python, sample_path)
- # assert_is_file(pjoin(self.target, 'zippedmod.py'))
- # assert_is_dir(pjoin(self.target, 'zippedpkg'))
- assert_is_file(pjoin(self.target, 'zippedmod2.py'))
- assert_is_dir(pjoin(self.target, 'zippedpkg2'))
-
- def test_module_not_found(self):
- with self.assertRaises(ImportError):
- copy_modules(['nonexistant'], self.target, '3.3.5', sample_path)
|