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

Iwana 20211114 t1305 pytestx #1460

Merged
merged 12 commits into from
Nov 19, 2021

Conversation

aucampia
Copy link
Member

DO NOT REVIEW !!!

This PR is for testing extra commits for #1452 before adding them to that branch.

white-gecko and others added 12 commits October 18, 2021 21:49
This patch replace all uses of nose with pytest. It also includes a
pytest plugin for creating EARL reports for tests with a `rdf_test_uri`
parameter.

Some caveats:

- HTML report directory is now htmlcov instead of coverage
- There is some warning related to the EARL reporting plugin which I can't quite figure out:
  ```
  .venv/lib64/python3.7/site-packages/_pytest/config/__init__.py:676
    /home/iwana/sw/d/github.com/iafork/rdflib/.venv/lib64/python3.7/site-packages/_pytest/config/__init__.py:676: PytestAssertRewriteWarning: Module already imported so cannot be rewritten: test.earl
      self.import_plugin(import_spec)
  ```
  This is not causing any problems as far as I can tell, but still annoying.
- python setup.py test won't work anymore, I can make it work but this
  is not advised by pytest:
  https://github.com/pytest-dev/pytest-runner/#deprecation-notice
- run_test.py is still there but it's not really referenced anymore from
  anywhere and the options it accepts are completely different as it's options
  were based on nose. I would say it should be removed entirely but for now
  it is basically just a wrapper around pytest that basically does nothing.
- Removed references to test attributes as currently they are not being
  used anywhere anyway, I guess we can add them back if there is some
  use for them later.
- A lot of tests are still marked to skip when really they should be marked
  with xfail. This is also affecting the RDFT test manifests and result in
  reports saying tests are skipped when really we know they will fail and
  they are only skipped for this reason. But there is no change here from
  before, and pytest makes it easier to dynamically do expected failures.

Special thanks to Wes Turner for his advice and inputs on this process.
- Removed unused ignores.
- Use official description text of RDFLib in DOAP used in EARL report.
This eliminates this warning:
```
.venv/lib64/python3.7/site-packages/_pytest/config/__init__.py:676
/home/iwana/sw/d/github.com/iafork/rdflib/.venv/lib64/python3.7/site-packages/_pytest/config/__init__.py:676: PytestAssertRewriteWarning: Module already imported so cannot be rewritten: test.earl
  self.import_plugin(import_spec)
```

By adding PYTEST_DONT_REWRITE to the plugin module docstring.
pytest's behaviour causes some spurious warnings during test, this
commit configures pytest to ignore them.
Skipping was done incorrectly and failed on Windows.
This is so that it works properly on MacOS which does not permit
listening on random loopback addresses for user processes.
Errors were being piped to true, but that will fail if it runs with
pipefail. The better option is to do `black ... || true` which will work
for ignoring errors even with pipefail.
@nicholascar nicholascar merged commit 9f8aa8c into RDFLib:master Nov 19, 2021
@aucampia aucampia deleted the iwana-20211114T1305-pytestx branch December 27, 2021 19:48
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

Successfully merging this pull request may close these issues.

3 participants