diff --git a/misc/test_installed_version.sh b/misc/test_installed_version.sh index 537036015c78..7182c9556a12 100755 --- a/misc/test_installed_version.sh +++ b/misc/test_installed_version.sh @@ -7,26 +7,34 @@ # it annoying to test an installed version of mypy. If somebody has a # better way please let me know. +function abspath { + python3 -c "import os.path; print(os.path.abspath('$1'))" +} + TO_INSTALL="${1-.}" PYTHON="${2-python3}" VENV="$(mktemp -d -t mypy-test-venv.XXXXXXXXXX)" trap "rm -rf '$VENV'" EXIT -"$PYTHON" -m venv "$VENV" +"$PYTHON" -m virtualenv "$VENV" source "$VENV/bin/activate" -pip install -r test-requirements.txt +ROOT="$PWD" +TO_INSTALL="$(abspath "$TO_INSTALL")" + +# Change directory so we can't pick up any of the stuff in the root. +# We need to do this before installing things too because I was having +# the current mypy directory getting picked up as satisfying the +# requirement (argh!) +cd "$VENV" + +pip install -r "$ROOT/test-requirements.txt" pip install $TO_INSTALL # pytest looks for configuration files in the parent directories of # where the tests live. Since we are trying to run the tests from # their installed location, we copy those into the venv. Ew ew ew. -cp pytest.ini conftest.py "$VENV/" - -ROOT="$PWD" - -# Change directory so we can't pick up any of the stuff in the root -cd "$VENV" +cp "$ROOT/pytest.ini" "$ROOT/conftest.py" "$VENV/" # Find the directory that mypy tests were installed into MYPY_TEST_DIR="$(python3 -c 'import mypy.test; print(mypy.test.__path__[0])')"