mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-12 15:44:17 +00:00
Merge branch 'fix_hook_test' into 'master'
Fix hook test Fix the git hook test on Windows. Closes #43 See merge request !24
This commit is contained in:
commit
e8460dfe51
2 changed files with 25 additions and 6 deletions
|
|
@ -21,3 +21,4 @@ Contributors (by order of appearance) :
|
||||||
- Florent Xicluna
|
- Florent Xicluna
|
||||||
- Austin Morton
|
- Austin Morton
|
||||||
- Michael McNeil Forbes
|
- Michael McNeil Forbes
|
||||||
|
- Christian Long
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ except ImportError:
|
||||||
import mock
|
import mock
|
||||||
|
|
||||||
import flake8.hooks
|
import flake8.hooks
|
||||||
|
from flake8.util import is_windows
|
||||||
|
|
||||||
|
|
||||||
def excluded(filename):
|
def excluded(filename):
|
||||||
|
|
@ -15,24 +16,41 @@ def excluded(filename):
|
||||||
|
|
||||||
|
|
||||||
class TestGitHook(unittest.TestCase):
|
class TestGitHook(unittest.TestCase):
|
||||||
|
if is_windows:
|
||||||
|
# On Windows, absolute paths start with a drive letter, for example C:
|
||||||
|
# Here we build a fake absolute path starting with the current drive
|
||||||
|
# letter, for example C:\fake\temp
|
||||||
|
current_drive, ignore_tail = os.path.splitdrive(os.getcwd())
|
||||||
|
fake_abs_path = os.path.join(current_drive, os.path.sep, 'fake', 'tmp')
|
||||||
|
else:
|
||||||
|
fake_abs_path = os.path.join(os.path.sep, 'fake', 'tmp')
|
||||||
|
|
||||||
@mock.patch('os.makedirs')
|
@mock.patch('os.makedirs')
|
||||||
@mock.patch('flake8.hooks.open', create=True)
|
@mock.patch('flake8.hooks.open', create=True)
|
||||||
@mock.patch('shutil.rmtree')
|
@mock.patch('shutil.rmtree')
|
||||||
@mock.patch('tempfile.mkdtemp', return_value='/fake/tmp')
|
@mock.patch('tempfile.mkdtemp', return_value=fake_abs_path)
|
||||||
@mock.patch('flake8.hooks.run',
|
@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')
|
@mock.patch('flake8.hooks.get_style_guide')
|
||||||
def test_prepends_tmp_directory_to_exclude(self, get_style_guide, run,
|
def test_prepends_tmp_directory_to_exclude(self, get_style_guide, run,
|
||||||
*args):
|
*args):
|
||||||
style_guide = get_style_guide.return_value = mock.Mock()
|
style_guide = get_style_guide.return_value = mock.Mock()
|
||||||
style_guide.options.exclude = ['foo/afile.py']
|
style_guide.options.exclude = [os.path.join('foo', 'afile.py')]
|
||||||
style_guide.options.filename = ['foo/*']
|
style_guide.options.filename = [os.path.join('foo', '*')]
|
||||||
style_guide.excluded = excluded
|
style_guide.excluded = excluded
|
||||||
|
|
||||||
flake8.hooks.git_hook()
|
flake8.hooks.git_hook()
|
||||||
|
|
||||||
dirname, filename = os.path.split(os.path.abspath('foo/bfile.py'))
|
dirname, filename = os.path.split(
|
||||||
tmpdir = os.path.join('/fake/tmp', dirname[1:])
|
os.path.abspath(os.path.join('foo', 'bfile.py')))
|
||||||
|
if is_windows:
|
||||||
|
# In Windows, the absolute path in dirname will start with a drive
|
||||||
|
# letter. Here, we discad the drive letter.
|
||||||
|
ignore_drive, dirname = os.path.splitdrive(dirname)
|
||||||
|
tmpdir = os.path.join(self.fake_abs_path, dirname[1:])
|
||||||
tmpfile = os.path.join(tmpdir, 'bfile.py')
|
tmpfile = os.path.join(tmpdir, 'bfile.py')
|
||||||
style_guide.check_files.assert_called_once_with([tmpfile])
|
style_guide.check_files.assert_called_once_with([tmpfile])
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue