diff options
-rw-r--r-- | git/index/fun.py | 6 | ||||
-rw-r--r-- | git/test/lib/helper.py | 10 | ||||
-rw-r--r-- | git/test/test_base.py | 9 | ||||
-rw-r--r-- | tox.ini | 4 |
4 files changed, 21 insertions, 8 deletions
diff --git a/git/index/fun.py b/git/index/fun.py index c2fe912e..c1188ccb 100644 --- a/git/index/fun.py +++ b/git/index/fun.py @@ -10,8 +10,6 @@ from stat import ( S_IFREG, ) -S_IFGITLINK = S_IFLNK | S_IFDIR # a submodule - from io import BytesIO import os import subprocess @@ -33,7 +31,6 @@ from .typ import ( CE_NAMEMASK, CE_STAGESHIFT ) -CE_NAMEMASK_INV = ~CE_NAMEMASK from .util import ( pack, @@ -47,6 +44,9 @@ from git.compat import ( force_text ) +S_IFGITLINK = S_IFLNK | S_IFDIR # a submodule +CE_NAMEMASK_INV = ~CE_NAMEMASK + __all__ = ('write_cache', 'read_cache', 'write_tree_from_cache', 'entry_key', 'stat_mode_to_index_mode', 'S_IFGITLINK', 'run_commit_hook', 'hook_path') diff --git a/git/test/lib/helper.py b/git/test/lib/helper.py index 8300f272..31bee78f 100644 --- a/git/test/lib/helper.py +++ b/git/test/lib/helper.py @@ -15,7 +15,9 @@ import io from git import Repo, Remote, GitCommandError, Git from git.compat import string_types -GIT_REPO = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) +osp = os.path.dirname + +GIT_REPO = os.environ.get("GIT_PYTHON_TEST_GIT_REPO_BASE", osp(osp(osp(osp(__file__))))) __all__ = ( 'fixture_path', 'fixture', 'absolute_project_path', 'StringProcessAdapter', @@ -26,7 +28,7 @@ __all__ = ( def fixture_path(name): - test_dir = os.path.dirname(os.path.dirname(__file__)) + test_dir = osp(osp(__file__)) return os.path.join(test_dir, "fixtures", name) @@ -35,7 +37,7 @@ def fixture(name): def absolute_project_path(): - return os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")) + return os.path.abspath(os.path.join(osp(__file__), "..", "..")) #} END routines @@ -195,7 +197,7 @@ def with_rw_and_rw_remote_repo(working_tree_ref): d_remote.config_writer.set('url', remote_repo_url) - temp_dir = os.path.dirname(_mktemp()) + temp_dir = osp(_mktemp()) # On windows, this will fail ... we deal with failures anyway and default to telling the user to do it try: gd = Git().daemon(temp_dir, enable='receive-pack', as_process=True) diff --git a/git/test/test_base.py b/git/test/test_base.py index 91b9d005..94379ca3 100644 --- a/git/test/test_base.py +++ b/git/test/test_base.py @@ -5,6 +5,7 @@ # This module is part of GitPython and is released under # the BSD License: http://www.opensource.org/licenses/bsd-license.php import os +import sys import tempfile import git.objects.base as base @@ -116,6 +117,14 @@ class TestBase(TestBase): filename = u"שלום.txt" file_path = os.path.join(rw_repo.working_dir, filename) + + # verify first that we could encode file name in this environment + try: + file_path.encode(sys.getfilesystemencoding()) + except UnicodeEncodeError: + from nose import SkipTest + raise SkipTest("Environment doesn't support unicode filenames") + open(file_path, "wb").write(b'something') if os.name == 'nt': @@ -18,7 +18,9 @@ commands = {posargs} [flake8] #show-source = True # E265 = comment blocks like @{ section, which it can't handle +# E266 = too many leading '#' for block comment +# E731 = do not assign a lambda expression, use a def # W293 = Blank line contains whitespace -ignore = E265,W293 +ignore = E265,W293,E266,E731 max-line-length = 120 exclude = .tox,.venv,build,dist,doc,git/ext/ |