@@ -19,20 +19,57 @@ setUp () {
1919 echo " #!/bin/sh" > " $WORKON_HOME /preactivate"
2020 echo " #!/bin/sh" > " $WORKON_HOME /postactivate"
2121 rm -f " $TMPDIR /catch_output"
22+ cd " $WORKON_HOME "
2223}
2324
2425test_associate () {
25- project=" /dev/null"
26- env=" env1"
26+ n=1
27+ project=" $WORKON_HOME /project$n "
28+ mkdir " $project "
29+ env=" env$n "
2730 ptrfile=" $WORKON_HOME /$env /.project"
2831 mkvirtualenv -a " $project " " $env " > /dev/null 2>&1
2932 assertTrue " .project not found" " [ -f $ptrfile ]"
3033 assertEquals " $ptrfile contains wrong content" " $project " " $( cat $ptrfile ) "
3134}
3235
36+ test_associate_relative_path () {
37+ n=2
38+ project=" project$n "
39+ mkdir " $project "
40+ env=" env$n "
41+ ptrfile=" $WORKON_HOME /$env /.project"
42+ mkvirtualenv -a " $project " " $env " > /dev/null 2>&1
43+ assertTrue " .project not found" " [ -f $ptrfile ]"
44+ assertEquals " $ptrfile contains wrong content" " $WORKON_HOME /$project " " $( cat $ptrfile ) "
45+ }
46+
47+ test_associate_not_a_directory () {
48+ n=3
49+ project=" project$n "
50+ touch " $project "
51+ env=" env$n "
52+ ptrfile=" $WORKON_HOME /$env /.project"
53+ mkvirtualenv -a " $project " " $env " > /dev/null 2>&1
54+ RC=$?
55+ assertTrue " mkvirtualenv should have failed" " [ $RC -ne 0 ]"
56+ }
57+
58+ test_associate_does_not_exist () {
59+ n=4
60+ project=" project$n "
61+ env=" env$n "
62+ ptrfile=" $WORKON_HOME /$env /.project"
63+ mkvirtualenv -a " $project " " $env " > /dev/null 2>&1
64+ RC=$?
65+ assertTrue " mkvirtualenv should have failed" " [ $RC -ne 0 ]"
66+ }
67+
3368test_preactivate () {
34- project=" /dev/null"
35- env=" env2"
69+ n=5
70+ project=" project$n "
71+ mkdir " $project "
72+ env=" env$n "
3673 ptrfile=" $WORKON_HOME /$env /.project"
3774 cat - > " $WORKON_HOME /preactivate" << EOF
3875#!/bin/sh
4986}
5087
5188test_postactivate () {
52- project=" /dev/null"
53- env=" env3"
89+ n=6
90+ project=" project$n "
91+ mkdir " $project "
92+ env=" env$n "
5493 ptrfile=" $WORKON_HOME /$env /.project"
5594cat - > " $WORKON_HOME /postactivate" << EOF
5695#!/bin/sh
66105 assertSame " postactivate did not find file" " exists" " $( cat $TMPDIR /catch_output) "
67106}
68107
108+ test_associate_relative_with_dots () {
109+ cd " $WORKON_HOME "
110+ n=7
111+ project=" project$n "
112+ mkdir $project
113+ mkdir $project .sibling
114+ cd $project .sibling
115+ # Change the reference to a sibling directory
116+ project=" ../$project "
117+ env=" env$n "
118+ ptrfile=" $WORKON_HOME /$env /.project"
119+ mkvirtualenv -a " $project " " $env " > /dev/null 2>&1
120+ assertTrue " .project not found" " [ -f $ptrfile ]"
121+ assertEquals " $ptrfile contains wrong content" " $WORKON_HOME /project$n " " $( cat $ptrfile ) "
122+ }
123+
69124. " $test_dir /shunit2"
0 commit comments