Mercurial > p > roundup > code
comparison test/test_postgresql.py @ 5105:37d1e24fb941
Fix work-around for pytest markers bug
The initial work-around implemented was totally botched using
'pytest.skip' instead of 'pytest.mark.skip' which resulted in all tests
in a file being completely ignored if any skip conditions that evaluated
to true were declared or imported in the file.
This work-around will not correctly display why all the tests have been
skipped when using the '-rs' parameter. Only the first skip marker to
taint a parent test class will be displayed (ie. if both xapian and
mysql tests are being skipped, pytest will only output that tests are
being skipped because xapian is not installed even though the mysql
tests are also being skipped because mysql backend is not available).
There also seems to be a bug in the current version of pytest being used
in 'run_tests.py' (v2.8.4) that results in the skip not actually working
when using 'pytest.mark.skip'. This does work correctly with the most
recent release (v2.9.2), so the 'run_tests.py' script will need to be
updated.
| author | John Kristensen <john@jerrykan.com> |
|---|---|
| date | Mon, 27 Jun 2016 14:03:32 +1000 |
| parents | c977f3530944 |
| children | 43a1f7fe39f5 |
comparison
equal
deleted
inserted
replaced
| 5104:ca3e56590fcd | 5105:37d1e24fb941 |
|---|---|
| 27 from roundup.backends import get_backend, have_backend | 27 from roundup.backends import get_backend, have_backend |
| 28 | 28 |
| 29 # FIX: workaround for a bug in pytest.mark.skipif(): | 29 # FIX: workaround for a bug in pytest.mark.skipif(): |
| 30 # https://github.com/pytest-dev/pytest/issues/568 | 30 # https://github.com/pytest-dev/pytest/issues/568 |
| 31 if not have_backend('postgresql'): | 31 if not have_backend('postgresql'): |
| 32 skip_postgresql = pytest.skip( | 32 skip_postgresql = pytest.mark.skip( |
| 33 'Skipping PostgreSQL tests: backend not available') | 33 reason='Skipping PostgreSQL tests: backend not available') |
| 34 else: | 34 else: |
| 35 skip_postgresql = lambda func, *args, **kwargs: func | 35 skip_postgresql = lambda func, *args, **kwargs: func |
| 36 | 36 |
| 37 | 37 |
| 38 class postgresqlOpener: | 38 class postgresqlOpener: |
