forked from pool/python-coverage
* Fix: a pragma comment on the continuation lines of a multi-line statement now excludes the statement and its body, the same as if the pragma is on the first line. * Fix: very complex source files could cause a maximum recursion error when creating an HTML report. * HTML report improvements: + Support files (JavaScript and CSS) referenced by the HTML report now have hashes added to their names to ensure updated files are used instead of stale cached copies. + Missing branch coverage explanations that said "the condition was never false" now read "the condition was always true" because it's easier to understand. + Column sort order is remembered better as you move between the index pages. * Added initial support for function and class reporting in the HTML report. * Other HTML report improvements: + There is now a "hide covered" checkbox to filter out 100% files. + The index page is always sorted by one of its columns, with clearer indications of the sorting. + The "previous file" shortcut key didn't work on the index page, but now it does. * The debug output showing which configuration files were tried now shows absolute paths to help diagnose problems where settings aren't taking effect, and is renamed from "attempted_config_files" to the more logical "config_files_attempted." * Fix: in some cases, even with [run] relative_files=True, a data file could be created with absolute path names. When combined with other relative data files, it was random whether the absolute file names would be made relative or not. If they weren't, then a file would be listed OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-coverage?expand=0&rev=129
122 lines
3.9 KiB
RPMSpec
122 lines
3.9 KiB
RPMSpec
#
|
|
# spec file for package python-coverage
|
|
#
|
|
# Copyright (c) 2024 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%{?sle15_python_module_pythons}
|
|
Name: python-coverage
|
|
Version: 7.5.1
|
|
Release: 0
|
|
Summary: Code coverage measurement for Python
|
|
License: Apache-2.0
|
|
URL: https://github.com/nedbat/coveragepy
|
|
Source: https://files.pythonhosted.org/packages/source/c/coverage/coverage-%{version}.tar.gz
|
|
BuildRequires: %{python_module devel >= 3.8}
|
|
BuildRequires: %{python_module pip}
|
|
BuildRequires: %{python_module setuptools}
|
|
BuildRequires: %{python_module wheel}
|
|
BuildRequires: fdupes
|
|
BuildRequires: python-rpm-macros
|
|
Requires: python
|
|
Requires(post): update-alternatives
|
|
Requires(postun): update-alternatives
|
|
# coverage[toml]
|
|
Recommends: python-tomli
|
|
# SECTION test requirements
|
|
BuildRequires: %{python_module flaky}
|
|
BuildRequires: %{python_module hypothesis >= 6}
|
|
BuildRequires: %{python_module pytest-xdist}
|
|
BuildRequires: %{python_module pytest}
|
|
BuildRequires: %{python_module tomli}
|
|
# for database (sqlite3) support
|
|
BuildRequires: %{pythons}
|
|
# /SECTION
|
|
%python_subpackages
|
|
|
|
%description
|
|
Coverage.py measures code coverage, typically during test execution. It uses
|
|
the code analysis tools and tracing hooks provided in the Python standard
|
|
library to determine which lines are executable, and which have been executed.
|
|
|
|
%prep
|
|
%autosetup -p1 -n coverage-%{version}
|
|
|
|
# we define everything necessary ourselves below
|
|
sed -i -e '/addopts/d' setup.cfg
|
|
|
|
%build
|
|
%pyproject_wheel
|
|
|
|
%install
|
|
%pyproject_install
|
|
rm -vf %{buildroot}%{_bindir}/coverage{2,3}
|
|
%python_clone -a %{buildroot}%{_bindir}/coverage
|
|
%python_expand %fdupes %{buildroot}%{$python_sitearch}
|
|
|
|
%check
|
|
export LANG=en_US.UTF8
|
|
%python_flavored_alternatives
|
|
%{python_expand # indicate a writeable .pth directory for tests
|
|
mkdir -p build/mysite
|
|
cp %{python_sitearch}/zzzz-import-failed-hooks.pth build/mysite/
|
|
}
|
|
# the tests need the empty leading part for importing local test projects"
|
|
export PYTHONPATH=":$PWD/build/mysite"
|
|
|
|
export COVERAGE_CORE="pytrace"
|
|
|
|
%python_exec -mcoverage debug sys
|
|
|
|
# d:l:p:backports 15.4_py39 does not have python3
|
|
if [ ! -x "$(which python3)" ]; then
|
|
mypython=$(find %{_bindir} -name 'python3.*[0-9]' -executable -print -quit)
|
|
else
|
|
mypython=python3
|
|
fi
|
|
# installs some test modules into tests/ (flavor agnostic)
|
|
$mypython igor.py zip_mods
|
|
|
|
# test_version - checks for non-compiled variant, we ship only compiled one
|
|
donttest="test_version"
|
|
# test_xdist_sys_path_nuttiness_is_fixed - xdist check that we actually fail on purpose
|
|
donttest+=" or test_xdist_sys_path_nuttiness_is_fixed"
|
|
# does not find a usable venv
|
|
donttest+=" or test_venv"
|
|
# writes in /usr/
|
|
donttest+=" or test_process"
|
|
# requires additional plugins
|
|
donttest+=" or test_plugins"
|
|
# asserts PYTHONPATH is empty, which it can't be
|
|
donttest+=" or test_report_wildcard or test_run_omit_vs_report_omit"
|
|
|
|
%pytest_arch -n auto --no-flaky-report -k "$donttest" -rp ||:
|
|
%pytest_arch -n auto --no-flaky-report -k "not ($donttest)"
|
|
|
|
%post
|
|
%python_install_alternative coverage
|
|
|
|
%postun
|
|
%python_uninstall_alternative coverage
|
|
|
|
%files %{python_files}
|
|
%license LICENSE.txt
|
|
%doc CHANGES.rst CONTRIBUTORS.txt README.rst howto.txt
|
|
%python_alternative %{_bindir}/coverage
|
|
%{python_sitearch}/coverage/
|
|
%{python_sitearch}/coverage-%{version}.dist-info
|
|
|
|
%changelog
|