diff --git a/bin/steps/pipenv-python-version b/bin/steps/pipenv-python-version index e49813a328ab24b955209973d20bea0a7a5c7c6a..a279da92deff1c7357098bbd5847562cce481bc5 100755 --- a/bin/steps/pipenv-python-version +++ b/bin/steps/pipenv-python-version @@ -1,10 +1,11 @@ # Detect Python-version with Pipenv. -if [[ -f $BUILD_DIR/Pipfile.lock ]]; then +if [[ -f $BUILD_DIR/Pipfile ]]; then if [[ ! -f $BUILD_DIR/runtime.txt ]]; then if [[ ! -f Pipfile.lock ]]; then - pipenv lock 2> /dev/null + puts-step "Pipfile.lock not found, creating..." + /app/.heroku/python/bin/pipenv lock 2> /dev/null fi set +e diff --git a/bin/steps/python b/bin/steps/python index b88631b4718c50c5b2b190f431fabdcf59407815..141ea89c0a40eeaa627c7c45d54747c676bbaf55 100755 --- a/bin/steps/python +++ b/bin/steps/python @@ -39,7 +39,9 @@ if [ ! "$SKIP_INSTALL" ]; then fi # If Pip isn't up to date: -if [ "$FRESH_PYTHON" ] || [[ ! $(pip --version) == *$PIP_VERSION* ]]; then +if [ "$FRESH_PYTHON" ] || pip list -o --format=legacy --disable-pip-version-check | grep '^pip' 2>&1 /dev/null; then + + # TODO: automatically detect pip is out of date with 'pip list -o --format=legacy --disable-pip-version-check | grep '^pip'' WORKING_DIR=$(pwd) TMPTARDIR=$(mktemp -d) diff --git a/test/fixtures/nltk/nltk.txt b/test/fixtures/nltk/nltk.txt new file mode 100644 index 0000000000000000000000000000000000000000..c4f6bba89dc5bb908437d12b8b0727ae4e6ca5c1 --- /dev/null +++ b/test/fixtures/nltk/nltk.txt @@ -0,0 +1 @@ +wordnet \ No newline at end of file diff --git a/test/fixtures/nltk/requirements.txt b/test/fixtures/nltk/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..6fa2de44417ce85838334618e6430c5e1abc6a5d --- /dev/null +++ b/test/fixtures/nltk/requirements.txt @@ -0,0 +1 @@ +nltk \ No newline at end of file diff --git a/test/fixtures/pipenv-version/Pipfile.lock b/test/fixtures/pipenv-version/Pipfile.lock new file mode 100644 index 0000000000000000000000000000000000000000..15f40775d714c632441a5f8ce8e0876098618f35 --- /dev/null +++ b/test/fixtures/pipenv-version/Pipfile.lock @@ -0,0 +1,23 @@ +{ + "default": { + "requests": { + "version": "==2.13.0", + "hash": "sha256:1a720e8862a41aa22e339373b526f508ef0c8988baf48b84d3fc891a8e237efb" + } + }, + "develop": {}, + "_meta": { + "sources": [ + { + "url": "https://pypi.python.org/simple", + "verify_ssl": true + } + ], + "requires": { + "python_version": "3.6" + }, + "hash": { + "sha256": "5866990104fc8f27d13cdf01abc2a32c553129e03f666316cacc5b42d3e0884e" + } + } +} \ No newline at end of file diff --git a/test/run b/test/run index bdb52ec7cc5d6e5e7f23af4529f032465f8925bd..bc1f2e14f6827fa6652ec62f9332a95d506438ce 100755 --- a/test/run +++ b/test/run @@ -1,11 +1,28 @@ #!/usr/bin/env bash + + testNoRequirements() { compile "no-requirements" assertCapturedError } +testNLTK() { + compile "nltk" + assertCaptured "wordnet" + assertCapturedSuccess + +} + + +testPipenvVersion() { + compile "pipenv-version" + assertCaptured "3.6.0" + assertCapturedSuccess +} + + testPipenv() { compile "pipenv" assertCapturedSuccess