Doug Hellmann avatar Doug Hellmann committed 05aff40 Merge

Merged in barberj/vew/fix_installing_requirements_after_cd (pull request #21)

Comments (0)

Files changed (2)

tests/test_expandpath.sh

+#!/bin/sh
+
+test_dir=$(cd $(dirname $0) && pwd)
+source "$test_dir/setup.sh"
+TMP_WORKON_HOME="$WORKON_HOME"
+
+oneTimeSetUp() {
+    source "$test_dir/../virtualenvwrapper.sh"
+    echo $PYTHONPATH
+}
+
+oneTimeTearDown() {
+    return 0
+}
+
+test_tilde() {
+    assertSame "$HOME" "$(virtualenvwrapper_expandpath ~)"
+}
+
+test_vars() {
+    assertSame "$HOME" "$(virtualenvwrapper_expandpath '$HOME')"
+}
+
+test_tilde_vars() {
+    assertSame "$HOME" "$(virtualenvwrapper_expandpath '~$USER')"
+}
+
+. "$test_dir/shunit2"

virtualenvwrapper.sh

     export VIRTUALENVWRAPPER_PROJECT_FILENAME=".project"
 fi
 
+function virtualenvwrapper_expandpath {
+        if [ "$1" = "" ]; then
+            return 1
+        else
+            "$VIRTUALENVWRAPPER_PYTHON" -c "import os,sys; sys.stdout.write(os.path.realpath(os.path.expanduser(os.path.expandvars(\"$1\")))+'\n')"
+            return 0
+        fi
+}
+
 function virtualenvwrapper_derive_workon_home {
     typeset workon_home_dir="$WORKON_HOME"
 
         # - Removing extra slashes (e.g., when TMPDIR ends in a slash)
         # - Expanding variables (e.g., $foo)
         # - Converting ~s to complete paths (e.g., ~/ to /home/brian/ and ~arthur to /home/arthur)
-        workon_home_dir=$("$VIRTUALENVWRAPPER_PYTHON" -c "import os,sys; sys.stdout.write(os.path.expandvars(os.path.expanduser(\"$workon_home_dir\"))+'\n')")
+        workon_home_dir=$(virtualenvwrapper_expandpath "$workon_home_dir")
     fi
 
     echo "$workon_home_dir"
                 packages="$packages ${in_args[$i]}";;
             -r)
                 i=$(( $i + 1 ));
-                requirements="${in_args[$i]}";;
+                requirements="${in_args[$i]}";
+                requirements=$(virtualenvwrapper_expandpath "$requirements");;
             *)
                 if [ ${#out_args} -gt 0 ]
                 then
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.