c8c5864513dc1f7f3541b71efc63a4aaa108bdd5

Author
Nick Cross <ncross@redhat.com>
Committer
Michael Aquilina <michaelaquilina@gmail.com>
Date

Message

Issue #65 Add ability to scan recursively for requirement files

Diff

 1diff --git a/autoswitch_virtualenv.plugin.zsh b/autoswitch_virtualenv.plugin.zsh
 2index 0ed093723537ad3773acec15ccaf6d015e6d5760..8b24626bd3b71f2c48aa74c87af3b00488b0c1c0 100644
 3--- a/autoswitch_virtualenv.plugin.zsh
 4+++ b/autoswitch_virtualenv.plugin.zsh
 5@@ -228,7 +228,7 @@ function install_requirements() {
 6     fi
 7 
 8     setopt nullglob
 9-    for requirements in *requirements.txt
10+    for requirements in **/*requirements.txt
11     do
12         printf "Found a ${PURPLE}%s${NORMAL} file. Install? [y/N]: " "$requirements"
13         read ans
14diff --git a/tests/test_install_requirements.txt b/tests/test_install_requirements.zunit
15rename from tests/test_install_requirements.txt
16rename to tests/test_install_requirements.zunit
17index 5ad700495bb58597646086c83d80a8b32b5d3d9e..a0368d14488252b55deb337bec3e0f9e777babeb 100644
18--- a/tests/test_install_requirements.txt
19+++ b/tests/test_install_requirements.zunit
20@@ -102,3 +102,26 @@
21     assert "$lines[1]" same_as "Found a \e[35msetup.py\e[0m file. Install dependencies? [y/N]: y"
22     assert "$lines[2]" same_as "pip install ."
23 }
24+
25+@test 'install_requirements - installs recursive *requirements.txt' {
26+    echo "django" > requirements.txt
27+    mkdir subdir
28+    echo "pytest" > subdir/dev-requirements.txt
29+
30+    # mock pip to make it testable
31+    function pip {
32+        echo "pip $@"
33+        cat "$3"
34+    }
35+
36+    run install_requirements
37+    echo "output is $output"
38+
39+    assert $status equals 0
40+    assert "$lines[1]" same_as "Found a \e[35mrequirements.txt\e[0m file. Install? [y/N]: y"
41+    assert "$lines[2]" same_as "pip install -r requirements.txt"
42+    assert "$lines[3]" same_as "django"
43+    assert "$lines[4]" same_as "Found a \e[35msubdir/dev-requirements.txt\e[0m file. Install? [y/N]: y"
44+    assert "$lines[5]" same_as "pip install -r subdir/dev-requirements.txt"
45+    assert "$lines[6]" same_as "pytest"
46+}