Commit Graph

3300 Commits

Author SHA1 Message Date
Nguyễn Gia Phong 46b938349a Allow py2 deprecation warning from setuptools 2020-08-14 17:56:15 +07:00
Nguyễn Gia Phong b46576d933 Give batch downloader a separate class 2020-08-12 16:07:27 +07:00
Nguyễn Gia Phong 078e0effb7 Add memoization mechanism for file download
This is intentionally dependent from caching, which relies on cache dir.
2020-08-11 22:39:42 +07:00
Nguyễn Gia Phong e62f16e969 Make Downloader perform the download 2020-08-11 22:36:08 +07:00
Pradyun Gedam 8eea660e03
Merge pull request #8744 from hroncok/keyring_global_nope
When one keyring attempt fails, don't bother with more
2020-08-11 15:41:02 +05:30
Pradyun Gedam 4c7bbdb4e4
Merge pull request #8702 from uranusjr/get-distribution-looks-for-all 2020-08-10 20:30:55 +05:30
Tzu-ping Chung 312d1d0473 Add failing test for constraints with markers 2020-08-07 13:43:49 +08:00
Nguyễn Gia Phong 487d00295c Define RequirementPreparer._session 2020-08-06 18:42:59 +07:00
Nguyễn Gia Phong 709ad37b2f
Make assertion failure give better message (#8692) 2020-08-06 15:40:13 +05:30
Tzu-ping Chung 4fce2ea88c Add test to ensure get_distribution() behavior 2020-08-06 10:59:07 +08:00
Pradyun Gedam ee4371c386
Merge pull request #8685 from chrahunt/use-preparer-for-lazy-wheels 2020-08-04 18:46:56 +05:30
Pradyun Gedam 4fa31d509f
Merge pull request #8678 from uranusjr/new-resolver-no-deps-extras-install-self 2020-08-04 06:48:11 +05:30
Miro Hrončok ba062c3ed0 When one keyring attempt fails, don't bother with more
This makes https://github.com/pypa/pip/issues/8090 much less painful.
2020-08-03 12:34:26 +02:00
Chris Hunt f0d4df10eb Propagate lazy_wheel option through RequirementPreparer
Reduces dependence on Candidate (and Resolver (and Factory)).
2020-08-02 18:40:11 -04:00
Pradyun Gedam 7e6ff08aae
Merge pull request #8656 from chrahunt/gracefully-handle-bad-data-paths
Trace a better error message on installation failure due to invalid .data files in wheels
2020-08-02 19:55:40 +05:30
Tzu-ping Chung b4632d080b Failing test for new resolver + extras + --no-deps 2020-08-02 16:12:46 +08:00
Pradyun Gedam e51a027964
Merge pull request #8659 from uranusjr/fix-get-distribution-dot-in-name
Canonicalize name in check_if_exists
2020-08-02 07:44:24 +05:30
Nguyễn Gia Phong 0ef877339a Make assertions independent of log prefixes 2020-08-01 20:26:44 +07:00
Tzu-ping Chung ea47920767 Add test case for SlikSVN version parsing 2020-08-01 02:03:45 +08:00
Tzu-ping Chung 1fd5098b24 Canonicalize name in check_if_exists
The previous implementation uses pkg_resources.get_distribution(), which
does not canonicalize the package name correctly, and fails when
combined with pip's own get_distribution(), which does canonicalize
names. This makes InstallRequirement.check_if_exists() only use pip's
own canonicalization logic so different package name forms are matched
as expected.
2020-07-30 22:04:51 +08:00
Chris Hunt 3f9b326c11 Provide a reasonable error on invalid scheme keys
Originally we would throw an `AttributeError` if a bad scheme key was
used. After refactoring we would throw a `KeyError`, which isn't much
better. Now we call out the wheel being processed, scheme key we didn't
recognize, and provide a list of the valid scheme keys. This would
likely be useful for people developing/testing the wheel.
2020-07-29 22:24:09 -04:00
Chris Hunt 864f0e0efa Explicitly handle incorrect .data paths during wheel install
Previously our wheel installation process allowed wheels which contained
non-conforming contents in a contained .data directory.

After the refactoring to enable direct-from-wheel installation, pip
throws an exception when encountering these wheels, but does not include
any helpful information to pinpoint the cause.

Now if we encounter such a wheel, we trace an error that includes the
name of the requirement we're trying to install, the path to the wheel
file, the path we didn't understand, and a hint about what we expect.
2020-07-29 18:12:16 -04:00
Pradyun Gedam a8edffda1c
Merge pull request #8594 from pradyunsg/improve-install-conflict-warning 2020-07-28 18:22:53 +05:30
Pradyun Gedam 3f88476e4f
This counts as a fix right? 2020-07-27 20:06:55 +05:30
Pradyun Gedam 3962f9d2b8
Moar tests getting updated 2020-07-27 19:51:47 +05:30
Pradyun Gedam b9ff93f7ba
Update test messages to reflect new reality 2020-07-27 19:51:47 +05:30
Pradyun Gedam c631de61b9
Drop no-longer-used deprecated_python fixture 2020-07-27 19:51:47 +05:30
Pradyun Gedam e4f8e0a2b8
Change {matches -> contains}_expected_lines
This also updates invocations that can't be translated as-is into a
different equivalent check.
2020-07-27 19:51:47 +05:30
Pradyun Gedam a89ede7da3
tests: Check only the last output lines 2020-07-27 19:51:47 +05:30
Pradyun Gedam 43da7c8283
Make the YAML tests happier 2020-07-27 13:49:21 +05:30
Pradyun Gedam 7056132f6f
Merge pull request #8601 from rouge8/use-feature-requirements-file 2020-07-27 13:19:51 +05:30
Tzu-ping Chung 906072a292 Test for conflict message from requirements.txt 2020-07-26 15:59:07 +08:00
Stéphane Bidoul ccdfa74d79
Reduce reliance on .egg-info directories in test suite
Make more tests run with with_wheel and test
that a .dist-info directory is created.
2020-07-25 13:02:20 +02:00
Stéphane Bidoul 38fe3c2f14
Percolate --use-feature from req file upwards
We explicitly propagate --use-feature options from req files upwards.
This is not strictly necessary for the option to be enabled, because
of the default value is a global list, but that implicit behaviour is
certainly accidental, so we make it explicit, with a test.
2020-07-25 11:14:04 +02:00
Pradyun Gedam 89a51a6fef
Merge pull request #8588 from McSinyx/fast-deps
Use lazy wheel to obtain dep info for new resolver
2020-07-24 09:01:56 +05:30
Pradyun Gedam f94580bad7
Print output in test_debug__library_versions
This should make debugging issues in this test easier.
2020-07-22 19:57:20 +05:30
Nguyễn Gia Phong 4efae5c21a Add integration tests for experimental feature fast-deps
Test pip {download,install,wheel} where requirements have dependencies
listed in their wheels' metadata.
2020-07-21 16:00:34 +07:00
Pradyun Gedam 982aac544e
Merge pull request #8584 from McSinyx/range-unsupported-exc 2020-07-21 13:53:20 +05:30
Andy Freeland 7a3c802626 Attempt to test --use-feature in pip freeze
I can't get the functional tests to run locally...
2020-07-19 02:44:12 -07:00
Andy Freeland 3eef588a03 Support '--use-feature' in requirements files
This patch adds support for `--use-feature` in requirements files
so that a project that wants all contributors using the same pip
features can specify it in the requirements file. For example, to ensure
a requirements file uses the new resolver:

```
--use-feature=2020-resolver
boto3
boto3==1.13.13
```

This is a new version of #8293.
2020-07-18 16:08:47 -07:00
Nguyễn Gia Phong d363b4a427 Replace tabs by spaces for consistency 2020-07-18 17:00:59 +07:00
Nguyễn Gia Phong 05bdc69aa3 Make test more explicit 2020-07-17 14:33:19 +07:00
Nguyễn Gia Phong cb8d81d135 Nitpick logging calls 2020-07-17 14:33:19 +07:00
Nguyễn Gia Phong 892018eaf2 Use local server for an unit test for lazy wheel 2020-07-16 21:09:59 +07:00
Chris Hunt c40d7b2122
Merge pull request #8575 from chrahunt/tests/add-better-entrypoint-test
Make wheel entrypoint error test higher-level
2020-07-15 16:52:35 -04:00
Pradyun Gedam fa2fceecf1
Merge pull request #8189 from gutsytechster/remove_raise_for_status 2020-07-15 18:06:27 +05:30
Pradyun Gedam 61d497120f
Merge pull request #8424 from jku/8288-deprecate-nonconforming-extras 2020-07-15 18:03:00 +05:30
Nguyễn Gia Phong db217992bd Use more descriptive exception when range requests are unsupported 2020-07-15 16:28:53 +07:00
Chris Hunt 607ec6c342
Merge pull request #7416 from chrahunt/maint/add-coverage
Add basic test coverage configuration
2020-07-14 19:22:56 -04:00
Chris Hunt 328e4c06da
Merge pull request #8502 from uranusjr/new-resolver-binary-compat-on-target
Ensure binary compat is checked in --target
2020-07-13 20:38:13 -04:00