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
holger krekel
238b890d9b
avoid maintaining a fixturestack
2013-11-21 12:42:22 +01:00
holger krekel
bb5f1e8173
refactor internal FixtureRequest handling to avoid monkeypatching.
...
One of the positive user-facing effects is that the "request" object
can now be used in closures.
2013-11-21 12:21:52 +01:00
holger krekel
0a8b27ff49
fix ordering when mock.patch or other standard decorator-wrappings
...
are used with test methods. This fixues issue346. Thanks to
Ronny Pfannschmidt and Donald Stufft for helping to isolate it.
2013-11-19 23:22:27 +01:00
Anatoly Bubenkov
e2c4730e17
correctly check for fixturedef when merging
...
--HG--
branch : fix-fixturedef-merge
2013-11-13 18:25:55 +01:00
Anatoly Bubenkov
846cf781a1
use deepest fixturedef for fixture closure
...
--HG--
branch : multi-level-fixture-deps-override
2013-11-12 13:45:36 +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
bc8c4b3ebd
pytestconfig is now session-config as it is the same object during the
...
whole test run. Fixes issue370
2013-10-21 13:33:36 +02: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
holger krekel
de35b077a2
disallow yield in non-yield-fixtures for now. This is an incompataibility but we want to prepare for possibly merging fixture and yield_fixture some day.
2013-09-30 13:56:54 +02:00
holger krekel
086d4e4ced
strike keyword argument in favour of new pytest.yield_fixture decorator
2013-09-30 13:42:39 +02:00
holger krekel
da7133d201
fix some tests wrt to expecting output now that pytest does no
...
introduce unwanted "buffering" on "-s" calls.
2013-09-27 12:28:34 +02:00
holger krekel
3ab9b48782
introduce yieldctx=True in the @pytest.fixture decorator. Refactor tests and docs.
2013-09-26 12:57:21 +02:00
holger krekel
7d86827b5e
ref #322 cleanup all teardown calling to only happen when setup succeeded.
...
don't use autouse fixtures for now because it would cause a proliferation
and overhead for the execution of every test. Rather introduce a
node.addfinalizer(fin) to attach a finalizer to the respective node
and call it from node.setup() functions if the setup phase succeeded
(i.e. there is no setup function or it finished successfully)
2013-08-02 09:52:40 +02:00
Floris Bruynooghe
2cdb54225c
Fix issue 336: autouse fixtures in plugins work again
...
When an autouse fixture in a plugin was encountered None was stored as nodeid
where it used to be ''. This broke the lookup of autouse fixtures later on.
This also adds another test for the normal fixture ordering which was slightly
wrong: a fixture without location was always added at the front of the fixture
list rather then at the end of the fixtures without location but before the
fixtures with location.
2013-08-01 18:58:28 +01:00
Mathieu Agopian
99783b6fba
refs #335 : clarify that the exception info returned by pytest.raises is a py.code.ExceptionInfo()
2013-08-01 11:19:47 +02:00
holger krekel
1280add047
SO-17664702: call fixture finalizers even if the fixture function
...
partially failed (finalizers would not always be called before)
2013-07-17 10:29:11 +02:00
holger krekel
60a53c75a6
some python2.5/3.3 fixes of Brianna's parametrize improvements
2013-07-16 15:43:20 +02:00
holger krekel
af7db5195b
Merged in pfctdayelise/pytest (pull request #38 )
...
A couple of improvements to parametrize
2013-07-16 15:30:48 +02:00
Anatoly Bubenkov
589138ea71
re #320 fallback to test scope if the class-scoped fixture is used in non-class-based test function
...
--HG--
branch : 320-class-scoped-fixture-caching-is-broken-if
2013-07-06 21:30:24 +02:00
Floris Bruynooghe
e6a063ee47
Solve fixture ordering when loading plugins from conftest
...
Conftests are plugins with a location attached to them while other
plugins do not have a location. When ordering fixturedefs those from
plugins without a location need to be listed first.
2013-07-06 17:56:54 +02:00
holger krekel
c4c966683c
fix issue323 - parametrize() of many module-scoped params
2013-06-28 12:57:10 +02:00
holger krekel
469830fffa
some internal renaming to make more sense of the sorting algo,
...
no semantical changes.
2013-06-28 12:54:10 +02:00
variedthoughts
3bcd3317ad
support unittest setUpModule/tearDownModule
2013-06-20 14:43:42 +00:00
Brianna Laugher
345b8391c4
A couple of improvements to parametrize
...
- When not specifying ids, let None and bools use their native string form (like str, int, float) rather than obfuscated form used for objects
- When specifying ids, explicitly raise a ValueError if a different number of ids are specified compared to the test cases
- Add tests for both these items.
2013-05-29 12:59:47 +10:00
holger krekel
c294a417bd
allow to specify parametrize inputs as a comma-separated string
...
add Wouter to changelog and to authors
2013-05-28 10:32:54 +02:00
holger krekel
8a0a18e9b3
- add Brianna (@pfctdayelise ) to changelog and contributors
...
- fix some broken tests on py32/py33 (related to issue308 merge)
- re-format docstrings
-
2013-05-22 15:24:58 +02:00
Brianna Laugher
ee65ca10f4
issue #308
...
address some comments by @hpk42 on 0b9d82e :
- move tests into their own class, rename
- add test showing metafunc.parametrize called in pytest_generate_tests rather than as decorator
- add test and fix single-argname case
- convert two loops into one in parametrize()
also
- renamed 'input' to 'n', since 'input' is a built-in
2013-05-20 12:52:20 +10:00
Brianna Laugher
5373a63008
issue #308
...
first attempt, mark individual parametrize test instances with other marks (like xfail)
2013-05-17 18:46:36 +10:00
holger krekel
56aa9962fc
allow fixture functions to be implemented as context managers:
...
@pytest.fixture
def myfix():
# setup
yield 1
# teardown
2013-05-05 14:48:37 +02:00
holger krekel
c5f9958783
never consider a fixture function for test function collection
2013-04-29 10:31:51 +02:00
holger krekel
b2cb93e06d
allow re-running of a test item (as exercised by the
...
pytest-rerunfailures plugins) by re-initializing and removing
request/funcargs information in runtestprotocol() - which is a slightly
odd place to add funcarg-related functionality but it allows all
pytest_runtest_setup/teardown hooks to properly see a valid
request/funcarg content on test items.
2013-04-22 10:35:48 +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
holger krekel
d0e18ac63f
issue250 unicode/str mixes in parametrization names and values now works
2013-02-12 23:30:34 +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
b97de57ebe
improve docstring for metafunc.parametrize()
2012-11-21 10:13:44 +01:00
holger krekel
f263f54889
make yielded tests participate in the autouse protocol
2012-11-19 22:17:59 +01:00
holger krekel
d66ff7e63e
fix autouse invocation (off-by-one error), relates to issue in moinmoin test suite
2012-11-19 22:17:55 +01:00
holger krekel
2ef350aede
getting rid of redundant "active" attribute
2012-11-19 12:42:10 +01:00
holger krekel
b940ed11a0
fix issue226 - LIFO ordering for fixture-added teardowns
2012-11-16 10:03:51 +01:00
holger krekel
5b64b0130d
fix typo (thanks Thomas Waldmann)
2012-11-14 09:40:01 +01:00
holger krekel
dba2a8bc64
fix issue217 - to support @mock.patch with pytest funcarg-fixtures, also split out python integration tests into python/integration.py and fix nose/mark tests
2012-11-06 11:04:11 +01:00
holger krekel
ca281b7c1b
remove unused code
2012-11-02 16:04:56 +01:00
holger krekel
fb173a97a8
extended - fix issue214 - ignore attribute-access errors with objects in test modules that can blow up (for example flask's request object)
2012-10-31 17:00:55 +01:00
Ronny Pfannschmidt
e7e5ee805f
fix issue 214 - gracefully handle proxy objects that look like fixtures
2012-10-31 17:00:43 +01:00
holger krekel
fce13c3e46
re-allow to parametrize with values that don't support __eq__ (closes issue213)
2012-10-28 14:52:43 +01:00
holger krekel
05c86aeb28
make sure ihook uses a node's fspath - important for hooks
...
e.g. during a Module's collect to pick up conftest.py files
residing in the same dir
2012-10-22 16:12:22 +02:00
holger krekel
f28f073c7c
fix teardown-ordering for parametrized setups/teardowns
2012-10-22 12:16:54 +02:00
holger krekel
97f03edcd6
fix issue205 - nested conftest to pickup pycollect_makemodule - relates to the two
...
reports of a failing doc/en/example/py2py3.
2012-10-22 10:17:50 +02:00
holger krekel
f41f7fda68
improve --markers output
2012-10-20 13:56:53 +02:00
holger krekel
9ed127b5da
fix issue203 - fixture functions with a scope=function should have a "self" that points to the actual instance with which the test functions run.
2012-10-20 09:59:20 +02:00
holger krekel
586befb945
make usefixtures appear in py.test --markers output
2012-10-19 10:17:13 +02:00
holger krekel
b0b6695538
improve automatic id generation for parametrized tests
2012-10-19 10:07:13 +02:00
holger krekel
024df6e00b
some more finalization of docs
2012-10-19 10:07:11 +02:00
holger krekel
64544bee1a
fix trial tests
2012-10-18 15:09:20 +02:00
holger krekel
7c8755cc89
refine docs, fix a marker/keywords bit, and add a test that request.keywords points to node.keywords.
2012-10-18 15:06:55 +02:00
holger krekel
7d747a1cde
remove .markers attribute which was added in development and after 2.2.4
...
so never released. Rather extend keywords to also exist on nodes. Assigning
to node.keywords will make the value appear on all subchildren's
keywords.
2012-10-18 13:52:32 +02:00
holger@merlinux.eu
cf17f1d628
fixing the fix of the last commit
2012-10-17 13:45:03 +02:00
holger krekel
67de2c53ac
fix issue198 - detection of fixtures from conftest.py files in deeper nested dir structures with certain invocations
2012-10-17 13:42:40 +02:00
holger krekel
26ab80c4cd
fix and test --fixtures location information
2012-10-17 13:12:33 +02:00
holger krekel
20849a44f5
improve --fixtures output with per-plugin grouping and hiding underscore names in non-verbose mode, re-introduce --funcargs for compatibiliy
2012-10-17 12:57:05 +02:00
holger krekel
51644a116c
remove unused code
2012-10-17 11:50:32 +02:00
holger krekel
98513b995a
simplify/integrate fixturemapper into FixtureManager
...
also fix jstests test failures
2012-10-17 11:20:45 +02:00
holger krekel
dc4e205876
typographic fixes, little simplification
2012-10-17 09:21:04 +02:00
holger krekel
2855a2f6cb
remove outdated IMPL.txt and move up-to-date doc bits to FixtureMapper class.
2012-10-16 16:27:51 +02:00
holger krekel
cc2337af3a
refine parsefactories interface, fix two_classes test originally reported by Alex Okrushko, also add a few more tests to make sure autouse-fixtures are properly distinguished
2012-10-16 16:13:12 +02:00