Commit Graph

886 Commits

Author SHA1 Message Date
Dương Quốc Khánh 640612d0d7 Issue 5273 constraints are not recognized (#5274)
* Add more test for get_constraints_from_deps
* Use pip's check_invalid_constraint_type.
2022-08-18 19:52:23 -04:00
Matt Davis e44d797ae1 Add unit test for this. 2022-08-13 21:19:19 +02:00
Matt Davis 6ad1c1c8f4 Mark these tests as flaky. 2022-08-13 08:46:41 -04:00
Dương Quốc Khánh e9dc3247dc Issue 4371 incorrect dependencies when install dev packages (#5234)
* Add test, ensure dev lock use default packages as constraints.

* Use default packages as constraints when locking develop packages.

* Add test, ensure installing dev-packages use default packages as constraints. (#4371) (#2987)

* Use default packages as constraints when installing provided dev packages.

* change vistir.path.normalize_path to pipenv.utils.shell.normalize_path

* Add function that get contraints from packages.

* Add test for get_constraints_from_deps function

* Use get_constraints_from_deps to get constraints

* Use @cached_property instead of @property

* Use standalone utility to write constraints file

* prepare_constraint_file use precomputed constraints.

* Add news fragment.
2022-08-13 05:17:09 -04:00
Matt Davis d8c88ef510 Remove code that is not required but may be causing the mac OS test failures. (#5241) 2022-08-12 20:14:38 -04:00
Matt Davis 078f28bd6c Try with version that has new setuptools available in pypi. 2022-08-07 22:53:26 +02:00
Matt Davis c6e0dd4ae7 Remove commented out line. 2022-08-07 22:53:26 +02:00
Matt Davis 374b670afb Remove other spots that did not use the internal pip version to exectue pipenv commands. 2022-08-07 22:53:26 +02:00
Matt Davis 66e1256018 Convert this test off pip-shims, it became flakey recently. 2022-08-07 00:06:20 +02:00
Matt Davis 84065c49ed test corrections. 2022-08-06 08:32:25 +02:00
Matt Davis 1daa4d5d8d Remove old way of generting requirements. 2022-08-06 08:32:25 +02:00
Oz N Tiram ca38db63db Use temp_environ in test for CUSTOM_VENV_NAME
This is so that PIPENV_CUSTOM_VENV_NAME does not leak to
other tests.
2022-08-04 10:56:48 +02:00
otherjake ec38ae1e81 Add unit test, create a section about venv names
in advanced docs.
2022-08-04 10:56:48 +02:00
Matt Davis e2e67caabd Remove another dead test. 2022-07-29 15:28:18 +02:00
Matt Davis 771cee564a Remove tests that are old and permenently skipped, remove OS skips that seem to not make sense. 2022-07-29 15:28:18 +02:00
Matt Davis cd5a9683be Rename notpip to pip. Vendor in pip-22.2.1 and latest requirementslib and vistir. 2022-07-28 11:58:10 +02:00
Oz N Tiram dbe6d45e89 Clean reference to delegator
We no longer vendor this package
2022-07-27 06:52:30 +02:00
Matt Davis 2b895ffb3f Support the NO_COLOR and deprecate PIPENV_COLORBLIND environment variables (#5185)
* Refactor to support the NO_COLOR argument and deprecate PIPENV_COLORBIND variable.

* Add news fragment.
2022-07-24 09:04:28 +02:00
Matt Davis 9200fe1635 Reenable these tests again on the Windows CI. (#5163)
* reenable these skipped tests on the Windows CI as they appear to be passing again.
2022-07-05 23:55:39 -04:00
Oz N Tiram b0d5e2e58b Add importlib-metadata explicitly on tests/pytest-pypi 2022-06-28 23:32:18 +02:00
ImreC 37b1fb422b Include markers issue #5092 (#5114)
* Include markers

* Change to marker flag and include test

* Flip markers flag to exclude by default

* Docs and newsfile

* Let default dependencies update dev dependencies
2022-06-25 13:23:04 +02:00
Till Grutschus e276239538 Fix formatter screwup 2022-06-21 14:29:05 +02:00
Till Grutschus bdc11b3148 Test requirements env var expansion 2022-06-21 14:29:05 +02:00
Oz N Tiram ec34097407 Fixes of `requirements` with git requirements (#5083)
Solved by using existing convert_deps_to_pip function.

Fix #5076.

Original implementation by @fraser-langton. This also
solves the export of packages with editable mode, as suggested
by @hoyaaaa (#5071).
2022-04-26 13:19:17 +02:00
Matt Davis 5b3c55d85d Fix install failures that silently pass (#5046)
* Check at the end of install if the failed dependency queue is empty or not and exit with error when there are still failed dependencies.

* Address PR feedback about crayons.

* Fix windows tests that fail because of showing the progress bar, but only local -- CI still breaks. 

* Skip these tests on the windows CI for now.   Created https://github.com/pypa/pipenv/issues/5064 to track
2022-04-20 21:52:53 -04:00
Oz N Tiram 2bf70b7416 Removed usage of fs_str from vistir (#5062)
* Removed usage of fs_str from vistir

  This function was all about compatability of py2-py3.3 versions.
  Later versions don't need it.

* Explicitly convert dict values to strings

* Add news fragment
2022-04-20 16:17:57 +02:00
Matt Davis 949ee95d67 More granular control over PIPENV_VENV_IN_PROJECT variable. (#5026)
* Allow PIPENV_VENV_IN_PROJECT to be read in as None, and ensure if it is set to False that it does not use .venv directory.

* refactor based on PR feedback and add news fragment.

* Review unit test coverage and add new tests.  Remove unneccesary bits from other tests.
2022-04-06 21:10:05 +02:00
ImreC 63ac0d03a9 Implements requirements command as per #4959 (#5013)
* Implements reqs command

* Add news document

* Process comments

* Rename newsfile

* Adds --dev-only and --hash args

* Linting fixes

Co-authored-by: Imre Persoonlijk <imre1@pop-os.localdomain>
2022-04-05 14:13:33 +02:00
Matt Davis 3387881a6d Code reorg utils into utils module reduces complexity (#4990)
* Split apart the massive utils.py into a utils module
2022-03-29 20:27:33 -04:00
Matt Davis 0788b0122e Refactor test into a version that also check quiet mode, move to correct test file.
Add test cases for pip freeze has expected output
Add test for the package index restrictions.
2022-03-26 10:05:56 -04:00
Matt Davis 7f05d65eed Restore this message as stderr because it affects requirements.txt generation (#5005)
* Restore this message as stderr because it affects requirements.txt generation.

* Only load the dotenv file when it's a real file, and thus only print the message when it's present.

* Add news fragment.
2022-03-23 15:22:42 +01:00
Matt Davis b60fa7f5e6 Fix the assumption that all sources are named. (#5004)
* Fix the assumption that all sources are named.

* Add test case

* Add news fragment
2022-03-23 14:04:13 +01:00
Matt Davis 1207b34e14 Remove broken unused check and broken code argument from pipenv. 2022-03-21 05:52:23 -04:00
Oz N Tiram 2337984fd0 Merge pull request #4776 from cm-iwata/fix/4775_consider_envvar_piptarget
Consider environment variable PIP_TARGET when calculate depndancy delta
2022-03-20 00:56:02 +01:00
Matt Davis 506b9b40b9 Remove remaining references to git:// 2022-03-16 21:53:11 -04:00
Matt Davis b605989746 fix remaining failng test due to git:// protocol deprecation. 2022-03-16 21:31:10 -04:00
Matt Davis 7e465f358d take 2 2022-03-16 21:09:44 -04:00
Matt Davis ae3bfef534 Attempt at fixing the failing git protocol tests. 2022-03-16 21:04:44 -04:00
Matt Davis 5a151615aa missed these tests becasue they run only on earlier python versions. 2022-03-11 03:25:13 -05:00
Matt Davis f488273715 Adjust test stdout expectations. 2022-03-11 02:52:03 -05:00
Matt Davis 90a12ddb11 clean up edge case now that print success changed away from stderr. 2022-03-11 02:09:18 -05:00
Matt Davis e7732e2a1b Add test case for this. 2022-03-11 01:49:16 -05:00
Matt Davis 9eb1e7b6d9 Fix test of find_windows_executable and expand coverage. 2022-02-15 20:27:55 -05:00
Oz N Tiram 880f91c877 Merge pull request #4896 from den4uk/verify-hash-command
New command: verify Pipfile.lock hash is up to date
2022-02-10 11:14:31 +01:00
pinfort b60d37a859 Pattern expansion for arguments was disabled on Windows
Fix #4937.
2022-01-30 22:20:15 +01:00
Milo Minderbinder 167909839a fix TLS validation for requirements.txt
Previously, due to a probable typo in the code for importing a
requirements file to create a new pipenv project, SSL/TLS validation was
disabled by default for any package index servers specified in the
requirements file with the `--index-url` or `--extra-index-url` options.

In addition, `--trusted-host` options in the requirements file would not
work as intended, because any host or host:port pair provided with these
options was incorrectly being matched against the full URLs of the
configured index server(s) (i.e. including the scheme, path, etc.),
instead of extracting and comparing with the host and port parts only,
as intended.

This PR fixes both of these issues, flipping the existing behavior to
require SSL/TLS validation by default, and optionally allowing TLS
validation to be disabled explicitly for specific host:port with the
`--trusted-host` option if provided.
2022-01-08 22:17:49 +08:00
Frost Ming 9cb42e1acb Merge pull request #4910 from jfly/update-run-tests-instructions 2022-01-08 14:17:49 +08:00
Jeremy Fleischman 08a7fcf1cd Oops, set the CI environment variable even earlier.
If I do something like `pytest tests/integration/test_cli.py`, something
about the ordering of imports means that `pipenv.environments` gets
loaded *before* `pytest_sessionstart` runs, which means that
`pipenv.environments.PIPENV_IS_CI` ends up false.
2022-01-07 00:12:15 -08:00
Jeremy Fleischman f42fcaa2b8 Misc doc updates (mostly around running tests)
This adds and documents a workaround for
https://github.com/pypa/pipenv/issues/4909. It feels a bit weird to
pretend to be CI just to run the test suite, though. Maybe we can do
something about that later.

I ran into a lot of trouble trying to get the tests to run when working
on https://github.com/pypa/pipenv/pull/4908, and that was largely
because the instructions in this CONTRIBUTING.md file seem to have
rotted.

1. The bit about "can be run very simply" is bogus. It's
   unfortunately not that simple right now.

2. `make test` (the docker approach) fails for me with this error:

    ```bash
    $ make test
    docker-compose up
    [+] Running 1/0
     ⠿ Container pipenv-pipenv-tests-1  Recreated                                                                  0.1s
    Attaching to pipenv-pipenv-tests-1
    pipenv-pipenv-tests-1  | Collecting certifi
    pipenv-pipenv-tests-1  |   Downloading https://files.pythonhosted.org/packages/37/45/946c02767aabb873146011e665728b680884cd8fe70dde973c640e45b775/certifi-2021.10.8-py2.py3-none-any.whl (149kB)
    pipenv-pipenv-tests-1  | Installing collected packages: certifi
    pipenv-pipenv-tests-1  | Successfully installed certifi-2021.10.8
    pipenv-pipenv-tests-1  | Path: /root/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    pipenv-pipenv-tests-1  | Installing Pipenv...
    pipenv-pipenv-tests-1  | Obtaining file:///pipenv
    pipenv-pipenv-tests-1  |     Complete output from command python setup.py egg_info:
    pipenv-pipenv-tests-1  |     Traceback (most recent call last):
    pipenv-pipenv-tests-1  |       File "<string>", line 1, in <module>
    pipenv-pipenv-tests-1  |       File "/pipenv/setup.py", line 55
    pipenv-pipenv-tests-1  |         print(f"\033[1m{s}\033[0m")
    pipenv-pipenv-tests-1  |                                  ^
    pipenv-pipenv-tests-1  |     SyntaxError: invalid syntax
    pipenv-pipenv-tests-1  |
    pipenv-pipenv-tests-1  |     ----------------------------------------
    pipenv-pipenv-tests-1  | Command "python setup.py egg_info" failed with error code 1 in /pipenv/
    pipenv-pipenv-tests-1 exited with code 1
    ```

    The docker image it relies upon
    (https://hub.docker.com/r/kennethreitz/pipenv-tests) hasn't been
    updated in 4 years, so I assume it's just not something people use
    anymore?

3. Relatedly, there was a `Dockerfile` at the root of this repo that
   appears to be unused. Let me know if it's used somewhere I'm not
   realizing, I can add it back!

4. https://kennethreitz.org/essays/be-cordial-or-be-on-your-way seems to
   be a broken link now. I found
   https://kennethreitz.org/essays/2013/01/27/be-cordial-or-be-on-your-way
   on Google.

5. `./run-tests.sh` doesn't work for me. It's failing for the same
   reason described by @ncoghlan here:
   https://github.com/pypa/pip/issues/7953#issuecomment-611928262. He
   said something about a `PIPENV_BOOTSTRAP` environment variable, but I
   can't find any information about that.
2022-01-07 00:01:33 -08:00
Jeremy Fleischman 34652df63c Use a PackageFinder with ignore_compatibility when collecting hashes
This fixes https://github.com/pypa/pipenv/issues/4885
2022-01-06 22:01:43 -08:00