mirror of
https://github.com/nvbn/thefuck.git
synced 2025-01-18 20:11:17 +00:00
Add tests for the dirty_unzip
rule
This commit is contained in:
parent
4e7eceaa3a
commit
1146ab654c
45
tests/rules/test_dirty_unzip.py
Normal file
45
tests/rules/test_dirty_unzip.py
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
import os
|
||||||
|
import pytest
|
||||||
|
import zipfile
|
||||||
|
from thefuck.rules.dirty_unzip import match, get_new_command, side_effect
|
||||||
|
from tests.utils import Command
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def zip_error(tmpdir):
|
||||||
|
path = os.path.join(str(tmpdir), 'foo.zip')
|
||||||
|
|
||||||
|
def reset(path):
|
||||||
|
with zipfile.ZipFile(path, 'w') as archive:
|
||||||
|
archive.writestr('a', '1')
|
||||||
|
archive.writestr('b', '2')
|
||||||
|
archive.writestr('c', '3')
|
||||||
|
|
||||||
|
archive.extractall()
|
||||||
|
|
||||||
|
os.chdir(str(tmpdir))
|
||||||
|
reset(path)
|
||||||
|
|
||||||
|
assert(set(os.listdir('.')) == {'foo.zip', 'a', 'b', 'c'})
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('script', [
|
||||||
|
'unzip foo',
|
||||||
|
'unzip foo.zip'])
|
||||||
|
def test_match(zip_error, script):
|
||||||
|
assert match(Command(script=script), None)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('script', [
|
||||||
|
'unzip foo',
|
||||||
|
'unzip foo.zip'])
|
||||||
|
def test_side_effect(zip_error, script):
|
||||||
|
side_effect(Command(script=script), None)
|
||||||
|
assert(os.listdir('.') == ['foo.zip'])
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('script,fixed', [
|
||||||
|
('unzip foo', 'unzip foo -d foo'),
|
||||||
|
('unzip foo.zip', 'unzip foo.zip -d foo')])
|
||||||
|
def test_get_new_command(zip_error, script, fixed):
|
||||||
|
assert get_new_command(Command(script=script), None) == fixed
|
Loading…
x
Reference in New Issue
Block a user