mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-04 12:16:53 +00:00
Fix hook test on Windows
This test was failing on Windows, for several reasons. Number one, the paths for the hook test were hard-coded with forward slashes as path separators. I replaced those with calls to os.path.join. Number two, the drive letter was getting in the way of the path manipulation. On Windows, I'm using os.path.splitdrive to fix that.
This commit is contained in:
parent
c51702e9f0
commit
02308dab2a
2 changed files with 27 additions and 6 deletions
|
|
@ -21,3 +21,4 @@ Contributors (by order of appearance) :
|
|||
- Florent Xicluna
|
||||
- Austin Morton
|
||||
- Michael McNeil Forbes
|
||||
- Christian Long
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ except ImportError:
|
|||
import mock
|
||||
|
||||
import flake8.hooks
|
||||
from flake8.util import is_windows
|
||||
|
||||
|
||||
def excluded(filename):
|
||||
|
|
@ -15,24 +16,43 @@ def excluded(filename):
|
|||
|
||||
|
||||
class TestGitHook(unittest.TestCase):
|
||||
if is_windows:
|
||||
current_drive, ignore_tail = os.path.splitdrive(os.getcwd())
|
||||
fake_path_at_root_of_filesystem = os.path.join(current_drive,
|
||||
os.path.sep,
|
||||
'fake',
|
||||
'tmp')
|
||||
else:
|
||||
fake_path_at_root_of_filesystem = os.path.join(os.path.sep,
|
||||
'fake',
|
||||
'tmp')
|
||||
|
||||
@mock.patch('os.makedirs')
|
||||
@mock.patch('flake8.hooks.open', create=True)
|
||||
@mock.patch('shutil.rmtree')
|
||||
@mock.patch('tempfile.mkdtemp', return_value='/fake/tmp')
|
||||
@mock.patch('tempfile.mkdtemp',
|
||||
return_value=fake_path_at_root_of_filesystem)
|
||||
@mock.patch('flake8.hooks.run',
|
||||
return_value=(None, ['foo/afile.py', 'foo/bfile.py'], None))
|
||||
return_value=(None,
|
||||
[os.path.join('foo', 'afile.py'),
|
||||
os.path.join('foo', 'bfile.py')],
|
||||
None))
|
||||
@mock.patch('flake8.hooks.get_style_guide')
|
||||
def test_prepends_tmp_directory_to_exclude(self, get_style_guide, run,
|
||||
*args):
|
||||
style_guide = get_style_guide.return_value = mock.Mock()
|
||||
style_guide.options.exclude = ['foo/afile.py']
|
||||
style_guide.options.filename = ['foo/*']
|
||||
style_guide.options.exclude = [os.path.join('foo', 'afile.py')]
|
||||
style_guide.options.filename = [os.path.join('foo', '*')]
|
||||
style_guide.excluded = excluded
|
||||
|
||||
flake8.hooks.git_hook()
|
||||
|
||||
dirname, filename = os.path.split(os.path.abspath('foo/bfile.py'))
|
||||
tmpdir = os.path.join('/fake/tmp', dirname[1:])
|
||||
dirname, filename = os.path.split(
|
||||
os.path.abspath(os.path.join('foo', 'bfile.py')))
|
||||
if is_windows:
|
||||
ignore_drive, dirname = os.path.splitdrive(dirname)
|
||||
tmpdir = os.path.join(self.fake_path_at_root_of_filesystem,
|
||||
dirname[1:])
|
||||
tmpfile = os.path.join(tmpdir, 'bfile.py')
|
||||
style_guide.check_files.assert_called_once_with([tmpfile])
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue