Show coverage stats online via coveralls.io

Overview

Coveralls for Python

Test Status: https://img.shields.io/circleci/project/github/TheKevJames/coveralls-python/master.svg?style=flat-square&label=CircleCI https://img.shields.io/travis/TheKevJames/coveralls-python/master.svg?style=flat-square&label=TravisCI https://img.shields.io/github/workflow/status/TheKevJames/coveralls-python/coveralls/master?style=flat-square&label=Github%20Actions https://img.shields.io/coveralls/TheKevJames/coveralls-python/master.svg?style=flat-square&label=Coverage
Version Info: https://img.shields.io/conda/v/conda-forge/coveralls?style=flat-square&label=Conda https://img.shields.io/pypi/v/coveralls.svg?style=flat-square&label=PyPI https://img.shields.io/conda/dn/conda-forge/coveralls?label=Conda%20Downloads&style=flat-square https://img.shields.io/pypi/dm/coveralls.svg?style=flat-square&label=PyPI%20Downloads
Compatibility: https://img.shields.io/pypi/pyversions/coveralls.svg?style=flat-square&label=Python%20Versions https://img.shields.io/pypi/implementation/coveralls.svg?style=flat-square&label=Python%20Implementations
Misc: https://img.shields.io/docker/cloud/build/thekevjames/coveralls?style=flat-square&label=Docker https://img.shields.io/readthedocs/coveralls-python?style=flat-square&label=Docs

coveralls.io is a service for publishing your coverage stats online. This package provides seamless integration with coverage.py (and thus pytest, nosetests, etc...) in your Python projects:

pip install coveralls
coverage run --source=mypkg -m pytest tests/
coveralls

For more information and usage instructions, see our documentation.

Version Compatibility

As of version 2.0, we have dropped support for end-of-life'd versions of Python and particularly old version of coverage. Support for non-EOL'd environments is provided on a best-effort basis and will generally be removed once they make maintenance too difficult.

If you're running on an outdated environment with a new enough package manager to support version checks (see the PyPA docs), then installing the latest compatible version should do the trick. If you're even more outdated than that, please pin to coveralls<2.

If you're in an outdated environment and experiencing an issue, feel free to open a ticket -- but please mention your environment! I'm willing to backport fixes to the 1.x branch if need be.

Comments
  • Move repo to an organization

    Move repo to an organization

    For the sake of maintainability and also to enable easier control os CI services it would be much better to move this repo to a github organization

    Thoughts @TheKevJames and @coagulant ?

    I asked over https://github.com/lemurheavy/coveralls-public/issues/911

    If the answer is not positive, I just created an organization called, coveralls-clients

    If this does not already exists we could aggregate all other clients on this org.

    opened by goanpeca 13
  • Api.py will warn (no more silence) on ImportError

    Api.py will warn (no more silence) on ImportError

    Hello!

    I have added logging, when some modules are not installed. I have a pure Linux Mint installation (pyyaml is not installed), and I have a project. There is .coveralls.yml, but coveralls does not work:

    [email protected] ~/projects/project $ coveralls --verbose
    You have to provide either repo_token in .coveralls.yml, or launch via Travis or CircleCI
    

    I've spent a couple of hours, and found, that some exceptions were eaten in silence. It is bad. After patching:

    [email protected] ~/projects/project $ coveralls --verbose
    Seems, like some modules are not installed: No module named yaml
    You have to provide either repo_token in .coveralls.yml, or launch via Travis or CircleCI
    

    Changes

    log.warn added to exc.handler block. This code will just notify user on absence of some modules (in my case - yaml)

    Review on Reviewable

    opened by maxkoryukov 13
  • Could not submit coverage: 422 Client Error despite defining COVERALLS_REPO_TOKEN on GHA

    Could not submit coverage: 422 Client Error despite defining COVERALLS_REPO_TOKEN on GHA

    Despite $COVERALLS_REPO_TOKEN being correctly defined and passed in (via tox), getting a 422 error on GitHub Actions https://github.com/casperdcl/git-fame/runs/1383075434?check_suite_focus=true#step:5:62 (https://github.com/casperdcl/git-fame/commit/20b3f10f084d4f176ce041c7ec7abd1fa948fa3a)

     Could not submit coverage: 422 Client Error: Unprocessable Entity for url: coveralls.io/api/v1/jobs
    

    Note that codecov by comparison (using $CODECOV_TOKEN) works fine.

    opened by casperdcl 12
  • coveralls --finish not working as expected in Circle-CI

    coveralls --finish not working as expected in Circle-CI

    Thanks for this nice client.

    It looks like since the github api was introduced, the Circle-CI version seems broken. When I try putting having a run that finishes up a parallel go, the wrong build number is being used to notify the service

    (venv) [email protected]:~/project$ coveralls debug -v --finish
    Missing .coveralls.yml file. Using only env variables.
    Testing coveralls-python...
    {"source_files": [], "git": {"branch": "coveralls", "head": {"id": "fad6a2cc6ab84ef45d06bf2150a4d103c16e1a76", "author_name": "Stephen Roller", "author_email": "[email protected]", "committer_name": "Stephen Roller", "committer_email": "[email protected]", "message": "Hm."}, "remotes": [{"name": "origin", "url": "[email protected].
    com:facebookresearch/ParlAI.git"}]}, "config_file": ".coveragerc", "parallel": true, "repo_token": "[secure]", "service_name": "circle-ci", "service_job_id": "48529", "service_pull_request": "2950"}
    ==
    Reporting 0 files
    ==
    

    Here you see that the CIRCLE_BUILD_NUM value has been put into "service_job_id" field of the config. In

    However, the call to finish uses the "service_number" field instead:

    https://github.com/coveralls-clients/coveralls-python/blob/30e4815169b3db2616981939d55d2f4495816821/coveralls/api.py#L217-L218

    As such, when you try calling coveralls --finish you get the following error:

    $ coveralls -v --finish
    Missing .coveralls.yml file. Using only env variables.
    Finishing parallel jobs...
    Parallel finish failed: No build matching CI build number  found
    Traceback (most recent call last):
      File "/home/circleci/venv/lib/python3.7/site-packages/coveralls/cli.py", line 80, in main
        coverallz.parallel_finish()
      File "/home/circleci/venv/lib/python3.7/site-packages/coveralls/api.py", line 236, in parallel_finish
        raise CoverallsException('Parallel finish failed: {}'.format(e))
    coveralls.exception.CoverallsException: Parallel finish failed: No build matching CI build number  found
    

    Note that Circle always puts None into the service_number field:

    https://github.com/coveralls-clients/coveralls-python/blob/30e4815169b3db2616981939d55d2f4495816821/coveralls/api.py#L87

    https://github.com/coveralls-clients/coveralls-python/blob/30e4815169b3db2616981939d55d2f4495816821/coveralls/api.py#L52-L59

    opened by stephenroller 12
  • Update Github Actions support

    Update Github Actions support

    Github Actions, and the coveralls side of support for it, seem to have changed/evolved. This PR brings coveralls-python in line with the official github action, which is commonly used to finish parallel builds.

    Additionally, there is no need to manually provide your repo token anymore (though you still can, so existing setups should not be affected by this), since the native github support takes the automatically provided GITHUB_TOKEN instead, very similar to how things work on Travis. You do however have to export that GITHUB_TOKEN to an env var in your workflow.yml:

    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    
    opened by TimoRoth 12
  • Branch coverage

    Branch coverage

    Apparently, Coveralls now supports branch coverage.

    https://github.com/lemurheavy/coveralls-public/issues/31#issuecomment-284375195

    I don't see the changes to the web API documented yet, but I do see that the Node client seems to support it via the branches key. branches is a sibling of coverage in the dictionary the client submits to Coveralls.

    https://github.com/nickmerwin/node-coveralls/commit/15750503b69c3143b3020fa5d4fe4fc1d455356e https://coveralls.io/github/nickmerwin/node-coveralls?branch=master

    screen shot 2017-03-06 at 07 58 43

    opened by myint 12
  • Add support for coverage v5.0+

    Add support for coverage v5.0+

    Running coveralls or coveralls debug or coveralls debug --verbose gives me the following stack dump:

    Testing coveralls-python...
    Traceback (most recent call last):
      File "/tmp/ds/bin/coveralls", line 10, in <module>
        sys.exit(main())
      File "/tmp/ds/lib64/python3.7/site-packages/coveralls/cli.py", line 68, in main
        coverallz.wear(dry_run=True)
      File "/tmp/ds/lib64/python3.7/site-packages/coveralls/api.py", line 168, in wear
        json_string = self.create_report()
      File "/tmp/ds/lib64/python3.7/site-packages/coveralls/api.py", line 184, in create_report
        data = self.create_data()
      File "/tmp/ds/lib64/python3.7/site-packages/coveralls/api.py", line 238, in create_data
        self._data = {'source_files': self.get_coverage()}
      File "/tmp/ds/lib64/python3.7/site-packages/coveralls/api.py", line 260, in get_coverage
        return CoverallReporter(workman, workman.config).report()
      File "/tmp/ds/lib64/python3.7/site-packages/coveralls/reporter.py", line 47, in report
        self.parse_file(cu, analyzed)
      File "/tmp/ds/lib64/python3.7/site-packages/coveralls/reporter.py", line 158, in parse_file
        branches = self.get_arcs(analysis)
      File "/tmp/ds/lib64/python3.7/site-packages/coveralls/reporter.py", line 103, in get_arcs
        branch_lines = analysis.branch_lines()
    AttributeError: 'Analysis' object has no attribute 'branch_lines'
    

    This is with coverage 5.0a5 and coveralls 1.8.0. It looks to me like the coverage library recently changed branch_lines to _branch_lines in the Analysis class (see https://github.com/nedbat/coveragepy/commit/f869f4dfd7ccd2c9d4e6575d00ee3ad1a31757e3#diff-b696f62d55a35f1f75a13c5c7ecf2f68), and coveralls is still trying to access it under the old name. I think. Or maybe the issue is on my end; I don't know.

    opened by davidwagner 11
  • Error on CircleCI without setting COVERALLS_REPO_TOKEN

    Error on CircleCI without setting COVERALLS_REPO_TOKEN

    When trying to submit coverage on CircleCI I get the following error:

    Couldn't find a repository matching this job.
    'url'
    
    $ pip freeze | grep coveralls
    coveralls==1.1
    

    I'm on the latest version of coveralls and according to the docs I don't need to set COVERALLS_REPO_TOKEN for CircleCI, what am I doing wrong?

    opened by joshblum 11
  • Remove extra dependencies to speed up installation

    Remove extra dependencies to speed up installation

    Installation takes ~10 seconds per build

    Due to all coverall-python's dependencies, installation takes around 10 seconds. Probably most of that time is spend on compiling PyYAML, only for parsing a config file most users will not be using. Also installing requests (great lib!) for doing a single post only, seems somewhat overkill. Reducing the external dependencies allows for a faster install, and speeds up all builds.

    $ time pip install coveralls
    Downloading/unpacking coveralls
      Downloading coveralls-0.3.zip
      Running setup.py egg_info for package coveralls
    Downloading/unpacking PyYAML>=3.10 (from coveralls)
      Downloading PyYAML-3.10.tar.gz (241kB): 241kB downloaded
      Running setup.py egg_info for package PyYAML
    Downloading/unpacking docopt>=0.6.1 (from coveralls)
      Downloading docopt-0.6.1.tar.gz
      Running setup.py egg_info for package docopt
    Downloading/unpacking coverage>=3.6 (from coveralls)
      Downloading coverage-3.7.tar.gz (283kB): 283kB downloaded
      Running setup.py egg_info for package coverage
        warning: no previously-included files matching '*.pyc' found anywhere in distribution
    Downloading/unpacking requests>=1.0.0 (from coveralls)
      Downloading requests-2.0.1.tar.gz (412kB): 412kB downloaded
      Running setup.py egg_info for package requests
    Downloading/unpacking sh>=1.08 (from coveralls)
      Downloading sh-1.09.tar.gz
      Running setup.py egg_info for package sh
    Installing collected packages: coveralls, PyYAML, docopt, coverage, requests, sh
      Running setup.py install for coveralls
        Installing coveralls script to /home/travis/virtualenv/python2.6/bin
      Running setup.py install for PyYAML
        checking if libyaml is compilable
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c build/temp.linux-x86_64-2.6/check_libyaml.c -o build/temp.linux-x86_64-2.6/check_libyaml.o
        checking if libyaml is linkable
        gcc -pthread build/temp.linux-x86_64-2.6/check_libyaml.o -lyaml -o build/temp.linux-x86_64-2.6/check_libyaml
        building '_yaml' extension
        (...)
      Running setup.py install for docopt
      Running setup.py install for coverage
        building 'coverage.tracer' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c coverage/tracer.c -o build/temp.linux-x86_64-2.6/coverage/tracer.o
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-x86_64-2.6/coverage/tracer.o -o build/lib.linux-x86_64-2.6/coverage/tracer.so
        warning: no previously-included files matching '*.pyc' found anywhere in distribution
        Installing coverage2 script to /home/travis/virtualenv/python2.6/bin
        Installing coverage-2.6 script to /home/travis/virtualenv/python2.6/bin
        Installing coverage script to /home/travis/virtualenv/python2.6/bin
      Running setup.py install for requests
      Running setup.py install for sh
    Successfully installed coveralls PyYAML docopt coverage requests sh
    Cleaning up...
    real    0m10.539s
    user    0m8.336s
    sys 0m0.781s
    

    Using --use-mirrors, the result is only worse:

    $ time pip install coveralls --use-mirrors
    real    1m44.662s
    user    0m10.684s
    sys 0m1.183s
    
    opened by Bouke 11
  • chore(dependencies): unpin pytest version, use pytest-runner

    chore(dependencies): unpin pytest version, use pytest-runner

    Fixes #139

    Forced an install of the latest pytest (3.0.6) and found no errors. We should wait until CI works again before merging this, just to be sure.

    opened by TheKevJames 10
  • .coveralls.yml has no effect

    .coveralls.yml has no effect

    I'm having troubles both locally and on travis-pro:

    Locally, coveralls appears to ignore my .coveralls.yml file

    $ coveralls
    You have to provide either repo_token in .coveralls.yml, or launch via Travis or CircleCI
    $ cat .coveralls.yml
    repo_token: abcdefghijklmnop
    

    and on travis-pro with .coveralls.yml set to

    service_name: travis-pro
    repo_token: abcdefghijklmnop
    

    the travis build logs tell me

    $ coveralls
    Submitting coverage to coveralls.io...
    Coverage submitted!
    Couldn't find a repository matching this job.
    'url'
    

    I've confirmed that the repo_token is equal to the token on the coveralls page. Am I missing a step? Options to debug this?

    opened by perrygeo 10
  • 3.3.1: pytest is failing in units which are uning `coverage.files` module (with `coverage` 7.0.1)

    3.3.1: pytest is failing in units which are uning `coverage.files` module (with `coverage` 7.0.1)

    I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

    • python3 -sBm build -w --no-isolation
    • because I'm calling build with --no-isolation I'm using during all processes only locally installed modules
    • install .whl file in </install/prefix>
    • run pytest with PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>

    Here is list of installed modules in build env

    Package                       Version
    ----------------------------- -----------------
    alabaster                     0.7.12
    asn1crypto                    1.5.1
    attrs                         22.2.0
    Babel                         2.11.0
    bcrypt                        3.2.2
    build                         0.9.0
    cffi                          1.15.1
    charset-normalizer            3.0.1
    contourpy                     1.0.6
    coverage                      7.0.1
    cryptography                  38.0.4
    cycler                        0.11.0
    distro                        1.8.0
    docopt                        0.6.2
    docutils                      0.19
    exceptiongroup                1.0.0
    extras                        1.0.0
    fixtures                      4.0.0
    fonttools                     4.38.0
    gpg                           1.18.0-unknown
    idna                          3.4
    imagesize                     1.4.1
    importlib-metadata            5.1.0
    iniconfig                     1.1.1
    Jinja2                        3.1.2
    kiwisolver                    1.4.4
    libcomps                      0.1.19
    MarkupSafe                    2.1.1
    matplotlib                    3.6.2
    numpy                         1.24.1
    olefile                       0.46
    packaging                     21.3
    pbr                           5.9.0
    pep517                        0.13.0
    Pillow                        9.3.0
    pip                           22.3.1
    pluggy                        1.0.0
    ply                           3.11
    pyasn1                        0.4.8
    pyasn1-modules                0.2.8
    pycparser                     2.21
    Pygments                      2.13.0
    PyGObject                     3.42.2
    pyparsing                     3.0.9
    pytest                        7.2.0
    python-dateutil               2.8.2
    pytz                          2022.4
    PyYAML                        6.0
    requests                      2.28.1
    responses                     0.22.0
    rpm                           4.17.0
    setuptools                    65.6.3
    six                           1.16.0
    snowballstemmer               2.2.0
    Sphinx                        5.3.0
    sphinxcontrib-applehelp       1.0.2.dev20221204
    sphinxcontrib-devhelp         1.0.2.dev20221204
    sphinxcontrib-htmlhelp        2.0.0
    sphinxcontrib-jsmath          1.0.1.dev20221204
    sphinxcontrib-qthelp          1.0.3.dev20221204
    sphinxcontrib-serializinghtml 1.1.5
    testtools                     2.5.0
    toml                          0.10.2
    tomli                         2.0.1
    tpm2-pkcs11-tools             1.33.7
    tpm2-pytss                    1.1.0
    types-toml                    0.10.8
    urllib3                       1.26.12
    wheel                         0.38.4
    zipp                          3.11.0
    
    opened by kloczek 1
  • Tox test on Python 3.6 fails with assertion error

    Tox test on Python 3.6 fails with assertion error

    On Python 3.6, the tox test fails. On Python 3.5 and 3.7 or higher, it suceeds.

      py36-cov6-default run-test: commands[0] | coverage run --branch --source=coveralls -m pytest tests/
      ============================= test session starts ==============================
      platform linux -- Python 3.6.15, pytest-7.0.1, pluggy-1.0.0
      cachedir: .tox/py36-cov6-default/.pytest_cache
      rootdir: /home/runner/work/coveralls-python/coveralls-python
      collected 73 items
      
      tests/api_test.py .                                                      [  1%]
      tests/cli_test.py ..............                                         [ 20%]
      tests/git_test.py ........                                               [ 31%]
      tests/integration_test.py ...                                            [ 35%]
      tests/api/configuration_test.py s...................                     [ 63%]
      tests/api/encoding_test.py ..                                            [ 65%]
      tests/api/exception_test.py ...                                          [ 69%]
      tests/api/reporter_test.py .......F..                                    [ 83%]
      tests/api/wear_test.py ............                                      [100%]
      
      =================================== FAILURES ===================================
      ___________________ ReporterTest.test_reporter_with_branches ___________________
      
      self = <tests.api.reporter_test.ReporterTest testMethod=test_reporter_with_branches>
      
          def test_reporter_with_branches(self):
              subprocess.call(['coverage', 'run', '--branch', '--omit=**/.tox/*',
                               'runtests.py'], cwd=EXAMPLE_DIR)
              results = Coveralls(repo_token='xxx').get_coverage()
              assert len(results) == 2
          
              # Branches are expressed as four values each in a flat list
              assert not len(results[0]['branches']) % 4
              assert not len(results[1]['branches']) % 4
          
              expected_results = self.make_test_results(with_branches=True)
      >       assert_coverage(results[0], expected_results[0])
      
      /home/runner/work/coveralls-python/coveralls-python/tests/api/reporter_test.py:176: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      actual = {'branches': [5, 0, 6, 1, 5, 0, ...], 'coverage': [1, 1, None, None, 1, None, ...], 'name': 'project.py', 'source': 'd...1:\n        print(\'condition tested both ways\')\n    if cond2:\n        print(\'condition not tested both ways\')\n'}
      expected = {'branches': [13, 0, 14, 1, 13, 0, ...], 'coverage': [1, 1, None, None, 1, None, ...], 'name': 'project.py', 'source':...1:\n        print(\'condition tested both ways\')\n    if cond2:\n        print(\'condition not tested both ways\')\n'}
      
          def assert_coverage(actual, expected):
              assert actual['source'].strip() == expected['source'].strip()
              assert actual['name'] == expected['name']
              assert actual['coverage'] == expected['coverage']
      >       assert actual.get('branches') == expected.get('branches')
      E       assert [5, 0, 6, 1, 5, 0, ...] == [13, 0, 14, 1, 13, 0, ...]
      E         At index 0 diff: 5 != 13
      E         Left contains 8 more items, first extra item: 15
      E         Full diff:
      E         - [13, 0, 14, 1, 13, 0, 15, 1, 15, 0, 16, 1, 15, 0, 12, 0]
      E         + [5, 0, 6, 1, 5, 0, 9, 1, 13, 0, 14, 1, 13, 0, 15, 1, 15, 0, 16, 1, 15, 0, 12, 0]
      E         ?  ++++++++++++++++++++++++
      
      /home/runner/work/coveralls-python/coveralls-python/tests/api/reporter_test.py:16: AssertionError
      ----------------------------- Captured stdout call -----------------------------
      world
      condition not tested both ways
      condition tested both ways
      condition not tested both ways
      =========================== short test summary info ============================
      FAILED tests/api/reporter_test.py::ReporterTest::test_reporter_with_branches
      =================== 1 failed, 71 passed, 1 skipped in 4.23s ====================
      Error: ERROR: InvocationError for command /home/runner/work/coveralls-python/coveralls-python/.tox/py36-cov6-default/bin/coverage run --branch --source=coveralls -m pytest tests/ (exited with code 1)
    

    This is from run https://github.com/TheKevJames/coveralls-python/actions/runs/3765789223/jobs/6401619490

    opened by andy-maier 0
  • coveralls workflow fails on Python 3.5 and 3.6 with ubuntu-latest

    coveralls workflow fails on Python 3.5 and 3.6 with ubuntu-latest

    See for example here: https://github.com/TheKevJames/coveralls-python/actions/runs/3765678072

    This is caused by GitHub Actions having changed ubuntu-latest to now be Ubuntu 22.04, for which it no longer provides Python 3.5 and 3.6.

    This can be fixed by specifying the use of ubuntu-20.04 for Python 3.5 and 3.6.

    opened by andy-maier 1
  • chore(deps): update dependency coverage to v7

    chore(deps): update dependency coverage to v7

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | coverage | >=4.1,<7.0,!=6.0.*,!=6.1,!=6.1.1 -> >=7,<7.1,!=6.0,!=6.1,!=6.1.1 | age | adoption | passing | confidence |


    Release Notes

    nedbat/coveragepy

    v7.0.1

    Compare Source

    • When checking if a file mapping resolved to a file that exists, we weren't considering files in .whl files. This is now fixed, closing issue 1511_.

    • File pattern rules were too strict, forbidding plus signs and curly braces in directory and file names. This is now fixed, closing issue 1513_.

    • Unusual Unicode or control characters in source files could prevent reporting. This is now fixed, closing issue 1512_.

    • The PyPy wheel now installs on PyPy 3.7, 3.8, and 3.9, closing issue 1510_.

    .. _issue 1510:https://github.com/nedbat/coveragepy/issues/15100 .. _issue 1511https://github.com/nedbat/coveragepy/issues/151111 .. _issue 151https://github.com/nedbat/coveragepy/issues/1512512 .. _issue 15https://github.com/nedbat/coveragepy/issues/15131513

    .. _changes_7-0-0:

    v7.0.0

    Compare Source

    Nothing new beyond 7.0.0b1.

    .. _changes_7-0-0b1:


    Configuration

    πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • tox.rst: update passenv examples for tox3 and tox4

    tox.rst: update passenv examples for tox3 and tox4

    tox4 no longer allows space-separated passenv https://github.com/tox-dev/tox/issues/2615

    however tox3 doesn't support VAR, either

    so to support both versions of tox, use this funky space + comma separated syntax, which really does work.

    opened by masenf 0
Releases(3.3.1)
  • 3.3.1(Nov 11, 2021)

    Bug Fixes

    • correctly support parallel execution on CircleCI (#336) (2610885a)

    Internal

    • exclude a few incompatible coverage versions (#337)

    coverage versions v6.0.0 through v6.1.1 exhibited some incompatibilies with coveralls; we've updated our version compatibility ranges to exclude those versions.

    Source code(tar.gz)
    Source code(zip)
  • 3.3.0(Nov 4, 2021)

    Features

    • cli: add --srcdir option (#306) (4120c540)
    • deps: add support for coverage v6.x (#330) (372443dc, closes #326)

    Note this implicitly improves support for Python 3.10, as coverage v6.x includes some fixes for v3.10 of Python.

    Bug Fixes

    • env: fixup handling of default env service values (#314) (1a0fd9b3, closes #303)

    This solves some edge cases around duplicated / unmerged coverage results in parallel runs.

    Source code(tar.gz)
    Source code(zip)
  • 3.2.0(Jul 20, 2021)

  • 3.1.0(May 24, 2021)

  • 3.0.1(May 24, 2021)

  • 3.0.0(Jan 12, 2021)

    3.0.0 (2021-01-12)

    Features (BREAKING)

    • config: reorder configuration precedence (#249) (f4faa92d)

    We have reversed the order in which configurations are parsed. This means we are now following the following precedence (latest configured value is used):

    1. CI Config
    2. COVERALLS_* env vars
    3. .coveralls.yml file
    4. CLI flags

    If you have the same fields set in multiple of the above locations, please double-check them before upgrading to v3.

    The motivation for this change is allowing users to selectively fix values which may be automatically set to the wrong value. For example, Github Actions users may find that Github Actions expects you to use a different "service name" in various different cases. Now you can run, for example:

     coveralls --service=github
    

    In places where you need to override the default (which is github-actions).

    Bug Fixes

    • github: send null job_id to fix 422 (05b66aa0)
    • api: fixup retries for services without job IDs (6ebdc5e2)
    Source code(tar.gz)
    Source code(zip)
  • 2.2.0(Nov 20, 2020)

    2.2.0 (2020-11-20)

    Features

    • api: add workaround allowing job resubmission (#241)

    Bug Fixes

    • integrations: fixup environment detection for Semaphore CI (#236)
    Source code(tar.gz)
    Source code(zip)
  • 2.1.2(Aug 12, 2020)

    2.1.2 (2020-08-12)

    Features

    • circleci: support parallel builds (#233) (5e05654c) Note: this is partially a fix for the --finish command introduced in v2.1.0, which did not seem to work for some CircleCI users.
    Source code(tar.gz)
    Source code(zip)
  • 2.1.1(Jul 8, 2020)

    2.1.1 (2020-07-08)

    Bug Fixes

    • fix unhashable CoverallsException (#230) (aa55335d) This fixes a regression introduced in v2.1.0 which affected (at least) any Python 3.5 installations.
    Source code(tar.gz)
    Source code(zip)
  • 2.1.0(Jul 7, 2020)

  • 2.0.0(Apr 7, 2020)

    2.0.0 (2020-04-07)

    Compatibility (BREAKING CHANGES)

    • We have now dropped support for End-Of-Life'd versions of Python and particularly old versions of the coverage library; if you are still using Python v2.7 or v3.4, or you are using coverage<4.1, this library will no longer be compatible starting from this release -- please pin to coveralls<2.0.0.
    Source code(tar.gz)
    Source code(zip)
  • 1.11.1(Feb 15, 2020)

    1.11.1 (2020-02-15)

    Bug Fixes

    • github: rename to github-actions (9e65a059) This fixes a regression introduced with v1.11.0, which may have prevented usage of this library on Github Actions.
    Source code(tar.gz)
    Source code(zip)
  • 1.11.0(Feb 12, 2020)

    1.11.0 (2020-02-12)

    Fixes

    • github: add service_number for github actions (9f93bd8e) This should fix support for parallel builds.

    Compatibility

    • Python 2.7 and 3.4 are now officially End-Of-Life'd. Consider them deprecated from the perspective of this package -- we'll remove them in an upcoming release (likely the first one which requires non-trivial work to continue supporting them!).
    Source code(tar.gz)
    Source code(zip)
  • 1.10.0(Dec 31, 2019)

  • 1.9.2(Dec 3, 2019)

  • 1.9.1(Dec 3, 2019)

    1.9.1 (2019-12-03)

    Compatibility

    • this release marks Python 3.8 as officially supported. Earlier versions probably supported Python 3.8 too, but now we're sure.
    Source code(tar.gz)
    Source code(zip)
  • 1.9.0(Dec 3, 2019)

    1.9.0 (2019-12-03)

    Features

    • support: support Github Actions CI (#207)

    Bug Fixes

    • compatibility: fixup coverage.__version__ comparisons (#208)
    Source code(tar.gz)
    Source code(zip)
  • 1.8.2(Jul 29, 2019)

  • 1.8.1(Jun 16, 2019)

    1.8.1 (2019-06-16)

    Bug Fixes

    • dependencies: pin coverage to < 5.0, since the current 5.0 alphas are introducing breaking changes. Once 5.0 is stable, we'll remove the pin.
    Source code(tar.gz)
    Source code(zip)
  • 1.8.0(Jun 2, 2019)

  • 1.7.0(Mar 20, 2019)

  • 1.6.0(Feb 18, 2019)

  • 1.5.1(Sep 28, 2018)

    1.5.1 (2018-09-28)

    Features

    • git: omit git info when git isn't installed (#187) (764956ea)
      • ... instead of erroring. The fixes the v1.4.0 release of "supporting non-git repos" when the git binary is not installed.
      • Note that commit info can still be set with env vars, even in non-git repositories -- see the docs for more info!

    Compatibility

    • python: include python 3.7 in matrix tests (023d474)
      • previous versions of coveralls-python should be compatible with Python 3.7, no code changes were required to make tests pass

    Internal

    • remove pytest-runner as a dependency (#185) (4cbbfcd)
    Source code(tar.gz)
    Source code(zip)
  • 1.5.0(Aug 31, 2018)

  • 1.4.0(Aug 24, 2018)

    1.4.0 (2018-08-24)

    Performance

    • git: call fallback git commands in fallback cases only (e42095b4)

    Features

    • env: support git env vars (#182) (a1918e89)
      • This change also adds support for non-git repos.
    • flags: add ability to add named job (#181) (f7ba07bf)

    Compatibility

    • python: drop support for Python 3.3 (dcb06fc1)
    Source code(tar.gz)
    Source code(zip)
  • 1.3.0(Mar 2, 2018)

    1.3.0 (2018-03-02)

    Features

    • ci: add Travis PR support (#162) (baf683ee)
    • cli: allow service_name override from cli flag or env var (#167) (e8a98904)
    • coveralls-enterprise: add support for coveralls enterprise (#166) (7383f377)
    • git: silently omit git data when git is unavailable (#176) (f9db83cd)
    • jenkins:
      • add logic to parse CI_PULL_REQUEST env variable (#171) (34a037f5)
      • add support for jenkins (#160) (4e8cd9ec)
    Source code(tar.gz)
    Source code(zip)
  • 1.2.0(Aug 16, 2017)

Declarative HTTP Testing for Python and anything else

Gabbi Release Notes Gabbi is a tool for running HTTP tests where requests and responses are represented in a declarative YAML-based form. The simplest

Chris Dent 139 Sep 21, 2022
Django test runner using nose

django-nose django-nose provides all the goodness of nose in your Django tests, like: Testing just your apps by default, not all the standard ones tha

Jazzband 880 Dec 15, 2022
Django-google-optimize is a Django application designed to make running server side Google Optimize A/B tests easy.

Django-google-optimize Django-google-optimize is a Django application designed to make running Google Optimize A/B tests easy. Here is a tutorial on t

Adin Hodovic 39 Oct 25, 2022
A simple Python script I wrote that scrapes NASA's James Webb Space Telescope tracker website using Selenium and returns its current status and location.

A simple Python script I wrote that scrapes NASA's James Webb Space Telescope tracker website using Selenium and returns its current status and location.

9 Feb 10, 2022
AllPairs is an open source test combinations generator written in Python

AllPairs is an open source test combinations generator written in Python

Robson Agapito Correa 5 Mar 05, 2022
Useful additions to Django's default TestCase

django-test-plus Useful additions to Django's default TestCase from REVSYS Rationale Let's face it, writing tests isn't always fun. Part of the reason

REVSYS 546 Dec 22, 2022
Asyncio http mocking. Similar to the responses library used for 'requests'

aresponses an asyncio testing server for mocking external services Features Fast mocks using actual network connections allows mocking some types of n

93 Nov 16, 2022
Python script to automatically download from Zippyshare

Zippyshare downloader and Links Extractor Python script to automatically download from Zippyshare using Selenium package and Internet Download Manager

Daksh Khurana 2 Oct 31, 2022
Let your Python tests travel through time

FreezeGun: Let your Python tests travel through time FreezeGun is a library that allows your Python tests to travel through time by mocking the dateti

Steve Pulec 3.5k Dec 29, 2022
Thin-wrapper around the mock package for easier use with pytest

pytest-mock This plugin provides a mocker fixture which is a thin-wrapper around the patching API provided by the mock package: import os class UnixF

pytest-dev 1.5k Jan 05, 2023
Scraping Bot for the Covid19 vaccination website of the Canton of Zurich, Switzerland.

Hi πŸ‘‹ , I'm David A passionate developer from France. 🌱 I’m currently learning Kotlin, ReactJS and Kubernetes πŸ‘¨β€πŸ’» All of my projects are available

1 Nov 14, 2021
Testing Calculations in Python, using OOP (Object-Oriented Programming)

Testing Calculations in Python, using OOP (Object-Oriented Programming) Create environment with venv python3 -m venv venv Activate environment . venv

William Koller 1 Nov 11, 2021
Switch among Guest VMs organized by Resource Pool

Proxmox PCI Switcher Switch among Guest VMs organized by Resource Pool. main features: ONE GPU card, N OS (at once) Guest VM command client Handler po

Rosiney Gomes Pereira 111 Dec 27, 2022
Compiles python selenium script to be a Window's executable

Problem Statement Setting up a Python project can be frustrating for non-developers. From downloading the right version of python, setting up virtual

Jerry Ng 8 Jan 09, 2023
A collection of testing examples using pytest and many other libreris

Effective testing with Python This project was created for PyConEs 2021 Check out the test samples at tests Check out the slides at slides (markdown o

HΓ©ctor Canto 10 Oct 23, 2022
Fills out the container extension form automatically. (Specific to IIT Ropar)

automated_container_extension Fills out the container extension form automatically. (Specific to IIT Ropar) Download the chrome driver from the websit

Abhishek Singh Sambyal 1 Dec 24, 2021
A complete test automation tool

Golem - Test Automation Golem is a test framework and a complete tool for browser automation. Tests can be written with code in Python, codeless using

486 Dec 30, 2022
Faker is a Python package that generates fake data for you.

Faker is a Python package that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in yo

Daniele Faraglia 15.2k Jan 01, 2023
Pymox - open source mock object framework for Python

Pymox is an open source mock object framework for Python. First Steps Installation Tutorial Documentation http://pymox.readthedocs.io/en/latest/index.

Ivan Rocha 7 Feb 02, 2022
Screenplay pattern base for Python automated UI test suites.

ScreenPy TITLE CARD: "ScreenPy" TITLE DISAPPEARS.

Perry Goy 39 Nov 15, 2022