| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
| |
Co-authored-by: KotlinIsland <kotlinisland@users.noreply.github.com>
Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
|
|
|
|
|
|
|
|
| |
There is logic to not measure third-party packages inside configured sources. However, when a (i.e. another) configured source was inside a third-party location, this logic was previously disabled completely.
This caused a problem if a virtual env is set up inside a configured source directory and a configured source package gets installed inside the virtual env. Previously in this case, coverage was measured for all files in the virtual env for the reason described in the previous paragraph.
This commit changes the code to collect all configured source directories inside third-party locations and disable coverage for code in third-party locations only if its not in one of these collected source directories.
|
| |
|
| |
|
|
|
|
|
|
|
| |
* fix: generate xml report packages correctly on windows
* test: check duplicate package names in xml report
* fix: shorten long line in test_xml
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With .ref, on a PR from a fork, I got:
```
Run actions/dependency-review-action@v3
with:
base-ref: master
head-ref: xml_duplicate_fix
repo-token: ***
fail-on-severity: low
fail-on-scopes: runtime
Error: Bad Request
```
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We build the .pip files on Mac. Some transitive dependencies are
different on other OS's, and so would fail there, like this:
```
ERROR: In --require-hashes mode, all requirements must have their versions pinned with ==. These do not:
SecretStorage>=3.2 from https://files.pythonhosted.org/packages/54/24/b4293291fa1dd830f353d2cb163295742fa87f179fcc8a20a306a81978b7/SecretStorage-3.3.3-py3-none-any.whl#sha256=f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99 (from keyring==23.13.1->-r requirements/dev.pip (line 279))
```
By keeping the .in files self-contained, we provide a way to install
without hashes.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were seeing these failures in the nightly builds:
```
FAILED tests/test_arcs.py::LoopArcTest::test_continue - AssertionError:
Possible arcs differ: minus is expected, plus is actual
(-1, 1) # .1
(1, 2) # 12
(1, 5) # 15
(2, 3) # 23
(3, 1) # 31
- (4, 1) # 41
(5, -1) # 5.
Missing arcs differ: minus is expected, plus is actual
- (4, 1) # 41
+
assert False
FAILED tests/test_arcs.py::LoopArcTest::test_break - AssertionError:
Possible arcs differ: minus is expected, plus is actual
(-1, 1) # .1
(1, 2) # 12
(1, 5) # 15
(2, 3) # 23
(3, 5) # 35
- (4, 1) # 41
(5, -1) # 5.
Missing arcs differ: minus is expected, plus is actual
(1, 5) # 15
- (4, 1) # 41
assert False
FAILED tests/test_arcs.py::ExceptionArcTest::test_raise_followed_by_statement - AssertionError:
Possible arcs differ: minus is expected, plus is actual
(-1, 1) # .1
(1, 2) # 12
(2, 3) # 23
(3, 4) # 34
(4, 6) # 46
- (5, 8) # 58
(6, 7) # 67
(7, 8) # 78
(8, -1) # 8.
Missing arcs differ: minus is expected, plus is actual
- (5, 8) # 58
+
assert False
FAILED tests/test_coverage.py::SimpleStatementTest::test_raise_followed_by_statement - AssertionError: [1, 2, 4, 5] != [1, 2, 3, 4, 5]
assert [1, 2, 4, 5] == [1, 2, 3, 4, 5]
At index 2 diff: 4 != 3
Right contains one more item: 5
Full diff:
- [1, 2, 3, 4, 5]
? ---
+ [1, 2, 4, 5]
FAILED tests/test_coverage.py::SimpleStatementTest::test_break - AssertionError: [1, 2, 3, 5] != [1, 2, 3, 4, 5]
assert [1, 2, 3, 5] == [1, 2, 3, 4, 5]
At index 3 diff: 5 != 4
Right contains one more item: 5
Full diff:
- [1, 2, 3, 4, 5]
? ---
+ [1, 2, 3, 5]
FAILED tests/test_coverage.py::SimpleStatementTest::test_continue - AssertionError: [1, 2, 3, 5] != [1, 2, 3, 4, 5]
assert [1, 2, 3, 5] == [1, 2, 3, 4, 5]
At index 3 diff: 5 != 4
Right contains one more item: 5
Full diff:
- [1, 2, 3, 4, 5]
? ---
+ [1, 2, 3, 5]
```
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Will fix:
https://github.com/nedbat/coveragepy/security/code-scanning/3
https://github.com/nedbat/coveragepy/security/code-scanning/4
(though tbh, not sure how to close those as fixed?)
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://github.com/pypa/packaging/issues/678
Nightly builds were failing because newer setuptools didn't like the
Python version number:
```
% .tox/anypy/bin/python -c "import pkg_resources as p; p.load_entry_point('coverage', 'console_scripts', 'coverage')()"
Traceback (most recent call last):
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2711, in _dep_map
return self.__dep_map
^^^^^^^^^^^^^^
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2826, in __getattr__
raise AttributeError(attr)
AttributeError: _Distribution__dep_map
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/__init__.py", line 522, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2855, in load_entry_point
return ep.load()
^^^^^^^^^
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2467, in load
self.require(*args, **kwargs)
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2489, in require
reqs = self.dist.requires(self.extras)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2746, in requires
dm = self._dep_map
^^^^^^^^^^^^^
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2713, in _dep_map
self.__dep_map = self._filter_extras(self._build_dep_map())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2728, in _filter_extras
invalid_marker(marker) or not evaluate_marker(marker)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/__init__.py", line 1415, in invalid_marker
evaluate_marker(text)
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/__init__.py", line 1433, in evaluate_marker
return marker.evaluate()
^^^^^^^^^^^^^^^^^
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/_vendor/packaging/markers.py", line 245, in evaluate
return _evaluate_markers(self._markers, current_environment)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/_vendor/packaging/markers.py", line 151, in _evaluate_markers
groups[-1].append(_eval_op(lhs_value, op, rhs_value))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/_vendor/packaging/markers.py", line 109, in _eval_op
return spec.contains(lhs, prereleases=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/_vendor/packaging/specifiers.py", line 565, in contains
normalized_item = _coerce_version(item)
^^^^^^^^^^^^^^^^^^^^^
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/_vendor/packaging/specifiers.py", line 36, in _coerce_version
version = Version(version)
^^^^^^^^^^^^^^^^
File "/Users/nedbatchelder/coverage/trunk/.tox/anypy/lib/python3.12/site-packages/pkg_resources/_vendor/packaging/version.py", line 197, in __init__
raise InvalidVersion(f"Invalid version: '{version}'")
pkg_resources.extern.packaging.version.InvalidVersion: Invalid version: '3.12.0a5+'
```
|
|
|
|
|
|
| |
For objects that truly might not exist, use Optional. Some objects will
always exist eventually, and for those we have some null implementation
standins to use without making new placebo classes.
|
|
|
|
|
| |
List the parameters separately, with type hints. This leaves a list of
params with dashes and no description, but we can get to that later.
|
| |
|
| |
|
|
|
|
|
| |
Details of the problem and thought process:
https://nedbatchelder.com/blog/202302/late_initialization_with_mypy.html
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
For example, see [issue
1554](https://github.com/nedbat/coveragepy/issues/1554) for the previous
misleading behavior when the exception being raised wasn't a
CoverageException.
|
|
|
|
| |
Also, move tests to test_data.py, and finish covering the code.
|