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+}