Sfoglia il codice sorgente

Use testpath for filesystem assertions

Thomas Kluyver 6 anni fa
parent
commit
07702cb8b4

+ 3 - 8
nsist/tests/test_commands.py

@@ -1,21 +1,16 @@
 import io
-
-try:
-    from pathlib import Path
-except ImportError:
-    from pathlib2 import Path  # Backport
+from testpath import assert_isfile
 
 from nsist import commands, _rewrite_shebangs
-from .utils import assert_is_file
 
 cmds = {'acommand': {'entry_point': 'somemod:somefunc',
                      'extra_preamble': io.StringIO(u'import extra')}}
 
 def test_prepare_bin_dir(tmpdir):
     commands.prepare_bin_directory(tmpdir, cmds)
-    assert_is_file(str(tmpdir / 'acommand.exe'))
+    assert_isfile(str(tmpdir / 'acommand.exe'))
     script_file = tmpdir / 'acommand-script.py'
-    assert_is_file(str(script_file))
+    assert_isfile(str(script_file))
 
     with script_file.open() as f:
         script_contents = f.read()

+ 10 - 9
nsist/tests/test_copymodules.py

@@ -2,9 +2,10 @@ import os
 import sys
 
 import pytest
+from testpath import assert_isfile, assert_isdir
 
 from nsist.copymodules import copy_modules, ExtensionModuleMismatch
-from .utils import assert_is_file, assert_is_dir, test_dir, skip_on_windows, only_on_windows
+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])
@@ -18,8 +19,8 @@ sample_path = [pjoin(test_dir, 'sample_pkgs'),
 def test_copy_plain(tmpdir):
     tmpdir = str(tmpdir)
     copy_modules(['plainmod', 'plainpkg'], tmpdir, '3.3.5', sample_path)
-    assert_is_file(pjoin(tmpdir, 'plainmod.py'))
-    assert_is_dir(pjoin(tmpdir, 'plainpkg'))
+    assert_isfile(pjoin(tmpdir, 'plainmod.py'))
+    assert_isdir(pjoin(tmpdir, 'plainpkg'))
 
 @skip_on_windows
 def test_copy_wrong_platform(tmpdir):
@@ -34,8 +35,8 @@ def test_copy_wrong_platform(tmpdir):
 def test_copy_windows(tmpdir):
     tmpdir = str(tmpdir)
     copy_modules(['win_extmod', 'win_extpkg'], tmpdir, running_python, sample_path)
-    assert_is_file(pjoin(tmpdir, 'win_extmod.pyd'))
-    assert_is_dir(pjoin(tmpdir, 'win_extpkg'))
+    assert_isfile(pjoin(tmpdir, 'win_extmod.pyd'))
+    assert_isdir(pjoin(tmpdir, 'win_extpkg'))
 
 @only_on_windows
 def test_copy_wrong_pyversion(tmpdir):
@@ -50,10 +51,10 @@ def test_copy_from_zipfile(tmpdir):
     tmpdir = str(tmpdir)
     copy_modules(['zippedmod2', 'zippedpkg2'],
                  tmpdir, running_python, sample_path)
-#        assert_is_file(pjoin(tmpdir, 'zippedmod.py'))
-#        assert_is_dir(pjoin(tmpdir, 'zippedpkg'))
-    assert_is_file(pjoin(tmpdir, 'zippedmod2.py'))
-    assert_is_dir(pjoin(tmpdir, 'zippedpkg2'))
+#        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)

+ 3 - 3
nsist/tests/test_installerbuilder.py

@@ -1,9 +1,9 @@
 import io
-
 from os.path import join as pjoin
+from testpath import assert_isfile
 
 from nsist import InstallerBuilder, DEFAULT_ICON
-from .utils import assert_is_file, test_dir
+from .utils import test_dir
 
 
 sample_preamble = pjoin(test_dir, u'sample_preamble.py')
@@ -18,7 +18,7 @@ def test_prepare_shortcuts(tmpdir):
     ib.prepare_shortcuts()
 
     scfile = pjoin(tmpdir, 'sc1.launch.pyw')
-    assert_is_file(scfile)
+    assert_isfile(scfile)
 
     with io.open(scfile, 'r', encoding='utf-8') as f:
         contents = f.read()

+ 4 - 4
nsist/tests/test_local_wheels.py

@@ -4,9 +4,9 @@ import platform
 import subprocess
 
 import pytest
+from testpath import assert_isfile, assert_isdir
 
 from nsist.pypi import fetch_pypi_wheels
-from .utils import assert_is_dir, assert_is_file
 
 # To exclude tests requiring network on an unplugged machine, use: pytest -m "not network"
 
@@ -19,10 +19,10 @@ def test_matching_one_pattern(tmpdir):
 
     fetch_pypi_wheels([], [os.path.join(td1, '*.whl')], td2, platform.python_version(), 64)
 
-    assert_is_dir(os.path.join(td2, 'requests'))
-    assert_is_file(os.path.join(td2, 'requests-2.19.1.dist-info', 'METADATA'))
+    assert_isdir(os.path.join(td2, 'requests'))
+    assert_isfile(os.path.join(td2, 'requests-2.19.1.dist-info', 'METADATA'))
 
-    assert_is_dir(os.path.join(td2, 'urllib3'))
+    assert_isdir(os.path.join(td2, 'urllib3'))
     assert glob.glob(os.path.join(td2, 'urllib3*.dist-info'))
 
 @pytest.mark.network

+ 6 - 6
nsist/tests/test_pypi.py

@@ -1,11 +1,11 @@
 from os.path import join as pjoin
 from pathlib import Path
 import pytest
+from testpath import assert_isfile
 
 from nsist.pypi import (
     WheelLocator, extract_wheel, CachedRelease, merge_dir_to, NoWheelError,
 )
-from .utils import assert_is_file
 
 # To exclude tests requiring network on an unplugged machine, use: pytest -m "not network"
 
@@ -14,11 +14,11 @@ def test_download(tmpdir):
     tmpdir = str(tmpdir)
     wd = WheelLocator("astsearch==0.1.2", "3.5.1", 64)
     wheel = wd.fetch()
-    assert_is_file(str(wheel))
+    assert_isfile(wheel)
 
     extract_wheel(wheel, target_dir=tmpdir)
-    assert_is_file(pjoin(tmpdir, 'astsearch.py'))
-    assert_is_file(pjoin(tmpdir, 'astsearch-0.1.2.dist-info', 'METADATA'))
+    assert_isfile(pjoin(tmpdir, 'astsearch.py'))
+    assert_isfile(pjoin(tmpdir, 'astsearch-0.1.2.dist-info', 'METADATA'))
 
 @pytest.mark.network
 def test_bad_name():
@@ -127,8 +127,8 @@ def test_merge_dir_to(tmpdir):
 
     merge_dir_to(td2, td1)
 
-    assert_is_file(str(td1 / 'subdir' / 'foo'))
-    assert_is_file(str(td1 / 'subdir' / 'bar'))
+    assert_isfile(td1 / 'subdir' / 'foo')
+    assert_isfile(td1 / 'subdir' / 'bar')
     with (td1 / 'ab').open() as f:
         assert f.read() == u"alternate"
 

+ 0 - 7
nsist/tests/utils.py

@@ -5,13 +5,6 @@ from os.path import isfile, isdir, exists, dirname
 
 test_dir = dirname(__file__)
 
-def assert_is_file(path):
-    assert exists(path), "%s does not exist"
-    assert isfile(path), "%s exists but is not a directory."
-
-def assert_is_dir(path):
-    assert exists(path), "%s does not exist"
-    assert isdir(path), "%s exists but is not a directory."
 
 def skip_on_windows(function):
     """Decorator to skip a test on Windows."""

+ 3 - 1
pyproject.toml

@@ -17,7 +17,6 @@ requires = [
     "yarg",
     "win_cli_launchers"
 ]
-dev-requires = ["testpath"]
 classifiers = [
     "License :: OSI Approved :: MIT License",
     "Intended Audience :: Developers",
@@ -28,5 +27,8 @@ classifiers = [
     "Topic :: System :: Software Distribution",
 ]
 
+[tool.flit.metadata.requires-extra]
+test = ["testpath"]
+
 [tool.flit.scripts]
 pynsist = "nsist:main"

+ 1 - 0
tox.ini

@@ -9,6 +9,7 @@ deps = pytest
        win_cli_launchers
        jinja2
        yarg
+       testpath
 commands = pytest nsist/tests
 
 [testenv:notnetwork]