Skip to content

Commit 0359a7c

Browse files
committed
Added "toggleglobalsitepackages" command.
Added tests for the new command.
1 parent 7a4a540 commit 0359a7c

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/bin/sh
2+
3+
#set -x
4+
5+
test_dir=$(cd $(dirname $0) && pwd)
6+
7+
export WORKON_HOME="$(echo ${TMPDIR:-/tmp}/WORKON_HOME | sed 's|//|/|g')"
8+
9+
oneTimeSetUp() {
10+
rm -rf "$WORKON_HOME"
11+
mkdir -p "$WORKON_HOME"
12+
source "$test_dir/../virtualenvwrapper.sh"
13+
}
14+
15+
oneTimeTearDown() {
16+
rm -rf "$WORKON_HOME"
17+
}
18+
19+
setUp () {
20+
echo
21+
rm -f "$test_dir/catch_output"
22+
mkvirtualenv --no-site-packages "globaltest"
23+
}
24+
25+
tearDown () {
26+
deactivate
27+
rmvirtualenv "globaltest"
28+
}
29+
30+
test_toggleglobalsitepackages () {
31+
ngsp_file="`virtualenvwrapper_get_site_packages_dir`/../no-global-site-packages.txt"
32+
assertTrue "$ngsp_file does not exist" "[ -f "$ngsp_file" ]"
33+
toggleglobalsitepackages -q
34+
assertFalse "$ngsp_file exists" "[ -f "$ngsp_file" ]"
35+
toggleglobalsitepackages -q
36+
assertTrue "$ngsp_file does not exist" "[ -f "$ngsp_file" ]"
37+
}
38+
39+
test_toggleglobalsitepackages_quiet () {
40+
assertEquals "Command output is not correct" "Enabled global site-packages" "`toggleglobalsitepackages`"
41+
assertEquals "Command output is not correct" "Disabled global site-packages" "`toggleglobalsitepackages`"
42+
43+
assertEquals "Command output is not correct" "" "`toggleglobalsitepackages -q`"
44+
assertEquals "Command output is not correct" "" "`toggleglobalsitepackages -q`"
45+
}
46+
47+
. "$test_dir/shunit2"

virtualenvwrapper.sh

100644100755
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,21 @@ lssitepackages () {
508508
fi
509509
}
510510

511+
# Toggles the currently-active virtualenv between having and not having
512+
# access to the global site-packages.
513+
toggleglobalsitepackages () {
514+
virtualenvwrapper_verify_workon_home || return 1
515+
virtualenvwrapper_verify_active_environment || return 1
516+
typeset no_global_site_packages_file="`virtualenvwrapper_get_site_packages_dir`/../no-global-site-packages.txt"
517+
if [ -f $no_global_site_packages_file ]; then
518+
rm $no_global_site_packages_file
519+
[ "$1" = "-q" ] || echo "Enabled global site-packages"
520+
else
521+
touch $no_global_site_packages_file
522+
[ "$1" = "-q" ] || echo "Disabled global site-packages"
523+
fi
524+
}
525+
511526
# Duplicate the named virtualenv to make a new one.
512527
cpvirtualenv() {
513528
typeset env_name="$1"

0 commit comments

Comments
 (0)