Eric Hunsberger
52b4eb6c46
Added `warns` to assert warnings are thrown
...
Works in a similar manner to `raises`, but for warnings instead
of exceptions. Also refactored `recwarn.py` so that all the
warning recording and checking use the same core code.
2015-07-30 23:28:32 -04:00
jakubo
e8f4819876
Test file run twice fails if it contains marked class #683
2015-07-26 12:15:29 +02:00
Bruno Oliveira
df29120abe
Merge branch 'pytest-2.7'
...
Conflicts:
_pytest/config.py
_pytest/genscript.py
_pytest/mark.py
tox.ini
2015-07-23 22:35:51 -03:00
Bruno Oliveira
ce96973ed5
Merge pull request #864 from pytest-dev/consider-color-yes-everywhere
...
Consider --color option in more places which deal with TerminalWriters
2015-07-23 08:03:52 -03:00
Bruno Oliveira
31cfbac1f4
Fix autouse fixtures defined in a TestCase subclass
2015-07-20 19:28:54 -03:00
Anatoly Bubenkov
6af7172204
Merge branch 'pytest-2.7'
2015-07-19 15:25:04 +02:00
Bruno Oliveira
2f7d0f8bd9
Consider --color option in more places which deal with TerminalWriters
2015-07-18 16:39:55 -03:00
Bruno Oliveira
a7b4ed89da
Use functools.partial name explicitly and simplify the code a bit as asked in review
2015-07-16 20:37:04 -03:00
Bruno Oliveira
dcdc823dd2
Support for tests created with functools.partial
...
Fix #811
2015-07-16 20:37:03 -03:00
Bruno Oliveira
5ec2a17f08
--fixtures only shows fixtures from first file
...
Fix #833
2015-07-12 17:32:39 -03:00
Bruno Oliveira
0ee3ee7333
Add syntax highlighting to missing snippets in the documentation and other fixes
...
- Add explicit "code-block" for sessions without syntax highlight
- Moved Metafunc documentation to the class docstring and reused that in the
docs;
2015-07-09 21:50:38 -03:00
holger krekel
ee40ea5f6d
Merge branch 'pytest-2.7'
...
Conflicts:
AUTHORS
_pytest/__init__.py
setup.py
testing/conftest.py
tox.ini
2015-06-23 16:49:05 +02:00
Bruno Oliveira
eb73db56c7
Fix issue where pytest.raises() doesn't always return Exception instance in py26
...
Fixes #767
2015-06-19 07:46:47 -03:00
Bruno Oliveira
b40f760cc3
Change links from bitbucket to GitHub
2015-06-15 18:28:31 -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
5ee7ee0850
adapt pytest to using pluggy (current master)
...
--HG--
branch : pluggy1
2015-04-29 16:40:51 +02:00
holger krekel
4e116ed503
make pytest_plugin_registered a historic hook
...
--HG--
branch : more_plugin
2015-04-25 13:38:30 +02:00
holger krekel
2f8a1aed6e
properly perform hook calls with extra methods
...
--HG--
branch : more_plugin
2015-04-25 11:29:11 +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
Floris Bruynooghe
31af381c56
Merged in hpk42/pytest-patches/prefer_installed (pull request #275 )
...
change test module importing behaviour to append to sys.path
2015-04-21 10:47:33 +01:00
holger krekel
0b361c62c8
Merged in getsourcelines-error-issue-553-pytest2.7 (pull request #273 )
...
Handle inspect.getsourcelines failures in FixtureLookupError
--HG--
branch : pytest-2.7
2015-04-17 22:31:55 +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
holger krekel
173bd13ece
backport Y->y fix from floris
...
--HG--
branch : pytest-2.7
2015-04-17 11:57:09 +02:00
Bruno Oliveira
15328c04eb
Handle inspect.getsourcelines failures in FixtureLookupError
...
Fixes #553
--HG--
branch : getsourcelines-error-issue-553-pytest2.7
2015-04-15 19:31:22 -03:00
Floris Bruynooghe
c7a60af666
Use capital Y as the tests look for that
2015-04-13 09:08:10 +01:00
holger krekel
3ed3e51997
fix issue660: properly report fixture scope mismatches independent
...
from fixture argument ordering.
--HG--
branch : issue660
2015-04-01 18:42:48 +02:00
Anatoly Bubenkov
ce95437dee
merge with default
...
--HG--
branch : issue463
2015-03-23 20:41:27 +01:00
Brianna Laugher
43e4fcf6dd
Raise specific MarkerError rather than generic ValueError
...
--HG--
branch : issue463
2015-03-23 20:01:58 +01:00
tigeraniya
65ca554230
duplicate assignment
2015-03-23 20:47:34 +05:30
Brianna Laugher
deb163d237
Change string format syntax from {} to {0} for py2.6
...
--HG--
branch : issue463
2015-03-21 23:57:06 +01:00
Brianna Laugher
6f81602ba2
Use hasattr instead of try/except
...
--HG--
branch : issue463
2015-03-21 23:30:13 +01:00
Brianna Laugher
ac17f20d98
#463
...
Raise a ValueError early if user misspells 'parametrize' as 'parameterize'.
--HG--
branch : issue463
2015-03-21 23:06:25 +01:00
Bruno Oliveira
eead0365b5
Merged in parametrized-fixture-override (pull request #257 )
...
allow to override parametrized fixtures with non-parametrized ones and vice versa
2015-03-12 09:40:56 -03:00
Daniel Hahler
5d6b0a59c0
Strip docstrings in output with `--fixtures`
...
Fixes https://bitbucket.org/pytest-dev/pytest/issue/550 .
--HG--
branch : strip-docstrings-from-fixtures
2015-03-04 17:00:24 +01:00
Anatoly Bubenkov
33c2a3a3e5
make loop more readable
...
--HG--
branch : parametrized-fixture-override
2015-03-02 08:55:57 +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
Anatoly Bubenkov
060609317a
allow to override parametrized fixtures with non-parametrized ones and vice versa
...
--HG--
branch : parametrized-fixture-override
2015-03-01 13:54:43 +01:00
Ronny Pfannschmidt
1e6e373913
Merged in issue616 (pull request #252 )
...
fix issue616 - conftest visibility fixes.
2015-02-28 10:02:58 +01:00
holger krekel
c3ca44b46f
change links to go to the new pytest-dev bitbucket team's repo location
...
--HG--
branch : docs_community
2015-02-27 12:27:40 +01:00
holger krekel
d73e689991
fix issue616 - conftest visibility fixes. This is achieved by
...
refactoring how nodeid's are constructed. They now are always
relative to the "common rootdir" of a test run which is determined by
finding a common ancestor of all testrun arguments.
--HG--
branch : issue616
2015-02-26 21:56:44 +01:00
Ronny Pfannschmidt
5941b2e071
fix issue 655: crude workarounds around python2/3 exception leaks
2015-01-09 19:55:49 +01:00
holger krekel
959395b796
fix py26 compatibility
2014-10-27 10:02:15 +01:00
Floris Bruynooghe
8d19ccb56f
Merged in pfctdayelise/pytest/issue351 (pull request #161 )
...
Fixes issue351: Add ability to specify parametrize ids as a
callable, to generate custom test ids. + tests, docs
Hg branch merge
2014-10-22 23:18:01 +01:00
Bruno Oliveira
0b620c304b
checking that option contains glob characters before calling fnmatch
...
requested during code review
--HG--
branch : python-classes-glob
2014-10-20 18:36:31 -02:00
Bruno Oliveira
b928928942
added support for glob-style patterns to python_classes and python_functions config options
...
fixes #600
--HG--
branch : python-classes-glob
2014-10-16 19:27:10 -03: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
6ab36592ea
docs for "pytest_addhooks" hook. Thanks Bruno Oliveira.
...
updated plugin index docs. Thanks Bruno Oliveira.
fix issue557: with "-k" we only allow the old style "-" for negation
at the beginning of strings and even that is deprecated. Use "not" instead.
This should allow to pick parametrized tests where "-" appeared in the parameter.
2014-10-06 14:26:03 +02:00
holger krekel
1d10db4bab
cleanup core collection of python methods and remove unncessary cache
2014-10-06 14:06:17 +02:00
Dj Gilcrease
2f141bbc54
change the defaults from a tuple to a list so I can use config.addinivalue_line("python_files", "...") to append new options in my own plugins
...
--HG--
branch : dgilcrease/change-defaults-from-a-tuple-to-a-list-1412285169250
2014-10-02 21:32:35 +00:00
holger krekel
3de715ec13
refine internal management of plugins and conftest files
2014-10-01 12:19:11 +02:00
holger krekel
b6dcfd4377
fix conftest related fixture visibility issue: when running with a
...
CWD outside a test package pytest would get fixture discovery wrong.
Thanks to Wolfgang Schnerring for figuring out a reproducable example.
--HG--
branch : conftest-nodeid
2014-09-15 12:44:16 +02:00
holger krekel
ba878c6d9d
add changelog entry and refactor unittest.mock.patch fix a bit
2014-07-28 10:34:01 +02:00
Nicolas Delaby
2e55c4ba61
unittest.mock from stdlib should come last
...
--HG--
branch : mock-unittest-252
2014-07-27 12:11:39 +02:00
Nicolas Delaby
e6ad6e02d2
Handle also unittest.mock
...
Move handling in dedicated function to isolate its logic
--HG--
branch : mock-unittest-252
2014-07-27 10:43:50 +02:00
Floris Bruynooghe
1641d00cb1
Merge default
2014-07-18 01:34:08 +01: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
Brianna Laugher
4e35c00ab0
issue351: Add ability to specify parametrize ids as a callable, to generate custom test ids. + tests, docs
...
--HG--
branch : issue351
2014-04-17 15:08:49 -04:00
Floris Bruynooghe
c46e2cbbc7
Cache exception raised in fixtures according to their scope
...
Without this if a session scoped fixture fails it's setup it will
be re-tried each time it is requested. Especially in case of
skip or failure exceptions this can be undesirable, but caching
makes sense for all exceptions.
2014-04-15 22:22:41 -04:00
Floris Bruynooghe
faba432996
Improve error message if pytest.raises is used wrongly
...
If the type is not checked then an incomprehensible error will occur
later. This enforces the type and raies the same exception/msg as
CPython does in that case.
Docstring unmodified, just re-justified for pep8 compat.
2014-04-14 18:09:10 -04:00
holger krekel
15af7e1662
fix tests to properly fail on failed collectiosn (which was hiding an error)
...
and also implement __test__=False for test functions properly.
--HG--
branch : nose_test_attr
2014-04-10 13:37:39 +02:00
holger krekel
494be731e3
support nose-style ``__test__`` attribute on modules, classes and
...
functions, including unittest-style Classes. If set to True, the
test will not be collected.
--HG--
branch : nose_test_attr
2014-04-10 12:46:27 +02:00
holger krekel
f91049cec9
fix issue473: work around mock putting an unbound method into a class
...
dict when double-patching.
--HG--
branch : issue473
2014-04-08 12:50:13 +02:00
holger krekel
ef7cb47b1e
fix issue498: if a fixture finalizer fails, make sure that the fixture
...
is still invalidated.
--HG--
branch : issue498
2014-04-07 13:29:57 +02:00
Jurko Gospodnetić
98ea8fae32
break reference cycles caused by storing local reference to exception info
...
Such reference cycles unnecessarily cause Python interpreter not to garbage
collect the objects referenced in those cycles as soon they could be collected,
and in turn cause the tests to use more memory than is strictly necessary.
--HG--
branch : break_ExceptionInfo_reference_cycles
2014-04-02 15:34:36 +02:00
holger krekel
3b8935c533
remove dupped_stdout logic and related changes, also simplify pytest_runtest_* calls to not use a contextlib with-decorator anymore.
2014-04-01 15:03:17 +02:00
holger krekel
7b63fa5966
merge in current default
2014-03-27 13:57:54 +01:00
holger krekel
530cae9204
Merged in cgilling/pytest (pull request #123 )
...
Fix to work properly when @patch is used with new not equal to DEFAULT
2014-03-26 19:05:46 +01:00
Chris Gilling
e3b9382122
use sys.modules.get correctly and reference DEFAULT with respect to it
2014-03-26 09:36:02 -07:00
Chris Gilling
c3f4eb6d57
change try/except to sys.module.get and a conditional
2014-03-26 09:27:33 -07:00
holger krekel
9777703e03
- turn on capturing before early conftest loading and make terminal writer
...
use the original stream.
- avoid resetting capture FDs/sys.stdout for each test by keeping capturing
always turned on and looking at snapshotted capturing data during runtest
and collection phases.
2014-03-14 12:49:36 +01:00
holger krekel
24db492f53
warn if instances are callable and have a test name
2014-03-11 22:10:18 +01:00
Chris Gilling
3388d82c1c
Fix to work properly when @patch is used with new not equal to DEFAULT
...
also updated test_mock to include this situation
2014-03-03 10:36:59 -08:00
holger krekel
86284689a3
simplify loop which turns direct funcarg parametrization to indirect
2014-01-27 12:53:44 +01:00
Jurko Gospodnetić
75c124ea17
reword note on explicitly clearing local references to pytest.raises() results
...
Made it clearer that clearing such references is not mandatory and is only an
optional step which may help the Python interpreter speed up its garbage
collection.
--HG--
branch : document_ExceptionInfo_ref_cycle
2014-01-23 11:36:04 +01:00
Jurko Gospodnetić
ffffac27f9
document explicitly clearing local references to pytest.raises() results
...
pytest.raises() returns an ExceptionInfo object which, if a local reference is
made to it, forms a reference cycle:
ExceptionInfo
--> exception
--> stack frame raising the exception
--> current stack frame
--> current local variables
--> Exception Info
Such a reference cycle would then prevent any local variables in the current
stack frame, or any of its child stack frames involved in the same reference
cycle, from being garbage collected until the next reference cycle garbage
collection phase. This unnecessarily increases the program's memory footprint
and potentially slows it down.
This situation is based on a similar one described in the official 'try'
statement Python documentation for locally stored exception references.
--HG--
branch : document_ExceptionInfo_ref_cycle
2014-01-23 09:46:36 +01:00
Jurko Gospodnetić
657a395839
fix comment typos
2014-01-18 12:39:16 +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
Floris Bruynooghe
b820cf2e39
Fix docstring
...
This was copied from another paramterize call and I forgot to change
the parameters referred too.
2013-12-16 10:51:50 +00:00
holger krekel
b4797d6295
fix issue403 : allow same-name parametrized functions within a collector
2013-12-16 07:47:59 +01:00
holger krekel
c9195a0f45
fix py32 failures and remove random print from commit accident
2013-12-16 07:19:49 +01:00
holger krekel
ef023ebad3
merge
2013-12-16 07:01:58 +01:00
Floris Bruynooghe
0c737e3de0
Allow parameterised fixtures to give paramemter IDs
...
This is just like the markers etc already can do.
2013-12-15 22:15:15 +00:00
holger krekel
901f764825
merge
2013-12-14 14:00:47 +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
dd0da4643a
clarify that pytest.mark.parametrize() takes a list of argvalues and not just
...
arbitrary iterators. Addresses issue122.
2013-12-10 10:16:27 +01:00
holger krekel
7766526992
address issue122 -- explode "params" into a list in fixture function decorators
2013-12-09 10:48:15 +01:00
holger krekel
5c3d692008
some minor internal cleanup
2013-12-09 10:40:39 +01:00
holger krekel
ad2ac256de
speed up reorder for large higher-than-function-scoped parametrizations
2013-12-09 10:05:44 +01:00
holger krekel
66ffc5e0f8
backout allowing @pytest.fixture in front of pytest_funcarg__NAME functions.
...
It was introduced because of pylint warnings and it's probably better to
go for a pylint-pytest plugin that avoids also other warnings/issues.
2013-12-09 07:07:47 +01:00
holger krekel
e67047d629
remove unused cache argument for re-ordering items.
2013-12-07 21:00:33 +01:00
holger krekel
10edfa65dc
fix issue396 -- properly sort tests using class-scoped parametrization
...
also refix issue323 in a better way to avoid recursion for the fixture-grouping
algorithm alltogether.
2013-12-07 20:55:17 +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
holger krekel
4b9dbd3920
remove unused line
2013-12-05 14:40:50 +01:00
holger krekel
98c6ced46e
refactor and document parametrized sorting code.
2013-12-05 06:09:29 +01:00
holger krekel
817b175870
allow to use pytest.fixture decorator on old-style pytest_funcarg__NAME definitions.
2013-12-04 07:16:34 +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
holger krekel
d30ad3f5ce
fix reporting for @mock'd test functions
2013-12-03 11:23:22 +01:00
holger krekel
e31f40c2d0
fix ordering of finalizers of parametrized interdependent fixtures.
...
This fixes issue246 as reported. Thanks Ralph Schmitt for the
precise failure example.
2013-11-21 14:16:44 +01:00
holger krekel
2e90aaf7af
remove _fixturestack attribute now that we have a proper request->subrequest->subrequest chain.
2013-11-21 13:15:32 +01:00