From 7888315196a5e97549e93d772396e85f34f65bc5 Mon Sep 17 00:00:00 2001 From: nvbn Date: Mon, 20 Apr 2015 22:00:37 +0200 Subject: [PATCH] #52 Use `cp -a`, add tests --- tests/rules/test_cp_omitting_directory.py | 14 ++++++++++++++ thefuck/rules/cp_omitting_directory.py | 12 ++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 tests/rules/test_cp_omitting_directory.py diff --git a/tests/rules/test_cp_omitting_directory.py b/tests/rules/test_cp_omitting_directory.py new file mode 100644 index 00000000..0f4a3bf8 --- /dev/null +++ b/tests/rules/test_cp_omitting_directory.py @@ -0,0 +1,14 @@ +from mock import Mock +from thefuck.rules.cp_omitting_directory import match, get_new_command + + +def test_match(): + assert match(Mock(script='cp dir', stderr="cp: omitting directory 'dir'"), + None) + assert not match(Mock(script='some dir', + stderr="cp: omitting directory 'dir'"), None) + assert not match(Mock(script='cp dir', stderr=""), None) + + +def test_get_new_command(): + assert get_new_command(Mock(script='cp dir'), None) == 'cp -a dir' diff --git a/thefuck/rules/cp_omitting_directory.py b/thefuck/rules/cp_omitting_directory.py index 9e5b975c..14e84c9c 100644 --- a/thefuck/rules/cp_omitting_directory.py +++ b/thefuck/rules/cp_omitting_directory.py @@ -1,10 +1,10 @@ +import re + + def match(command, settings): - if 'cp: omitting directory' in command.stderr.lower(): - return True - return False + return command.script.startswith('cp ') \ + and 'cp: omitting directory' in command.stderr.lower() def get_new_command(command, settings): - return command.script.replace('cp', 'cp -r') - - + return re.sub(r'^cp', 'cp -a', command.script)