holger krekel
2f3bbdafda
use fixturemapper/fixtureinfo from Function objects
2012-10-16 13:48:00 +02:00
holger krekel
021c087701
implement fixture information stored on the parentnode of functions
...
to be reused by metafunc mechanics and Function setup
2012-10-16 13:47:59 +02:00
holger krekel
4541456a96
add plan for better fixture implementation, an xfailing test
...
and a slight refactoring of Metafunc tests/creation
2012-10-16 13:47:59 +02:00
holger krekel
f5d796b093
improve docs further, refine unittest docs, rename ``autoactive`` to ``autouse``
...
to better match ``@pytest.mark.usefixtures`` naming.
2012-10-12 14:52:36 +02:00
holger krekel
0594265adc
fix output of --fixtures for @pytest.fixture defined functions.
2012-10-09 16:49:04 +02:00
holger krekel
fb3af07ef4
try to move docs to a more releasable state, also refine
...
release announce and a few coding bits
2012-10-09 14:35:17 +02:00
holger krekel
df643f65f0
remove support for @pytest.fixture on classes, to be reserved for future use:
...
Fixture-classes could offer setup/teardown/addoption/configure methods
and provide higher level support. Preliminary allowing it to work on classes
may make introducing it harder.
2012-10-08 11:22:31 +02:00
holger krekel
d630d02c5b
remove pytest.setup usage
2012-10-08 08:34:21 +02:00
holger krekel
30b10a6950
- fix doc references, refactor fixtures docs to more quickly start
...
with examples instead of big text blobgs
- also silence -q and -qq reporting some more
2012-10-07 13:06:17 +02:00
holger krekel
cda84fb566
- allow to use fixtures directly, i.e. without ()
...
- also allow scope to be determined by a dynamic function
2012-10-06 21:03:55 +02:00
holger krekel
d3893dd5d1
allow metafunc.parametrize(scope=...) calls to override the scope of a Fixture function definition. This is useful for cases where you want to dynamically
...
set scope and parametrization for a fixture instead of statically declaring
it on the fixture function.
2012-10-06 21:01:13 +02:00
holger krekel
55a8bfd174
fix issue197 - in case a function is parametrized with zero arguments,
...
skip it during setup
2012-10-06 11:34:06 +02:00
holger krekel
d8c365ef2c
implement pytest.mark.usefixtures and ini-file usefixtures setting
...
and also refine fixture docs a bit - fixtures.txt should now mostly
reflect the current state of the implementation
2012-10-05 19:20:40 +02:00
holger krekel
d1a3f5c3a6
make the default non-error pass simpler and faster, refine error reporting by presenting "fixture" tracebacks
2012-10-05 14:24:45 +02:00
holger krekel
bb07ba7807
rename a number of internal and externally visible variables to use the fixture name
...
rather than funcargs. Introduce .funcargnames compatibility attribute for backward compat.
2012-10-05 14:24:44 +02:00
holger krekel
8282efbb40
internally unify setup and fixture code, making setup a shortcut to fixture(autoactive=True)
2012-10-05 10:21:35 +02:00
holger krekel
9251e747af
rename pytest.factory usages into pytest.fixture ones
2012-10-05 10:21:35 +02:00
holger krekel
5173647b4d
fixes to against python3.3
2012-10-01 10:14:54 +02:00
holger krekel
57a832812b
remove unneccessary internal __request__ funcarg.
2012-10-01 09:23:39 +02:00
Ronny Pfannschmidt
bee7543716
move Item.applymarker to Node, and defer to it from Funcargrequest.applymarker
2012-09-30 22:17:33 +02:00
holger krekel
dbe66f468a
ensure proper calling of finalizers in case of parametrization on classes
2012-09-26 12:24:04 +02:00
holger krekel
a18fd61a20
back out accidental changes introduced by last patch
2012-09-25 15:13:58 +02:00
holger krekel
a1c3d60747
add an xfail-ed test for a potential future "enabled" parameter to setup functions
2012-09-25 15:04:30 +02:00
holger krekel
cd1ead4f7b
- make request.funcargnames carry the closure of all used funcargs
...
- make metafunc.funcargnames carry the closure of used funcargs
2012-09-24 17:04:34 +02:00
Ronny Pfannschmidt
9568ff3b23
backout, the _memoizedcall change worked only due to a local effect
2012-09-24 11:36:24 +02:00
Ronny Pfannschmidt
6e5f491a42
get rid of _memoizedcall - we dont really need it anymore
2012-09-24 11:26:38 +02:00
holger krekel
7768972ec5
make sure setups are called ahead of the funcarg factories of the test function
2012-09-24 10:36:22 +02:00
holger krekel
738f14a48a
improve the parametrization scenario example to sort by id, rather than by file-order, see also: http://stackoverflow.com/questions/12521924/pytest-running-scenarios-in-the-correct-order-in-the-class
2012-09-21 09:39:54 +02:00
holger krekel
6cb3281ddd
allow factory/setup-markers on classes, using their respective __init__ methods which can use the funcarg mechanism
2012-09-18 14:00:47 +02:00
holger krekel
a5e7e441d3
fix bug introduced with last checkin
2012-09-18 13:46:24 +02:00
holger krekel
a7c6688bd6
implement full @pytest.setup function unittest.TestCase interaction
2012-09-18 10:54:12 +02:00
holger krekel
d9c24552fc
remove distinction of new versus old funcarg factories
2012-09-18 10:53:42 +02:00
holger krekel
631d311e89
- add request.node which maps to the collection node as specified by the scope.
...
- remove request.markers which is now available via request.node.markers
2012-09-17 20:43:37 +02:00
holger krekel
a94bb0a8bb
introduce a new "markers" attribute to nodes and the request object. It is
...
a dynamic class making holdin
2012-09-17 17:32:23 +02:00
holger krekel
646c2c6001
drops special testcontext object in favour of "old" request object, simplifying communication and code for the 2.2-2.3 transition. also modify docs and examples.
2012-09-17 16:36:10 +02:00
holger krekel
084c617b67
modify detection of factories located in plugins, allowing pytest's own test functions to access plugin defined funcargs even if they use internal machinery instead of a full test run
2012-09-12 12:51:45 +02:00
Benjamin Peterson
7f36649763
remove usage of exception module, which is gone in py3.3
2012-08-28 16:35:06 -04:00
Ronny Pfannschmidt
e876ad9abd
fix issue 179 - propperly show the dependency chain of factories on setup failure
2012-08-22 21:43:42 +02:00
Ronny Pfannschmidt
45693c2847
exchange the rawcode factory marker check with a more robust and specific instance check as advised by holger
2012-08-19 14:57:07 +02:00
Ronny Pfannschmidt
0e8cd9297a
fix issue 176: raises(AssertionError) now catches builtin AssertionError as well
2012-08-19 13:45:26 +02:00
Ronny Pfannschmidt
0cca20bef9
ignore magic callables with no sane code in factory/setup discovery
2012-08-19 12:36:49 +02:00
holger krekel
627e068516
fix issue172 so that @pytest.setup marked setup_module/function... functions
...
are not called twice. Also fix ordering to that broader scoped setup
functions are executed first.
2012-08-13 13:37:14 +02:00
holger krekel
935761f098
also improve missing funcarg error for setup functions
2012-08-08 14:53:47 +02:00
holger krekel
dd268c1b2b
improve error representation for missing factory definitions
...
in recursive funcarg reconstruction
2012-08-08 11:48:53 +02:00
holger krekel
6746a00cb8
majorly refine funcargs docs and rename "resources.txt" to "funcargs.txt" so that existing web links will eventually land at this new page when pytest is released. Also integrated the detailed reasoning and update setup function docs
...
to reflect latest discussions and feedback gathered on py-dev mailing list.
2012-08-03 19:08:27 +02:00
holger krekel
46dc7eeacb
move pytest.mark.factory/setup to pytest.factory/setup, as per flub 's suggestion
2012-08-02 12:41:46 +02:00
holger krekel
5fd84c35dd
reshuffle docs, try to get a bit closer to release-relevant documentation
2012-08-01 14:52:51 +02:00
holger krekel
535d892f27
- rename @funcarg to @factory
...
- introduce a "testcontext" object for new-style funcargs and setup methods
- New-style funcargs and setup methods cannot use the "request" object anymore.
2012-08-01 13:57:09 +02:00
holger krekel
cb2eb9ba33
reorder internal layout so that funcarg-related functionality is in python.py
2012-08-01 09:23:39 +02:00
holger krekel
449b55cc70
- enhance ordering of tests using parametrized resources
...
- introduce a refined way to perform finalization for setup functions
which does not use cached_setup() anymore
2012-08-01 09:07:32 +02:00
holger krekel
9dc79fd187
introduce a funcargcall object, holding meta information
2012-07-30 12:39:45 +02:00
holger krekel
b57fb9fd47
introduce a SetupCall, holding meta information and setup calling state
2012-07-30 11:51:50 +02:00
holger krekel
d68c65b493
minimize active parametrized non-function scoped resources by
...
- re-ordering at collection time
- modifying setup/teardown
2012-07-30 10:46:03 +02:00
holger krekel
fa61927c6b
introduce @pytest.mark.setup decorated function,
...
extend newexamples.txt and draft a V4 resources API doc.
2012-07-24 12:10:04 +02:00
holger krekel
d4a487c725
allow funcarg factories to receive funcargs
2012-07-23 10:55:09 +02:00
holger krekel
6b0f0adf5b
implement a scope/parametrized examples using the so-far new features
...
also fix a bug with scoping/parametrization
2012-07-20 14:16:50 +02:00
holger krekel
80db25822c
implement funcarg factory scope marker and ScopeMismatch detection
2012-07-20 14:16:46 +02:00
holger krekel
f358fe7154
extend Metafunc and write a pytest_generate_tests hook on the funcarg manager
...
which discovers factories
2012-07-20 14:16:46 +02:00
holger krekel
e14459d45c
discover funcarg factories independently from request/Function items
2012-07-20 14:16:28 +02:00
holger krekel
4e4b507472
move funcarg factory to a new FuncargManager object at session level
2012-07-19 09:20:14 +02:00
holger krekel
c7ee6e71ab
re-introduce the old 2.2.4 FuncargRequest implementation as it is a better
...
base for implementing the new funcarg/setup api. Also Un-optimize
funcargnames discovery for now.
2012-07-18 19:49:14 +02:00
holger krekel
8adac2878f
put automatic funcarg_ API to Py*objects only, refine internal subclassing and initialisation logic
2012-07-16 10:46:44 +02:00
holger krekel
b4b86159cd
better name for the oejskit-compatibility-class.
2012-06-25 17:49:13 +02:00
holger krekel
91b6f2bda8
mid-scale refactoring to make request API available directly on items.
...
This commit was slightly tricky because i want to backward
compatibility especially for the oejskit plugin which
uses Funcarg-filling for non-Function objects.
2012-06-25 17:35:33 +02:00
Ronny Pfannschmidt
0e3779b14f
strip bound wrappers of class setup/tardown, fixes #140
...
on python3 im_func is replaced by __func__
2012-05-06 23:03:16 +02:00
Ronny Pfannschmidt
2ca6d9f039
no longer check if indirect metafunc.parametrize params are funcarg names
2012-02-03 16:54:00 +01:00
holger krekel
c126cac98d
fix unittest/marker integration
2011-12-28 16:47:08 +00:00
holger krekel
f2c8a837af
fix issue106: allow parametrize to be applied per-class/per-module
2011-12-28 15:47:19 +00:00
holger krekel
f2791988f9
fix issue102: report more useful errors and hints for when a
...
test directory was renamed and some pyc/__pycache__ remain
2011-12-20 12:20:59 +00:00
holger krekel
82ba764bb6
fix unorderable types as reported by Ralf Schmitt
2011-12-14 10:56:51 +00:00
Jurko Gospodnetić
af0edf0d10
Documentation cleanup - corrected typos & minor stylistic changes.
2011-12-05 11:10:48 +01:00
holger krekel
50c9e3f654
improve parametrize() docs
2011-11-19 23:45:05 +00:00
holger krekel
6b4e6eee09
improve release announcement, shift and fix examples a bit. Bump version to 2.2.0
2011-11-18 18:32:11 +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
ec0565fac5
introduce metafunc.parametrize() and @pytest.mark.parametrize with examples. deprecate metafunc.addcall()
2011-11-17 11:09:21 +00:00
Benjamin Peterson
48b76c7544
rewrite test modules on import
2011-06-28 21:13:12 -05:00
holger krekel
ce1b456762
back out pytest_configure_funcargs hook for now
2011-06-01 15:08:54 +02:00
holger krekel
6c90059342
- properly include _pytest.assertion in distribution
...
- import assertion only at import-test module time
2011-05-31 15:21:08 +02:00
Benjamin Peterson
5e31624315
return to the old scheme of rewriting test modules from _importtestmodule
2011-05-28 18:47:16 -05:00
Benjamin Peterson
16b4f54545
remove module before/after import hooks
2011-05-26 20:00:29 -05:00
Benjamin Peterson
0a7237b72f
refactor common config/session protocol code for main() functions
2011-05-26 19:09:42 -05:00
Benjamin Peterson
241ff0b43a
add a hook called when a Module is successfully created
2011-05-26 18:56:45 -05:00
Benjamin Peterson
dd199d255c
move _setupstate into session
2011-05-26 17:08:56 -05:00
Benjamin Peterson
e02d22aa4f
expand try/except/finally which py2.4 does't like
2011-05-25 15:55:57 -05:00
Benjamin Peterson
bf039fea74
add hooks before and after a module is imported
2011-05-19 21:45:33 -05:00
Ronny Pfannschmidt
b6815538c5
introduce the pytest_configure_funcargs hook for better control on funcarg instanciation/configuration
2011-05-12 23:47:05 +02:00
holger krekel
ed6d2537bc
fix issue33 - no collection error for classes prefixed "test" deriving from object
2011-03-16 16:36:18 +01:00
holger krekel
18e784c9c9
re-introduce pytest._fillfuncargs - it's actually used by oejskit,
...
added a test documenting this.
2011-03-06 08:56:58 +01:00
holger krekel
9c952b3ce0
actually don't expose unused _fillfuncargs
2011-03-05 14:31:01 +01:00
holger krekel
07cee24122
avoid deprecation warnings for our internal accesses
2011-03-05 14:16:27 +01:00
holger krekel
318e8a404b
fix and improve error reporting for parametrizing funcargs (originally reported by antlong)
2011-03-05 12:11:35 +01:00
holger krekel
6f3b84da9f
fix issue 28 - setup_method now works with pytest_generate_tests
2011-03-02 18:03:43 +01:00
holger krekel
d2f9b41519
some doc fixes and improvements to parametrized test examples, thanks ccxCZ for review and suggestions.
2011-02-09 14:55:21 +01:00
holger krekel
b8f0d10f80
fix a pypy related regression - re-allow self.NAME style collection tree customization
2011-01-18 12:47:31 +01:00
holger krekel
aea4d1bd7a
fix regression with yield-based tests (hopefully)
2011-01-14 13:30:36 +01:00
holger krekel
c7531705fc
refine plugin registration, allow new "-p no:NAME" way to prevent/undo plugin registration
2010-12-06 16:54:42 +01:00
holger krekel
1df0eaa387
tons and tons of refinements and additions to docs
2010-11-25 12:11:10 +01:00
Benjamin Peterson
b28438171b
express filter as a listcomp
2010-11-24 19:18:42 -06:00
holger krekel
ab08cb2176
simplify pluginlist computation
2010-11-24 22:22:52 +01:00
holger krekel
4cb2c74159
introduce new discovery mechanism
...
XXX experiment with using it before introducing it or wait
for feature request
2010-11-24 22:01:04 +01: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
bc42cf8ffb
add a way to mark hooks as "tryfirst" or "trylast" to influence its position in a hook chain.
...
Use 'tryfirst' for capturing hooks so they can start capturing as early as possible,
including when conftests add output in runtest_setup hooks.
2010-11-21 23:17:59 +01:00
holger krekel
9a21a81740
add ability to use scope="class" in request.cached_setup() calls
2010-11-20 18:03:18 +01:00
holger krekel
582486d531
refine docs and docstrings, fix some small bits here and there while doing that.
2010-11-18 14:56:16 +01:00
holger krekel
fb102a2ddb
bump version and comment out ignore-testclass-if-unittest-module-feature
2010-11-17 12:21:24 +01:00
holger krekel
929291775e
flat is better than nested (cont'd):
...
- pytest.py is new module, making "python -m pytest" work always
- _pytest/*.py now contains core.py, hookspec and the plugins, no sub packages
2010-11-13 11:10:45 +01:00