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
hugovk
ef732fc51d
Remove code for unsupported Python versions
2017-10-10 08:54:56 +03:00
Bruno Oliveira
afe7966683
Fix call to outcome.get_result now that outcome.result is deprecated
2017-09-18 21:36:54 -03:00
Bruno Oliveira
9273e11f21
Merge branch 'master' into features
2017-09-07 13:59:10 -03: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
Bruno Oliveira
a993add783
Allow tests declared as @staticmethod to use fixtures
...
Fix #2699
2017-08-17 20:44:19 -03:00
Bruno Oliveira
0726d9a09f
Turn warnings into errors in pytest's own test suite
...
Fix #2588
2017-07-22 21:44:18 -03:00
Bruno Oliveira
7b1870a94e
Fix flake8 in features branch
2017-07-17 21:16:14 -03:00
Bruno Oliveira
4fd92ef9ba
Merge branch 'fix-flake8-issues' into features
2017-07-17 21:05:39 -03:00
Andras Tim
7248b759e8
Fixed E303 flake8 errors
...
too many blank lines (3)
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
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
cf97159009
Fixed E128 flake8 errors
...
continuation line under-indented for visual indent
2017-07-17 01:28:16 +02:00
Nathaniel Waisbrot
9b9fede5be
allow staticmethods to be detected as test functions
...
Allow a class method decorated `@staticmethod` to be collected as a test
function (if it meets the usual criteria).
This feature will not work in Python 2.6 -- static methods will still be
ignored there.
2017-06-29 07:44:36 -04:00
Bruno Oliveira
f3b359f5b8
Merge remote-tracking branch 'upstream/master' into merge-master-into-features
...
# Conflicts:
# _pytest/capture.py
# _pytest/compat.py
# _pytest/python.py
# testing/python/collect.py
# testing/test_mark.py
2017-05-03 19:04:53 -03:00
Kodi Arfer
dcefb287fc
Try not to assume a module's file extension is .py
2017-04-19 12:26:56 -07:00
Bruno Oliveira
58ac4faf0c
Fix exception formatting while importing test modules
...
Fix #2336
2017-03-29 14:43:13 -03:00
Bruno Oliveira
9f85584656
Merge remote-tracking branch 'upstream/features' into integrate-pytest-warnings
2017-03-20 19:59:05 -03:00
Bruno Oliveira
e5021dc9dc
Replace py.builtin.print_() calls by builtin print() function
2017-03-16 22:46:51 -03:00
Bruno Oliveira
78194093af
Improve warning representation in terminal plugin and fix tests
2017-03-16 21:57:32 -03:00
Bruno Oliveira
1e0cf5ce4d
Merge remote-tracking branch 'upstream/master' into merge-master-into-features
...
# Conflicts:
# AUTHORS
# CHANGELOG.rst
# _pytest/pytester.py
2017-03-10 15:54:05 -03:00
Michal Wajszczuk
fb0b90646e
New-style classes implemented for python 2.7 - #2147
2017-02-16 20:28:17 +01:00
Ran Benita
3a0a0c2df9
Ignore errors raised from descriptors when collecting fixtures
...
Descriptors (e.g. properties) such as in the added test case are
triggered during collection, executing arbitrary code which can raise.
Previously, such exceptions were propagated and failed the collection.
Now these exceptions are caught and the corresponding attributes are
silently ignored.
A better solution would be to completely skip access to all custom
descriptors, such that the offending code doesn't even trigger. However
I think this requires manually going through the instance and all of its
MRO for each and every attribute checking if it might be a proper
fixture before accessing it. So I took the easy route here.
In other words, putting something like this in your test class is still
a bad idea...:
@property
def innocent(self):
os.system('rm -rf /')
Fixes #2234 .
2017-02-07 14:27:34 +02: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
a1d446b8e8
Display traceback from Import errors using pytest's short representation
...
Also omit pytest's own modules and internal libraries (py and pluggy) in low verbosity
Fix #1976
2016-10-03 21:46:44 -03:00
Bruno Oliveira
7d66e4eae1
Display full traceback from Import errors when collecting test modules
...
Fix #1976
2016-10-03 20:47:44 -03:00
Bruno Oliveira
1a79137d04
Add originalname attribute to Function
...
Related to #1790
2016-08-03 22:56:12 -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
Roberto Polli
ab6aef1d1f
feature: default behavior now is to ignore duplicate paths specified from the command line. Use --keep-duplicates to retain duplicate paths.
2016-07-25 12:41:58 +02:00
Dmitry Dygalo
f7ad173fee
Fixed collection of classes with custom ``__new__`` method
2016-07-25 11:33:37 +02:00
Bruno Oliveira
458ecae1df
Replace all usages of "pytest_funcarg__" for @pytest.fixture
2016-07-11 22:21:52 -03:00
Ronny Pfannschmidt
8c49561470
split most fixture related code into own plugin
2016-07-09 20:36:00 +02:00
Omar Kohl
56855893ca
Raise CollectError if import test module fails
...
One of the reasons for failing to import the test module is invalid Python
identifiers in the full package path of the test module.
fix #1426
2016-04-23 13:50:48 +02:00
Bruno Oliveira
d8403d793f
Fix decoding issue while formatting SyntaxErrors during collection
...
This happens only in Python 2, as in Python 3 we receive
the "badline" in the exception is already properly encoded
Fix #578
2016-03-05 16:58:50 -03:00
Bruno Oliveira
5f90907509
Fix skip/xfail markers in parametrized arguments
...
Fix #1412
2016-02-25 19:13:09 -03:00
Bruno Oliveira
ee88679c54
Fix bug in strict xfail: test was not being actually called
2016-02-15 18:43:45 -02:00
Bruno Oliveira
a912d3745b
Moved py.code code over to py.test
...
Fix #103
2016-01-25 23:18:04 -02:00
aselus-hub
1216a27b44
added docstrign to inection collection test.
2015-12-10 15:19:08 -08:00
aselus-hub
74f7efd2a3
added line comparison that is pytest-sugar agnostic.
2015-12-10 15:10:55 -08:00
aselus-hub
34db8aed34
added verification that test actually passed.
2015-12-10 15:02:57 -08:00
aselus-hub
af54e09759
nit: fixed newline
2015-12-10 14:46:51 -08:00
aselus-hub
dfaeefd692
added test to verify injection.
2015-12-10 14:45:36 -08:00
Florian Bruhin
c790f7475e
Fix getting line number with nasty __getattr__.
...
When an object has a custom __getattr__ which always returns a non-int, we
tried to get compat_co_firstlineno from it and checked it was a integer, which
caused an exception if such a class is mistakenly collected.
If we still mistakenly collect such a class (which is likely to be something
other than a test), we now skip it with a warning (because it probably has an
__init__) instead of producing an error.
See #1204 .
2015-11-30 16:13:15 +01:00
Bruno Oliveira
311b0a9683
Fix situation where a traceback entry "path" returns a str object
...
Fix #1133
2015-10-16 20:18:14 -03:00
Michael Birtwell
a3bda59a30
collection: Prevent non-function callables from being collected
...
Fixes issue 331
previously to this change the collection code would issue a warning for
when ever it encountered a variable that looked like a test but wasn't a
function saying that it wouldn't collect it because it wasn't a function.
This fixes the logic so that if that warning is issued it really isn't
collected.
However previously special cases existed to support tests that were
created using functools.wraps and functools.partial. So the condition for
issuing that warning has been updated to take that in to account
Also try the old way of detecting functions just for proper integration
with mock.path in python 2.7 the get_real_func returned the unbound method
2015-10-12 22:23:18 +01:00
TomV
707226298a
issue1035 add test for classes setting __getattr__
2015-10-08 09:08:32 +01:00
Bruno Oliveira
d1e00f6e19
Detect dynamic code explicitly in filter_traceback
2015-09-30 17:32:49 -03:00
Bruno Oliveira
11f100813e
Fix internal error when filtering tracebacks where one entry was generated by an exec() statement
...
Fix #995
2015-09-29 22:29:43 -03:00
holger krekel
a62d12634c
revert importing test module behaviour to prepend by default
2015-09-16 22:12:20 +02:00
Ronny Pfannschmidt
cd475c7b27
minor flake8 fixes
2015-09-13 19:55:44 +02: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
Markus Unterwaditzer
41cef6f5f2
Don't skip fixtures that are substrings of params
...
Bug introduced with
https://bitbucket.org/pytest-dev/pytest/pull-requests/257/allow-to-override-parametrized-fixtures
Fix #736
2015-08-11 00:41:21 +02:00
Florian Bruhin
2ab4bf13ab
Document and test stacking of parametrize.
...
Closes #815 .
2015-07-26 14:39:13 +02:00
Jan Bednařík
f78d87ee38
Issue #751 - test.
2015-07-25 15:38:11 +02:00
Anatoly Bubenkov
6af7172204
Merge branch 'pytest-2.7'
2015-07-19 15:25:04 +02:00
Bruno Oliveira
dcdc823dd2
Support for tests created with functools.partial
...
Fix #811
2015-07-16 20:37:03 -03:00
holger krekel
bddc88f09e
adapt to pluggy naming, rename pytest.hookspec_opts to pytest.hookspec,s ame with hookimpl_opts
...
--HG--
branch : pluggy1
2015-05-06 10:08:08 +02:00
holger krekel
9aec5cd52d
use runpytest() instead of runpytest_inprocess if a test can run as subprocess as well
...
--HG--
branch : testrefactor
2015-04-28 12:05:08 +02:00
holger krekel
db5649ec6a
streamline pytester API majorly:
...
- integrate conftest into pytester plugin
- introduce runpytest() to either call runpytest_inline (default) or
runpytest_subprocess (python -m pytest)
- move testdir.inline_runsource1 to pdb tests
- strike some unneccessary methods.
- a new section "writing plugins" and some better pytester docs
--HG--
branch : testrefactor
2015-04-28 11:54:53 +02:00
holger krekel
a8afba054a
- refine lsof checking
...
- make runpytest() create an inline testing process instead of
a subprocess one
--HG--
branch : testrefactor
2015-04-28 11:54:46 +02:00
holger krekel
d3e363b97a
- make API between runpytest() and inline_run() more similar
...
- shift a number of tests to become inline_run() tests
--HG--
branch : testrefactor
2015-04-28 11:54:45 +02:00
holger krekel
424e5d1394
make test suite more tolerable against xdist causing warnings itself (which it does
...
currently)
--HG--
branch : plugtestfix
2015-04-27 15:06:47 +02:00
holger krekel
d2a5c7f99b
add documented hookimpl_opts and hookspec_opts decorators
...
so that one doesn't have to use pytest.mark or function-attribute setting anymore
--HG--
branch : more_plugin
2015-04-25 11:29:11 +02:00
holger krekel
5c8e5acf9d
change test module importing behaviour to append to sys.path
...
instead of prepending. This better allows to run test modules
against installated versions of a package even if the package
under test has the same import root. In this example::
testing/__init__.py
testing/test_pkg_under_test.py
pkg_under_test/
the tests will preferrably run against the installed version
of pkg_under_test whereas before they would always pick
up the local version.
--HG--
branch : prefer_installed
2015-04-17 22:25:35 +02:00
Anatoly Bubenkov
d083153548
fix typo
...
--HG--
branch : parametrized-fixture-override
2015-03-02 20:18:06 +01:00
Anatoly Bubenkov
c4623939af
support override of the parametrized fixture on the test level
...
--HG--
branch : parametrized-fixture-override
2015-03-01 15:15:37 +01:00
holger krekel
0253f7b8d5
remove all occurences of "__multicall__" on hook impls in pytest/*.
...
also simplify pytest_runtest_markereport hook in _pytest/skipping.py
while touching the code anyway.
2014-10-08 20:23:40 +02:00
holger krekel
07e76cbef2
fix issue364: shorten and enhance tracebacks representation by default.
...
The new "--tb=auto" option (default) will only display long tracebacks
for the first and last entry. You can get the old behaviour of printing
all entries as long entries with "--tb=long". Also short entries by
default are now printed very similarly to "--tb=native" ones.
2014-06-29 13:32:53 +02:00
schlamar
77e1f93ca1
Fixed pyflakes errors.
2014-03-14 14:25:36 +01:00
holger krekel
24db492f53
warn if instances are callable and have a test name
2014-03-11 22:10:18 +01:00
Anatoly Bubenkov
7b87f7b6b5
Paratrization overrides existing fixtures.
...
--HG--
branch : override-fixture-via-parametrization
2013-12-10 14:27:29 +01:00
holger krekel
426907eafb
radically simplify eq/neq with nodes by just using Pythons builtin "is" relationship.
...
The need for comparing two separately instantiated nodes seems to be historic
(related to an already-gone mode of pytest-xdist which would re-collect nodes)
and not actually needed anymore.
2013-12-07 16:39:53 +01:00
holger krekel
4f0879ff9b
refactor internal finalization mechanics such that all fixture arguments
...
in a test invocation will have a corresponding FixtureDef instance.
also fixes issue246 (again).
simplify parametrized fixture teardown by making it work lazy:
during the setup of a parametrized fixture instance any previously
setup instance which was setup with a different param is torn down
before setting up the new one.
2013-12-07 16:37:46 +01:00
Anatoly Bubenkov
0cfd873abe
implement index-based mechanizm for collection of parametrized tests
...
--HG--
branch : parametrize-hashable
2013-12-03 21:05:19 +01:00
James Lan
7210e443ee
Support multiple marks for individual parametrized argument set
...
--HG--
branch : multi-marks
2013-11-01 21:10:13 -07: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
d3c9927fee
fix regression reported by dstufft: regression when a 1-tuple ("arg",) is used
...
for specifying parametrization (the values of the parametrization were passed
nested in a tuple).
2013-10-02 08:08:26 +02:00
Anatoly Bubenkov
63a924b922
parametrize fails when values are unhashable - tests
...
--HG--
branch : parametrize-fails-when-values-are
2013-09-07 02:30:09 +02:00
holger krekel
8f24e10571
add changelog entry for anthon's hynek-fication of options,
...
and change the docs and tests to use the new style.
2013-08-01 17:32:19 +02:00
Ronny Pfannschmidt
0dd05023b8
fix issue 251 - report a skip instead of ignoring classes with init
2013-02-15 10:18:00 +01:00
Graham Horler
1d7c71884e
Remove check for "_" prefix on python functions (use python_functions)
...
(See IRC hpk 2012-11-27 14:56: after the python_functions customization
was introduced, it makes sense to disregard the preliminary "_" check)
2012-11-27 16:58:08 +00:00
holger krekel
ba9b27fcd3
fix issue215 - refactor test_python.py into multiple files:
...
- python/collect.py cotaining the core collection nodes
- python/fixture.py containing funcargs/fixture code
- python/metafunc.py generate_tests and metafunc usage
- python/raises.py the pytest.raises implementation
2012-11-02 16:04:57 +01:00