Anthony Sottile
4df529e5b9
Clean up __future__ and coding: in tests
2019-06-03 12:08:02 -03:00
Anthony Sottile
a91fe1fedd
pre-commit run pyupgrade --all-files
2019-06-03 12:08:02 -03:00
Anthony Sottile
3f1ec520fc
pre-commit run reorder-python-imports --all-files
2019-06-03 12:08:01 -03:00
Anthony Sottile
5034399d7a
pre-commit run fix-encoding-pragma --all-files
2019-06-03 12:08:01 -03:00
Bruno Oliveira
4d49ba6529
Drop Python 2.7 and 3.4 support
...
* Update setup.py requires and classifiers
* Drop Python 2.7 and 3.4 from CI
* Update docs dropping 2.7 and 3.4 support
* Fix mock imports and remove tests related to pypi's mock module
* Add py27 and 34 support docs to the sidebar
* Remove usage of six from tmpdir
* Remove six.PY* code blocks
* Remove sys.version_info related code
* Cleanup compat
* Remove obsolete safe_str
* Remove obsolete __unicode__ methods
* Remove compat.PY35 and compat.PY36: not really needed anymore
* Remove unused UNICODE_TYPES
* Remove Jython specific code
* Remove some Python 2 references from docs
Related to #5275
2019-06-02 14:39:11 -03:00
Anthony Sottile
dc75b6af47
Use fix-encoding-pragma pre-commit hook
2019-05-14 15:56:31 -07:00
Bruno Oliveira
7573747cda
Normalize all source encoding declarations
2019-05-14 19:42:44 -03:00
Daniel Hahler
f1f1862b19
Update testing/test_runner.py
2019-04-14 23:26:56 +02:00
Daniel Hahler
1dd5f088fa
test_pytest_exit_returncode: ignore ResourceWarnings
...
Fixes https://github.com/pytest-dev/pytest/issues/5088 .
2019-04-14 21:55:15 +02:00
Daniel Hahler
cc90bcce4c
wrap_session: restore old behavior for initstate=1
2019-04-03 05:09:21 +02:00
Daniel Hahler
08f3b02dfc
tests: fnmatch_lines: use list
...
For strings fnmatch_lines converts it into a Source objects, splitted on
newlines. This is not necessary here, and it is more consistent to use
lists here in the first place.
2019-03-23 11:36:18 +01:00
Anthony Sottile
16546b7342
Remove some dead code
...
- I wrote a thing: https://github.com/asottile/dead
- wanted to try it out, there's lots of false positives and I didn't look
through all the things it pointed out but here's some
2019-01-13 20:41:30 -08:00
Pedro Algarvio
be7eb22e88
Add test case for `importorskip` custom reason
2019-01-04 19:06:23 +00:00
Daniel Hahler
fc4aa27cae
Derive outcomes.exit.Exception from SystemExit instead of KeyboardInterrupt
...
This is required for properly getting out of pdb, where
KeyboardInterrupt is caught in py36 at least.
Ref: https://github.com/pytest-dev/pytest/issues/1865#issuecomment-242599949
2018-12-11 04:22:33 +01:00
Ronny Pfannschmidt
847eacea19
refactor CallInfo constructor magic into named constructor
2018-11-30 13:21:54 +01:00
Anthony Sottile
1bba0a9714
Deprecate `raises(..., 'code(as_a_string)')` / `warns(..., 'code(as_a_string)')
2018-11-29 09:34:51 -08:00
Ronny Pfannschmidt
88bf01a31e
fix #4386 - restructure construction and partial state of ExceptionInfo
2018-11-22 21:20:32 +01:00
Daniel Hahler
27dab4e05f
Fix CallInfo.__repr__ for unfinished call
...
Fixes https://github.com/pytest-dev/pytest/issues/3554
Ref: https://github.com/pytest-dev/pytest/pull/3560
Ref: https://github.com/pytest-dev/pytest/pull/3562
2018-11-13 08:51:43 +01:00
Anthony Sottile
2368fbb63c
Apply reorder-python-imports to all files
2018-10-25 00:01:29 -07:00
Jose Carlos Menezes
766d2daa06
Update returncode exit test to check exitstatus returrned from test session
2018-10-14 16:41:16 -03:00
Jose Carlos Menezes
ce55dcf64c
Add test for calling pytest.exit with statuscode
...
It checks that a SystemError was raised and the SystemError code
is the same as the returncode argument.
2018-10-14 12:29:19 -03:00
Bruno Oliveira
5436e42990
Use pytest.fail(..., pytrace=False) when treating user errors
...
This prevents an enormous and often useless stack trace from showing
to end users.
Fix #3867
Fix #2293
2018-10-10 19:16:53 -03:00
Ronny Pfannschmidt
cc6eb9f83c
move test reports to own file
2018-06-26 22:09:15 +02:00
Anthony Sottile
cbaa7dd56a
Upgrade pre-commit hooks except pyupgrade
2018-06-26 06:35:27 -07:00
Bruno Oliveira
41125968d9
Check the exception matches the message for completeness
2018-06-11 20:33:13 -03:00
Bruno Oliveira
4fd66e8a42
Run black on test file
2018-06-11 20:32:08 -03:00
Guoqiang Zhang
a888bf182e
Continue to call finalizers in the stack when a finalizer in a former scope raises an exception
2018-06-11 18:01:18 -04:00
Ronny Pfannschmidt
703e4b11ba
run black
2018-05-23 16:48:46 +02:00
Bruno Oliveira
ba407b5eb6
Clear sys.last_* attributes before running an item
...
Otherwise we will keep the last failed exception around forever
Related to #2798
2018-04-04 20:36:07 -03:00
Bruno Oliveira
aff463a3c4
Merge remote-tracking branch 'upstream/master' into features
2018-01-27 12:28:43 -02:00
Bruno Oliveira
b68b80aec9
Add new pytest_runtest_logfinish hook
...
Fix #3101
2018-01-09 22:17:39 -02:00
Anthony Sottile
bd1d17e8de
Replace py.std with stdlib imports
2018-01-09 12:44:10 -08:00
Anthony Sottile
205e29d843
Remove unnecessary `# noqa` comments.
...
Commit automated with https://github.com/asottile/yesqa
2017-12-22 08:29:48 -08:00
Bruno Oliveira
983a09a2d4
Merge remote-tracking branch 'upstream/master' into merge-master-into-features
2017-11-10 18:33:02 -02:00
Bruno Oliveira
03829fde8a
Fix linting E741: ambiguous variable name
2017-11-04 13:59:10 -02:00
Bruno Oliveira
3dc0da9339
Remove __multicall__ warning and usages in testing
...
pluggy>=0.5 already warns about those
2017-09-01 18:53:06 -03:00
Ronny Pfannschmidt
be401bc2f8
fix linting issues
2017-07-28 18:27:59 +02:00
Ronny Pfannschmidt
06a49338b2
make Test Outcomes inherit from BaseException instead of exception
...
fixes #580
2017-07-28 15:28:51 +02:00
Bruno Oliveira
26ee2355d9
Merge remote-tracking branch 'upstream/features' into fix-flake8-errors
2017-07-19 17:09:05 -03:00
Bruno Oliveira
2d4f1f022e
Introduce PYTEST_CURRENT_TEST environment variable
...
Fix #2583
2017-07-19 10:01:50 -03:00
Bruno Oliveira
7b1870a94e
Fix flake8 in features branch
2017-07-17 21:16:14 -03:00
Andras Tim
5ae59279f4
Fixed E704 flake8 errors
...
multiple statements on one line (def)
2017-07-17 01:44:23 +02:00
Andras Tim
b840622819
Fixed E302 flake8 errors
...
expected 2 blank lines, found 0
2017-07-17 01:44:23 +02:00
Andras Tim
195a816522
Fixed E265 flake8 errors
...
block comment should start with ‘# ‘
2017-07-17 01:44:22 +02:00
Andras Tim
8f3eb6dfc7
Fixed E261 flake8 errors
...
at least two spaces before inline comment
2017-07-17 01:44:22 +02:00
Andras Tim
617e510b6e
Fixed E231 flake8 errors
...
missing whitespace after ‘,’, ‘;’, or ‘:’
2017-07-17 01:44:22 +02:00
Andras Tim
4b22f270a3
Fixed E226 flake8 errors
...
missing whitespace around arithmetic operator
2017-07-17 01:44:22 +02:00
Andras Tim
4b20b9d8d9
Fixed E123 flake8 errors
...
closing bracket does not match indentation of opening bracket’s line
2017-07-17 01:28:16 +02:00
Andras Tim
6af2abdb53
Fixed flake8 warnings
...
W191 indentation contains tabs
W292 no newline at end of file
W293 blank line contains whitespace
W391 blank line at end of file
2017-07-17 01:28:16 +02:00
Bruno Oliveira
46d157fe07
Fix collection report when collecting a single test item
2017-06-03 20:39:53 -03:00
Bruno Oliveira
42a5d6bdfa
Add __future__ imports to all pytest modules
...
This prevents silly errors from creeping in Python 2 when testing in Python 3
2017-03-16 22:45:40 -03:00
Michal Wajszczuk
fb0b90646e
New-style classes implemented for python 2.7 - #2147
2017-02-16 20:28:17 +01:00
Bruno Oliveira
1eb5a690d4
Fix flake8 E305 and E306 errors
...
These errors started to appear with flake8-3.1.1, while they don't appear with
version 3.1.0 (weird).
2016-11-20 18:59:15 -02:00
Bruno Oliveira
63dc71c57e
Fix regression when using importorskip at module level
...
Fix #1822
2016-08-19 18:21:25 -03:00
Bruno Oliveira
ff296fd541
Add capstdout and capstderr attrs to TestReport
...
Related to #1790
2016-08-03 21:49:43 -03:00
Bruno Oliveira
08002ab75a
Add longreprtext property to TestReport objects
...
Related to #1790
2016-08-03 21:49:28 -03:00
Bruno Oliveira
c2864aba3d
Merge branch 'master' into merge-master
...
# Conflicts:
# AUTHORS
# CHANGELOG.rst
# _pytest/monkeypatch.py
# _pytest/python.py
2016-07-25 19:06:29 -03:00
Tom Viner
42adaf5a61
Fix #1210 display msg for early calls to exit
2016-07-24 14:16:34 +02:00
Bruno Oliveira
ff8fb4950e
setup_* and teardown_* functions argument now optional
...
setup_module, setup_function and setup_method
extra argument are now optional and may be omitted.
Fix #1728
2016-07-14 23:41:40 -03:00
Bruno Oliveira
458ecae1df
Replace all usages of "pytest_funcarg__" for @pytest.fixture
2016-07-11 22:21:52 -03:00
Omar Kohl
d81f23009b
Raise CollectError if pytest.skip() is called during collection
...
pytest.skip() must not be used at module level because it can easily be
misunderstood and used as a decorator instead of pytest.mark.skip, causing the
whole module to be skipped instead of just the test being decorated.
This is unexpected for users used to the @unittest.skip decorator and therefore
it is best to bail out with a clean error when it happens.
The pytest equivalent of @unittest.skip is @pytest.mark.skip .
Adapt existing tests that were actually relying on this behaviour and add a
test that explicitly test that collection fails.
fix #607
2016-06-24 20:56:21 +02:00
Guyzmo
accd962c9f
Fixed issue shadowing error when missing argument on teardown_method
...
When the method argument is missing on teardown_method, the traceback is
100% internal to pytest, which with default options get pruned. Then
that traceback is empty, leading to a new exception as a traceback shall
not be empty.
This PR fixes that issue by pushing back the last stack on the
traceback, when the stacktrace is empty after pruning. Then the output
is still pruned, but gives meaningful information with the item where it
failed on the stack.
* fixes issue #1604
Signed-off-by: Guyzmo <guyzmo+github@m0g.net>
2016-06-12 03:45:24 +02:00
Bruno Oliveira
5d4703852e
Add test when using native strings with non-ascii chars
2016-03-05 19:34:15 -03:00
Bruno Oliveira
24d3e01548
pytest.fail with non-ascii characters raises an internal pytest error
...
Fix #1178
2016-03-05 16:09:01 -03:00
Ryan Wooden
d98d655094
Simplify IndexError test.
2016-02-26 08:25:49 -04:00
Anatoly Bubenkov
cf9a09e988
catch IndexError exceptions when getting exception source location
2016-02-26 08:18:12 -04:00
Bruno Oliveira
a912d3745b
Moved py.code code over to py.test
...
Fix #103
2016-01-25 23:18:04 -02:00
Michael Droettboom
a0cefb3213
Use inspect.signature instead of inspect.getargspec
2015-09-16 06:33:53 -04:00
Bruno Oliveira
d7d418cd47
Fix forked_run_report in pytest.xdist 1.13
2015-08-20 21:17:27 -04:00
Bruno Oliveira
2ffd37b816
return non-zero exit code if no tests are collected
...
Fix #812
Fix #500
2015-08-18 07:35:02 -03:00
Eric Hunsberger
3cd19a7e45
Use monkeypatch for setting modules in tests
...
Instead of directly setting `sys.modules`. This ensures that they
get removed at the end of the test.
2015-07-24 12:34:06 -04:00
Eric Hunsberger
d104487282
importorskip: Allow non-integer version strings
...
Use `pkg_resources.parse_version` to parse version strings.
This can handle 'dev', 'rc', alpha and beta version strings,
among others.
2015-07-24 12:34:06 -04:00
Almar Klein
a9b7de8bf0
address reviewer comments
2015-03-21 17:26:23 +01:00
Almar Klein
0fc75c9622
Storing sys.last_traceback: test, docs and changelog
2015-03-21 17:06:24 +01:00
Floris Bruynooghe
39a297afe6
Improve test by also matching expected output
2014-08-30 21:57:01 +01:00
Floris Bruynooghe
98dcd764bc
Depend on newer version of py
...
This fixes issue560, a test for which is included here as well.
2014-08-14 23:23:04 +01:00
holger krekel
4622c28ffd
setupstate.addfinalizer(): fix docstring and remove related unit test not covering functional reality
2014-01-26 12:44:21 +01:00
Jurko Gospodnetić
9fb2079458
replace py.test module references with pytest
...
The only remaining 'py.test' references are:
* those referring to the 'py.test' executable
* those in code explicitly testing py.test/pytest module compatibility
* those in old CHANGES documentation
* those in documentation generated based on external data
* those in seemingly unfinished & unmaintained Japanese documentation
Minor stylistic changes and typo corrections made to documentation next to
several applied py.test --> pytest content changes.
2014-01-18 12:31:33 +01:00
holger krekel
5dbf4fc0c2
fix importorskip test
2013-12-03 09:40:40 +01:00
holger krekel
fc073cb81c
fixed version comparison in pytest.importskip(modname, minverstring)
2013-11-21 13:53:04 +01:00
holger krekel
49119e31bf
fix py25 compat
2013-11-21 12:31:22 +01:00
Floris Bruynooghe
6686c67a41
Re-raise the first exception instead of the last
...
This will make more sense if multiple fixtures depend on each other.
It would be better if all exceptions could be shown however.
Also depend on python 2.5+ exception hierarchy and use sys module
directly.
2013-11-21 01:15:24 +00:00
Floris Bruynooghe
72752165df
Ensure all finalizations are run when one fails
...
Fixes issue287.
2013-11-19 17:26:18 +00:00
holger krekel
8ac5af2896
fix flakes issues and make --flakes run part of tox runs
2013-10-12 15:39:22 +02:00
holger krekel
94ee37cdb3
- fix issue181: --pdb now also works on collect errors. This was
...
implemented by a slight internal refactoring and the introduction
of a new hook ``pytest_exception_interact`` hook.
- fix issue341: introduce new experimental hook for IDEs/terminals to
intercept debugging: ``pytest_exception_interact(node, call, report)``.
2013-09-06 11:56:04 +02:00
holger krekel
c3fcf4d928
show more info if the test fails
2013-09-05 22:22:14 +02:00
holger krekel
517d498285
fix issue169: respect --tb=style with setup/teardown errors as well.
2013-09-05 15:43:19 +02:00
holger krekel
9d107523a1
py3 fixes
2013-02-04 16:07:51 +01:00
Ronny Pfannschmidt
570688f701
ensure OutcomeExceptions like skip/fail have initialized exception attributes
2013-01-27 02:06:19 +01:00
Ronny Pfannschmidt
bf5b226474
fix issue 188 - ensure sys.exc_info on py2 is clear before calling into a test
2012-09-15 15:20:49 +02:00
holger krekel
227d847216
fix problem with unicode in writing failure representations to terminal, thanks ThomasWaldmann
2012-06-24 16:42:31 +02:00
Ronny Pfannschmidt
5263656df6
kwarg support for reports, so xdist can deserialized extended reports
2012-01-20 19:50:45 +01:00
holger krekel
fa6d5bd15b
work around an apparent python2.4/python2.5 bug with subprocess.Popen,
...
causing jenkins failures. Apparently "os.environ.popitem(name, None)"
is not the same as::
try:
del os.environ[name]
except KeyError:
pass
2011-12-28 15:49:13 +00:00
holger krekel
e21202b730
fix Jenkins test failures
2011-12-27 21:03:15 +00:00
holger krekel
c4fe622b82
fix issue93 - avoid "delayed" teardowns for distributed testing by
...
simplifying handling of teardowns.
2011-12-02 21:00:19 +00:00
holger krekel
a5e7b2760d
fix issue90 - perform teardown after its actual test function/item. This is implemented by modifying the runtestprotocol to remember "pending" teardowns and call them before the setup of the next item.
2011-11-18 16:01:29 +00:00
holger krekel
539f828cdd
also accept non-pytrace pytest.fail() call in setup/teardown methods
2010-11-24 16:43:55 +01:00
holger krekel
695bffc83d
refine unittest support to also work with twisted trial test cases better by
...
introducing a slightly hackish way to report a failure upstream
2010-11-23 15:42:23 +01:00
holger krekel
a698465487
streamline docs, especially use "import pytest" and "pytest.*" in python code examples instead of "import py" and "py.test.*".
2010-11-17 22:12:16 +01:00
holger krekel
82ba645a2e
fix skip reporting over distributed testing. if we have a "skip" report
...
rep.longrepr will now be a 3-tuple (path, lineno, message)
2010-11-13 21:03:28 +01:00