diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-15 07:01:36 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-15 07:01:36 +0000 |
commit | 92fecfc81a3c4f81174f46ef7bded47f8cef8c8f (patch) | |
tree | c4255c1671bf57f75b052146d95120e3448a94fe /python-covimerage.spec | |
parent | b0793687c408a18a9807886241c08c89178ca217 (diff) |
automatic import of python-covimerage
Diffstat (limited to 'python-covimerage.spec')
-rw-r--r-- | python-covimerage.spec | 433 |
1 files changed, 433 insertions, 0 deletions
diff --git a/python-covimerage.spec b/python-covimerage.spec new file mode 100644 index 0000000..5d15a4c --- /dev/null +++ b/python-covimerage.spec @@ -0,0 +1,433 @@ +%global _empty_manifest_terminate_build 0 +Name: python-covimerage +Version: 0.2.2 +Release: 1 +Summary: Generate coverage information for Vim scripts. +License: MIT License +URL: https://github.com/Vimjas/covimerage +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/e7/fd/45a6ce480ac42e53b5d6cf6c8c93620e5d2ba39060df2713fff00651e2de/covimerage-0.2.2.tar.gz +BuildArch: noarch + +Requires: python3-attrs +Requires: python3-click +Requires: python3-coverage +Requires: python3-pytest +Requires: python3-pytest-mock +Requires: python3-flake8 +Requires: python3-isort +Requires: python3-pdbpp +Requires: python3-pytest-pdb +Requires: python3-flake8 +Requires: python3-isort +Requires: python3-pytest +Requires: python3-pytest-mock + +%description +# covimerage + +Generates code coverage information for Vim scripts. + +It parses the output from Vim's `:profile` command, and generates data +compatible with [Coverage.py](http://coverage.readthedocs.io/). + +[](https://circleci.com/gh/Vimjas/covimerage) +[](https://codecov.io/gh/Vimjas/covimerage/branch/master) +[](https://www.codacy.com/app/blueyed/covimerage) + +## Installation + +You can install covimerage using pip: + +```sh +pip install covimerage +``` + +## Simple usage + +You can use `covimerage run` to wrap the call to Neovim/Vim with necessary +boilerplate: + +```sh +covimerage run vim -Nu test/vimrc -c 'Vader! test/**' +``` + +This will write the file `.coverage_covimerage` by default (use `--data-file` +to configure it), which is compatible with Coverage.py. +A report is automatically generated (on stdout). + +You can then call `covimerage xml` to create a `coverage.xml` file +(Cobertura-compatible), which tools like [Codecov](https://codecov.io/)'s +`codecov` tool can consume, e.g. via `codecov -f coverage.xml`. + +## Manual/advanced usage + +### 1. Generate profile information for your Vim script(s) + +You have to basically add the following to your tests vimrc: + +```vim +profile start /tmp/vim-profile.txt +profile! file ./* +``` + +This makes Neovim/Vim then write a file with profiling information. + +### 2. Call covimerage on the output file(s) + +```sh +covimerage write_coverage /tmp/vim-profile.txt +``` + +This will create a file `.coverage_covimerage` (the default for `--data-file`), +with entries marked for processing by a +[Coverage.py](http://coverage.readthedocs.io/) plugin (provided by +covimerage)). + +### 3. Include the covimerage plugin in .coveragerc + +When using `coverage` on the generated output (data file), you need to add +the `covimerage` plugin to the `.coveragerc` file (which Coverage.py uses). +This is basically all the `.coveragerc` you will need, but you could use +other settings here (for Coverage.py), e.g. to omit some files: + +``` +[run] +plugins = covimerage +data_file = .coverage_covimerage +``` + +### 4. Create the report(s) + +You can now call e.g. `coverage report -m`, and you should be able to use +coverage reporting platforms like <https://codecov.io/> or +<https://coveralls.io>, which are basically using `coverage xml`. + +## Reference implementation + +- [Neomake](https://github.com/neomake/neomake) is the first adopter of this. + It has an advanced test setup (including Docker based builds), and looking at + tis setup could be helpful when setting up covimerage for your + plugin/project. + + - [Neomake's coverage report on codecov.io](https://codecov.io/gh/neomake/neomake/tree/master) + - [PR/change to integrate it in + Neomake](https://github.com/neomake/neomake/pull/1600) (Neomake's test + setup is rather advanced, so do not let that scare you!) + +## Caveats + +Coverage information for a function may get wiped if the function is re-defined +after testing it. This is a known limitation that does not depend on the +implementation of covimerage, but on the vim profiler itself, since profiling +data for a function, used to extract coverage data, is reset when the function +is re-defined, even if the definition is identical. + +This can be an issue if the source files being checked for coverage are +reloaded with `runtime` between tests for some reasons, e.g. when mocking some +function. To prevent coverage information from being lost, one solution is to +write such tests in a different suite that is run separately, and combine the +coverage results with `covimerage run --append`. + +## Links + +- Discussion in Coverage.py's issue tracker: + [coverage issue 607](https://bitbucket.org/ned/coveragepy/issues/607/) + +## TODO + +- Line hit counts: known to covimerage, but not supported by Coverage.py + (<https://bitbucket.org/ned/coveragepy/issues/607/#comment-40048034>). + + + + +%package -n python3-covimerage +Summary: Generate coverage information for Vim scripts. +Provides: python-covimerage +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-covimerage +# covimerage + +Generates code coverage information for Vim scripts. + +It parses the output from Vim's `:profile` command, and generates data +compatible with [Coverage.py](http://coverage.readthedocs.io/). + +[](https://circleci.com/gh/Vimjas/covimerage) +[](https://codecov.io/gh/Vimjas/covimerage/branch/master) +[](https://www.codacy.com/app/blueyed/covimerage) + +## Installation + +You can install covimerage using pip: + +```sh +pip install covimerage +``` + +## Simple usage + +You can use `covimerage run` to wrap the call to Neovim/Vim with necessary +boilerplate: + +```sh +covimerage run vim -Nu test/vimrc -c 'Vader! test/**' +``` + +This will write the file `.coverage_covimerage` by default (use `--data-file` +to configure it), which is compatible with Coverage.py. +A report is automatically generated (on stdout). + +You can then call `covimerage xml` to create a `coverage.xml` file +(Cobertura-compatible), which tools like [Codecov](https://codecov.io/)'s +`codecov` tool can consume, e.g. via `codecov -f coverage.xml`. + +## Manual/advanced usage + +### 1. Generate profile information for your Vim script(s) + +You have to basically add the following to your tests vimrc: + +```vim +profile start /tmp/vim-profile.txt +profile! file ./* +``` + +This makes Neovim/Vim then write a file with profiling information. + +### 2. Call covimerage on the output file(s) + +```sh +covimerage write_coverage /tmp/vim-profile.txt +``` + +This will create a file `.coverage_covimerage` (the default for `--data-file`), +with entries marked for processing by a +[Coverage.py](http://coverage.readthedocs.io/) plugin (provided by +covimerage)). + +### 3. Include the covimerage plugin in .coveragerc + +When using `coverage` on the generated output (data file), you need to add +the `covimerage` plugin to the `.coveragerc` file (which Coverage.py uses). +This is basically all the `.coveragerc` you will need, but you could use +other settings here (for Coverage.py), e.g. to omit some files: + +``` +[run] +plugins = covimerage +data_file = .coverage_covimerage +``` + +### 4. Create the report(s) + +You can now call e.g. `coverage report -m`, and you should be able to use +coverage reporting platforms like <https://codecov.io/> or +<https://coveralls.io>, which are basically using `coverage xml`. + +## Reference implementation + +- [Neomake](https://github.com/neomake/neomake) is the first adopter of this. + It has an advanced test setup (including Docker based builds), and looking at + tis setup could be helpful when setting up covimerage for your + plugin/project. + + - [Neomake's coverage report on codecov.io](https://codecov.io/gh/neomake/neomake/tree/master) + - [PR/change to integrate it in + Neomake](https://github.com/neomake/neomake/pull/1600) (Neomake's test + setup is rather advanced, so do not let that scare you!) + +## Caveats + +Coverage information for a function may get wiped if the function is re-defined +after testing it. This is a known limitation that does not depend on the +implementation of covimerage, but on the vim profiler itself, since profiling +data for a function, used to extract coverage data, is reset when the function +is re-defined, even if the definition is identical. + +This can be an issue if the source files being checked for coverage are +reloaded with `runtime` between tests for some reasons, e.g. when mocking some +function. To prevent coverage information from being lost, one solution is to +write such tests in a different suite that is run separately, and combine the +coverage results with `covimerage run --append`. + +## Links + +- Discussion in Coverage.py's issue tracker: + [coverage issue 607](https://bitbucket.org/ned/coveragepy/issues/607/) + +## TODO + +- Line hit counts: known to covimerage, but not supported by Coverage.py + (<https://bitbucket.org/ned/coveragepy/issues/607/#comment-40048034>). + + + + +%package help +Summary: Development documents and examples for covimerage +Provides: python3-covimerage-doc +%description help +# covimerage + +Generates code coverage information for Vim scripts. + +It parses the output from Vim's `:profile` command, and generates data +compatible with [Coverage.py](http://coverage.readthedocs.io/). + +[](https://circleci.com/gh/Vimjas/covimerage) +[](https://codecov.io/gh/Vimjas/covimerage/branch/master) +[](https://www.codacy.com/app/blueyed/covimerage) + +## Installation + +You can install covimerage using pip: + +```sh +pip install covimerage +``` + +## Simple usage + +You can use `covimerage run` to wrap the call to Neovim/Vim with necessary +boilerplate: + +```sh +covimerage run vim -Nu test/vimrc -c 'Vader! test/**' +``` + +This will write the file `.coverage_covimerage` by default (use `--data-file` +to configure it), which is compatible with Coverage.py. +A report is automatically generated (on stdout). + +You can then call `covimerage xml` to create a `coverage.xml` file +(Cobertura-compatible), which tools like [Codecov](https://codecov.io/)'s +`codecov` tool can consume, e.g. via `codecov -f coverage.xml`. + +## Manual/advanced usage + +### 1. Generate profile information for your Vim script(s) + +You have to basically add the following to your tests vimrc: + +```vim +profile start /tmp/vim-profile.txt +profile! file ./* +``` + +This makes Neovim/Vim then write a file with profiling information. + +### 2. Call covimerage on the output file(s) + +```sh +covimerage write_coverage /tmp/vim-profile.txt +``` + +This will create a file `.coverage_covimerage` (the default for `--data-file`), +with entries marked for processing by a +[Coverage.py](http://coverage.readthedocs.io/) plugin (provided by +covimerage)). + +### 3. Include the covimerage plugin in .coveragerc + +When using `coverage` on the generated output (data file), you need to add +the `covimerage` plugin to the `.coveragerc` file (which Coverage.py uses). +This is basically all the `.coveragerc` you will need, but you could use +other settings here (for Coverage.py), e.g. to omit some files: + +``` +[run] +plugins = covimerage +data_file = .coverage_covimerage +``` + +### 4. Create the report(s) + +You can now call e.g. `coverage report -m`, and you should be able to use +coverage reporting platforms like <https://codecov.io/> or +<https://coveralls.io>, which are basically using `coverage xml`. + +## Reference implementation + +- [Neomake](https://github.com/neomake/neomake) is the first adopter of this. + It has an advanced test setup (including Docker based builds), and looking at + tis setup could be helpful when setting up covimerage for your + plugin/project. + + - [Neomake's coverage report on codecov.io](https://codecov.io/gh/neomake/neomake/tree/master) + - [PR/change to integrate it in + Neomake](https://github.com/neomake/neomake/pull/1600) (Neomake's test + setup is rather advanced, so do not let that scare you!) + +## Caveats + +Coverage information for a function may get wiped if the function is re-defined +after testing it. This is a known limitation that does not depend on the +implementation of covimerage, but on the vim profiler itself, since profiling +data for a function, used to extract coverage data, is reset when the function +is re-defined, even if the definition is identical. + +This can be an issue if the source files being checked for coverage are +reloaded with `runtime` between tests for some reasons, e.g. when mocking some +function. To prevent coverage information from being lost, one solution is to +write such tests in a different suite that is run separately, and combine the +coverage results with `covimerage run --append`. + +## Links + +- Discussion in Coverage.py's issue tracker: + [coverage issue 607](https://bitbucket.org/ned/coveragepy/issues/607/) + +## TODO + +- Line hit counts: known to covimerage, but not supported by Coverage.py + (<https://bitbucket.org/ned/coveragepy/issues/607/#comment-40048034>). + + + + +%prep +%autosetup -n covimerage-0.2.2 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-covimerage -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.2.2-1 +- Package Spec generated |