1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import os
- import sys
- import pytest
- from testpath import assert_isfile, assert_isdir
- from nsist.copymodules import copy_modules, ExtensionModuleMismatch
- from .utils import test_dir, skip_on_windows, only_on_windows
- pjoin = os.path.join
- 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'),
- ]
- def test_copy_plain(tmpdir):
- tmpdir = str(tmpdir)
- copy_modules(['plainmod', 'plainpkg'], tmpdir, '3.3.5', sample_path)
- assert_isfile(pjoin(tmpdir, 'plainmod.py'))
- assert_isdir(pjoin(tmpdir, 'plainpkg'))
- @skip_on_windows
- def test_copy_wrong_platform(tmpdir):
- tmpdir = str(tmpdir)
- with pytest.raises(ExtensionModuleMismatch, match="will not be usable on Windows"):
- copy_modules(['unix_extmod'], tmpdir, '3.3.5', sample_path)
- with pytest.raises(ExtensionModuleMismatch, match="will not be usable on Windows"):
- copy_modules(['unix_extpkg'], tmpdir, '3.3.5', sample_path)
- @only_on_windows
- def test_copy_windows(tmpdir):
- tmpdir = str(tmpdir)
- copy_modules(['win_extmod', 'win_extpkg'], tmpdir, running_python, sample_path)
- assert_isfile(pjoin(tmpdir, 'win_extmod.pyd'))
- assert_isdir(pjoin(tmpdir, 'win_extpkg'))
- @only_on_windows
- def test_copy_wrong_pyversion(tmpdir):
- tmpdir = str(tmpdir)
- with pytest.raises(ExtensionModuleMismatch, match="on Python 4"):
- copy_modules(['win_extpkg'], tmpdir, '4.0.0', sample_path)
- with pytest.raises(ExtensionModuleMismatch, match="on Python 4"):
- copy_modules(['win_extmod'], tmpdir, '4.0.0', sample_path)
- def test_copy_from_zipfile(tmpdir):
- tmpdir = str(tmpdir)
- copy_modules(['zippedmod2', 'zippedpkg2'],
- tmpdir, running_python, sample_path)
- # assert_isfile(pjoin(tmpdir, 'zippedmod.py'))
- # assert_isdir(pjoin(tmpdir, 'zippedpkg'))
- assert_isfile(pjoin(tmpdir, 'zippedmod2.py'))
- assert_isdir(pjoin(tmpdir, 'zippedpkg2'))
- def test_module_not_found(tmpdir):
- tmpdir = str(tmpdir)
- with pytest.raises(ImportError):
- copy_modules(['nonexistant'], tmpdir, '3.3.5', sample_path)
|