Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Temperamental coverage failure #161

Open
daffidwilde opened this issue Sep 14, 2023 · 1 comment
Open

Temperamental coverage failure #161

daffidwilde opened this issue Sep 14, 2023 · 1 comment

Comments

@daffidwilde
Copy link
Owner

daffidwilde commented Sep 14, 2023

Occasionally, we don't achieve full coverage, causing CI to fail. Rather than reducing our threshold, I'd rather rewrite the tests (or add an example) to force full coverage.

The details of the most recent failure are as follows:

  platform win32 -- Python 3.7.9, pytest-7.4.2, pluggy-1.2.0
  cachedir: .tox\py37\.pytest_cache
  Using --randomly-seed=1819805610
rootdir: /home/runner/work/matching/matching
  plugins: nbval-0.10.0, randomly-3.15.0, cov-4.1.0, hypothesis-6.84.3

And here's the coverage report:

  ----------- coverage: platform win32, python 3.7.9-final-0 -----------
  Name                                                                    Stmts   Miss  Cover
  -------------------------------------------------------------------------------------------
  .tox\py37\Lib\site-packages\matching\__init__.py                            9      0   100%
  .tox\py37\Lib\site-packages\matching\algorithms\__init__.py                 5      0   100%
  .tox\py37\Lib\site-packages\matching\algorithms\hospital_resident.py       47      0   100%
  .tox\py37\Lib\site-packages\matching\algorithms\stable_marriage.py         22      0   100%
  .tox\py37\Lib\site-packages\matching\algorithms\stable_roommates.py        68      0   100%
  .tox\py37\Lib\site-packages\matching\algorithms\student_allocation.py      54      1    98%
  .tox\py37\Lib\site-packages\matching\algorithms\util.py                     6      0   100%
  .tox\py37\Lib\site-packages\matching\base.py                               90      0   100%
  .tox\py37\Lib\site-packages\matching\exceptions.py                         10      0   100%
  .tox\py37\Lib\site-packages\matching\games\__init__.py                      5      0   100%
  .tox\py37\Lib\site-packages\matching\games\hospital_resident.py           115      0   100%
  .tox\py37\Lib\site-packages\matching\games\stable_marriage.py              88      0   100%
  .tox\py37\Lib\site-packages\matching\games\stable_roommates.py             56      0   100%
  .tox\py37\Lib\site-packages\matching\games\student_allocation.py          141      0   100%
  .tox\py37\Lib\site-packages\matching\matchings.py                          24      0   100%
  .tox\py37\Lib\site-packages\matching\players\__init__.py                    5      0   100%
  .tox\py37\Lib\site-packages\matching\players\hospital.py                   36      0   100%
  .tox\py37\Lib\site-packages\matching\players\player.py                     19      0   100%
  .tox\py37\Lib\site-packages\matching\players\project.py                    24      0   100%
  .tox\py37\Lib\site-packages\matching\players\supervisor.py                 24      0   100%
  -------------------------------------------------------------------------------------------
  TOTAL                                                                     848      1    99%
  
  FAIL Required test coverage of 100% not reached. Total coverage: 99.88%

It's always algorithms/student_allocation.py but I haven't been able to replicate the problem.

The full pip freeze is:

alabaster==0.7.13,attrs==23.1.0,Babel==2.12.1,backcall==0.2.0,beautifulsoup4==4.12.2,black==22.12.0,bleach==6.0.0,certifi==2023.7.22,charset-normalizer==3.2.0,click==8.1.7,colorama==0.4.6,coverage==7.2.7,cycler==0.11.0,debugpy==1.7.0,decorator==5.1.1,defusedxml==0.7.1,docutils==0.17.1,entrypoints==0.4,exceptiongroup==1.1.3,fastjsonschema==2.18.0,flake8==5.0.4,fonttools==4.38.0,hypothesis==6.79.4,idna==3.4,imagesize==1.4.1,importlib-metadata==4.2.0,importlib-resources==5.12.0,iniconfig==2.0.0,interrogate==1.5.0,ipykernel==6.16.2,ipython==7.34.0,isort==5.11.5,jedi==0.19.0,Jinja2==3.1.2,jsonschema==4.17.3,jupyter_client==7.4.9,jupyter_core==4.12.0,jupyterlab-pygments==0.2.2,kiwisolver==1.4.5,MarkupSafe==2.1.3,matching @ file:///D:/a/matching/matching/.tox/.tmp/package/1/matching-1.4.2.tar.gz#sha256=b097aa06662319d8dd265ebc162ccb45082e547673d61fbb6d4852cdce80df4f,matplotlib==3.5.3,matplotlib-inline==0.1.6,mccabe==0.7.0,mistune==3.0.1,mypy-extensions==1.0.0,nbclient==0.7.4,nbconvert==7.6.0,nbformat==5.8.0,nbsphinx==0.9.3,nbval==0.10.0,nest-asyncio==1.5.7,numpy==1.21.6,packaging==23.1,pandas==1.3.5,pandocfilters==1.5.0,parso==0.8.3,pathspec==0.11.2,pickleshare==0.7.5,Pillow==9.5.0,pip==23.2.1,pkgutil_resolve_name==1.3.10,platformdirs==3.10.0,pluggy==1.2.0,prompt-toolkit==3.0.39,psutil==5.9.5,py==1.11.0,pycodestyle==2.9.1,pyflakes==2.5.0,Pygments==2.16.1,pyparsing==3.1.1,pyrsistent==0.19.3,pytest==7.4.2,pytest-cov==4.1.0,pytest-randomly==3.12.0,python-dateutil==2.8.2,pytz==2023.3.post1,pywin32==306,PyYAML==6.0.1,pyzmq==25.1.1,requests==2.31.0,setuptools==68.0.0,six==1.16.0,snowballstemmer==2.2.0,sortedcontainers==2.4.0,soupsieve==2.4.1,Sphinx==4.3.2,sphinxcontrib-applehelp==1.0.2,sphinxcontrib-devhelp==1.0.2,sphinxcontrib-htmlhelp==2.0.0,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-qthelp==1.0.3,sphinxcontrib-serializinghtml==1.1.5,tabulate==0.9.0,tinycss2==1.2.1,tokenize-rt==5.0.0,toml==0.10.2,tomli==2.0.1,tornado==6.2,traitlets==5.9.0,typed-ast==1.5.5,typing_extensions==4.7.1,urllib3==2.0.4,wcwidth==0.2.6,webencodings==0.5.1,wheel==0.41.2,zipp==3.15.0
daffidwilde added a commit that referenced this issue Sep 14, 2023
Another way the player removal process broke things was for project
removal (when removing a supervisor). Now that removals are explicit via
comprehension we don't need this.

This also fixes #161
@daffidwilde daffidwilde reopened this Sep 14, 2023
@daffidwilde
Copy link
Owner Author

I was wrong! The original failed run was something else...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant