holger krekel
d565df90ad
fix issue333: fix a case of bad unittest/pytest hook interaction.
2013-09-09 09:56:53 +02:00
Ronny Pfannschmidt
cf37c477bb
output errors for all failures of specific collection
...
when issueing a command with many specific items to collect,
print all collect failures instead of just the first one
--HG--
branch : multi-usageerror
2013-09-08 22:26:51 +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
c478027805
make "import pdb ; pdb.set_trace()" work natively wrt capturing (no "-s" needed
...
anymore), turning ``pytest.set_trace()`` into a mere shortcut.
2013-09-06 15:29:00 +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
8360c1e687
xfail some tests for doctest support if pdbpp is installed
2013-09-06 10:07:06 +02:00
holger krekel
ca5d02df06
another way how bash reacts when no argcomplete is there?
2013-09-05 22:32:35 +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
b879074a64
refs issue290 -- move and refactor the test the string/int-id parametrization test (Which xfails)
2013-08-16 11:41:31 +02:00
holger krekel
4800aeaef7
Merged in markon/pytest (pull request #66 )
...
Fix @parametrize.
2013-08-16 11:38:00 +02:00
holger krekel
ca7c1f5d8e
merge pull request #27 : correctly handle nose.SkipTest during collection. Thanks
...
Antonio Cuni, Ronny Pfannschmidt. I did a few tweaks to the test and the
activation (depending on if unittest is imported at all).
2013-08-16 11:33:58 +02:00
Marco Buccini
f5a6a84314
test marked as
2013-08-16 09:55:25 +02:00
Marco Buccini
6c54ee03de
Fix @parametrize when using an integer and strings as parameters in a test accepting a parameter and a fixture as arguments.
2013-08-15 12:52:34 +02:00
Anatoly Bubenkov
0cd7effe35
fix broken python3 and python2.5 tests
...
--HG--
branch : fix-broken-tests
2013-08-15 11:52:55 +02:00
Anatoly Bubenkov
722b35b0a6
tests for fixture finalizers
...
--HG--
branch : overriden-fixture-finalizer
2013-08-14 13:58:59 +02:00
holger krekel
4b88d6d2d7
monkeypatch.replace() now only accepts a string. Improved error handling and
...
docs thanks to suggestions from flub, pelme, schmir, ronny.
2013-08-07 16:49:29 +02:00
holger krekel
407283ef81
a new monkeypatch.replace(target, value) call which derives the
...
monkeypatch location from target (can be class/module/function or
string which is taken as importable python path)
examples:
monkeypatch.replace(os.path.abspath, lambda x: "")
monkeypatch.replace("requests.get", ...)
2013-08-07 15:35:27 +02:00
Anthon van der Neut
719e89fc1a
argcomplete: FastFileCompleter that doesn't call bash in subprocess, strip prefix dir
...
```
timeit result for 10000 iterations of expanding '/d' (lowered the count in the code afterwards)
# 2.7.5 3.3.2
# FilesCompleter 75.1109 69.2116
# FastFilesCompleter 0.7383 1.0760
```
- does not display prefix dir (like bash, not like compgen), py.test /usr/<TAB> does not show /usr/bin/ but bin/
2013-08-06 15:33:27 +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
Mathieu Agopian
7fc0d45a4c
refs #322 : setUpClass and tearDownClass as autouse fixture and finalizer
2013-08-01 23:48:40 +02:00
Ronny Pfannschmidt
3b85a56db2
merge
2013-08-01 22:55:16 +02:00
Ronny Pfannschmidt
743711cd1f
fix issue317: assertion rewriter support for the is_package method
2013-08-01 22:11:18 +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
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
Anthon van der Neut
e96da76c3b
changes to addoption() for hyphenated long-options
...
--HG--
branch : opt-drop-non-hyphened-long-options
2013-08-01 16:49:26 +02:00
Anthon van der Neut
e24b56af6c
removed two superfluous parser arguments
...
--HG--
branch : opt-drop-non-hyphened-long-options
2013-08-01 16:27:06 +02:00
Anthon van der Neut
007a77c2ba
drop help for long options if longer versions with hyphens are available
...
--HG--
branch : opt-drop-non-hyphened-long-options
2013-08-01 16:21:33 +02:00
holger krekel
9ccd52d538
fix issue305 - ignore any problems in writing a pyc file, but print out a trace.
2013-08-01 15:43:42 +02:00
holger krekel
cbbbfcd101
fix collection imports for python2.5
2013-08-01 15:38:03 +02:00
Mathieu Agopian
72a48d69cd
refs #279 : sequence assertions can also deal with (Mutable)Sequence instances
2013-08-01 14:48:34 +02:00
holger krekel
b90d82c17f
fix some py33 issues introduced with rev 2985
...
--HG--
branch : argcomplete
2013-08-01 14:24:25 +02:00
Anthon van der Neut
ef2ddb6f16
monkeypatch for os.environment changes
...
--HG--
branch : argcomplete
2013-07-31 21:33:13 +02:00
Anthon van der Neut
e3a2e1bbf8
fix for tests running subprocesses of py.test after test_argcomplete
...
(which all still ran with argcompletion enabled) -> fail
--HG--
branch : argcomplete
2013-07-31 16:03:53 +02:00
Anthon van der Neut
6817a56270
minor adjustment, added test for positional argument completion
...
--HG--
branch : argcomplete
2013-07-30 12:33:38 +02:00
Anthon van der Neut
87860600fb
Fixes for argcomplete
...
- separate out most argcomplete related stuff in new file _argcomplete.py
(could probably be in the py library)
- allow positional arguments to be interspaced with optional arguments
( + test in test_parseopt.py )
- removed double argument in tox.ini
- add documentation on installing argcomplete (>=0.5.7 as needed for
Python 3), might need improving/incorporation in index.
This does not work on 2.5 yet. I have patches for argcomplete
(with/print()/"".format) but I am not sure they will be accepted.
Agreed with hpk not to push for that.
Removing argcomplete and leaving completion code active now works by early
exit, so <TAB> no longer re-runs the programs without parameters
(which took long for py.test)
test calls bash with a script that redirects filedescriptor 8 (as used by
argcomplete), so the result can be tested.
--HG--
branch : argcomplete
2013-07-30 11:26:15 +02:00
holger krekel
377f63085a
be more liberal with respect to lsof checks because jenkins keeps some files open
2013-07-29 15:39:24 +02:00
holger krekel
2a7c79dbf5
make genscript provide information as to compatibility
...
(now that argparse is a dependency on python2.6)
2013-07-26 08:59:31 +02:00
Anthon van der Neut
15ec5a898c
moving from optparse to argparse. Major difficulty is
...
that argparse does not have Option objects -> added class Argument
Needed explicit call of MyOptionParser.format_epilog as argparse
does not have that. The parse_arg epilog argument wraps the text,
which is not the same (could be handled with a special formatter).
- parser.parse() now returns single argument (with positional args in
.file_or_dir)
- "file_or_dir" made a class variable Config._file_or_dir and used in help and tests
- added code for argcomplete (because of which this all started!)
addoption:
- if option type is a string ('int' or 'string', this converted to
int resp. str
- if option type is 'count' this is changed to the type of choices[0]
testing:
- added tests for Argument
- test_mark.test_keyword_extra split as ['-k', '-mykeyword'] generates argparse
error test split in two and one marked as fail
- testing hints, multiline and more strickt (for if someone moves format_epilog
to epilog argument of parse_args without Formatter)
- test for destination derived from long option with internal dash
- renamed second test_parseopt.test_parse() to test_parse2 as it was
not tested at all (the first was tested.)
--HG--
branch : argparse
2013-07-25 15:33:43 +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
87eae6213e
fixes for py25 in test_skipping
2013-07-11 11:15:31 +02:00
holger krekel
13ddce2381
fix issue320 - fix class scope for fixtures when mixed with
...
module-level functions. Thanks Anatloy Bubenkoff.
2013-07-08 15:54:38 +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
holger krekel
f7a9beaefb
Merged in bubenkoff/pytest/329-skipif-requires-expression-as-a-string (pull request #43 )
...
re #329 add test for skipif failure when you pass boolean without the reason. add emphasize to the docs.
2013-07-06 20:13:27 +02:00
Anatoly Bubenkov
214793f697
re #329 add test for skipif failure when you pass boolean without the reason. add emphasize to the docs.
...
--HG--
branch : 329-skipif-requires-expression-as-a-string
2013-07-06 18:54: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
Katarzyna Jachim
ffa1bf726d
merge
2013-07-06 15:54:33 +02:00
Katarzyna Jachim
87df85f12d
improved reporting
...
added intermediate level of quiet reporting:
* -q now shows short summary (# passed/failed tests + time)
* the former -q is now -qq
2013-07-06 15:43:59 +02:00
Anatoly Bubenkov
ea7a997afc
remove unnecessary print
2013-07-06 10:26:14 +02:00
Anatoly Bubenkov
2c7613c15c
merge with upstream
2013-07-06 10:06:12 +02:00
holger krekel
c4c966683c
fix issue323 - parametrize() of many module-scoped params
2013-06-28 12:57:10 +02:00
Brian Okken
28b2859718
change how the test is called
2013-06-22 09:42:31 -07:00
Brian Okken
5e77eb23eb
add test_unittest_style_setup_teardown()
...
to test setUpModule() and tearDownModule()
2013-06-22 09:35:10 -07:00
holger krekel
ac3d8800fd
make sessionfinish hooks execute with the same cwd-context as at
...
session start (helps fix plugin behaviour which write output files
with relative path such as pytest-cov)
2013-06-10 10:09:28 +02:00
Erik Bray
17e1106584
reindent a few of the blockquotes in these tests
2013-06-07 17:30:10 -04: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
Erik Bray
b1595d3f61
Adds a test for and fixes #112 . If attempting to write to the __pycache__ directory raises a permission error _write_pyc() should just return False to prevent any further write attempts.
2013-05-28 18:11:12 -04: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
655afba17d
Merged in w00t0r/pytest-fixes (pull request #35 )
...
Fixed issue #306 : Keywords and markers are now matched in a defined way. Also applied some pep8 formatting while fixing.
2013-05-27 21:40:41 +02:00
Wouter van Ackooy
212f4b4d64
Issue 306: Used a set for the extra_keywords, and used listchain for parent iteration.
2013-05-27 18:14:35 +02:00
Wouter van Ackooy
72afbbbd71
Added new test to check on matching markers to full test names, which was possible before. Also adjusted check on number of deselected tests.
2013-05-23 12:21:40 +02:00
Wouter van Ackooy
583c736f0c
Added a test to check there is no matching on magic values.
2013-05-23 09:12:50 +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
f2175146a9
Merged hpk42/pytest into default
2013-05-21 11:18:37 +10:00
Wouter van Ackooy
fe27f3cc7d
Fixed issue #306 : Keywords and markers are now matched in a defined way. Also applied some pep8 formatting while fixing.
2013-05-20 14:37: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
Danilo de Jesus da Silva Bellini
242b67de17
zero to many doctests from module instead of one
2013-05-17 12:18:22 -03: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
1f1c24fe15
Merged in jaapz/pytest-xml-escape-control-chars (pull request #32 )
...
Fix junitxml generation when using special characters in parametrized tests.
2013-05-10 08:06:31 +02:00
Jaap Broekhuizen
7803bca335
Implemented a test for xml control character fail.
2013-05-09 21:16:57 +02:00
holger krekel
a113c4c6d3
Merged in maho/pytest (pull request #31 )
...
#299
2013-05-09 15:32:29 +02:00
maho
9e3cd03721
#299 - polishing
2013-05-08 17:01:20 +02:00
holger krekel
bbd265184d
support boolean condition expressions in skipif/xfail
...
change documentation to prefer it over string expressions
2013-05-07 18:40:26 +02: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
05c4ecf892
fix recursion within import hook and source.decode in particular
2013-04-30 12:05:58 +02:00
holger krekel
c5f9958783
never consider a fixture function for test function collection
2013-04-29 10:31:51 +02:00
Floris Bruynooghe
7a90515d49
Treat frozenset as a set
...
Thanks to Brianna Laugher.
2013-04-28 20:59:10 +01: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
Floris Bruynooghe
c93fbb0e57
Load conftest files in the correct order initially
...
When the conftest.py files are looked for intially they got loaded
starting from the subdir ending at the parent dir(s). Later on during
collection any conftest.py files are loaded starting from the parent
dir ending at the subdir. Due to how extending fixtures works the
latter is correct as otherwise the wrong fixture will be available.
So this changes the initial conftest loading to start at the root and
go towards the subdir.
This does also affect the order of other hooks, hence the order of the
reporting being different in testing/test_terminal.py.
2013-04-18 12:24:53 +01:00
holger krekel
bfe9779b37
merge
2013-04-16 09:13:58 +02:00
holger krekel
bb6f3ebd31
slightly improve -k help string
...
cosmetic change to test_nose.py
2013-04-16 09:04:05 +02:00
Adam Goucher
1cbd2db621
stdout/stderr now captured by junitxml
2013-04-16 00:45:14 -04:00
holger krekel
712898cfe1
- add release announce
2013-03-28 10:21:03 +01:00
Floris Bruynooghe
f31dc7a8b7
Attempt to improve detailed failure reporting
...
* If --verbose is used do not truncate.
* Add a special dict comparison instead of diffing
pprint output.
2013-03-28 01:39:01 +00:00
Ronny Pfannschmidt
9c9679945e
fix Issue 265 - integrate nose setup/teardown with setupstate
...
as sideeffect teardown is only called if setup doesnt fail
2013-03-25 10:52:02 +01:00
Ronny Pfannschmidt
ba79c1926c
add a test for issue 14 that will xfail on python < 2.7
2013-03-25 08:53:08 +01:00
Ronny Pfannschmidt
76fb51a4ba
fix issue 271 - dont write junitxml on slave nodes
2013-03-24 20:43:25 +01:00
Ronny Pfannschmidt
93da606763
fix Issue 274 - dont fail when doctest does not know the example location
...
instead only the last test is shown, this could use some further enhancement
2013-03-24 20:05:29 +01:00
holger krekel
8f8466ee40
Merged in witsch/pytest/doctest-fixtures (pull request #25 )
...
fixture support in doctests
2013-03-21 12:33:43 +01:00
Andreas Zeidler
dfcb0e322c
rename `get_fixture` to `getfixture` to better match the current API style
...
--HG--
branch : doctest-fixtures
2013-03-21 12:04:14 +01:00
Andreas Zeidler
da3b42ce46
remove debugging left-overs
...
--HG--
branch : doctest-fixtures
2013-03-21 01:03:59 +01:00
Andreas Zeidler
5a3547dd7e
also provide `get_fixture` helper for module level doctests
...
--HG--
branch : doctest-fixtures
2013-03-20 17:32:48 +01:00
Andreas Zeidler
c4b3a09886
test `get_fixture` helper for doctests
...
--HG--
branch : doctest-fixtures
2013-03-20 17:14:28 +01:00
Antonio Cuni
37c47155e0
correctly handle nose.SkipTest during collection
2013-03-14 16:10:33 +01:00
Benjamin Peterson
0cf79b29cd
in the default Python 2 case, manually check the source is ASCII ( fixes #269 )
2013-03-08 10:44:41 -05:00
Floris Bruynooghe
48e6aa9dc7
Allow MarkEvaluator expressions to be unicode
...
This fixes issue #266 .
2013-02-15 11:47:48 +00:00
Ronny Pfannschmidt
0dd05023b8
fix issue 251 - report a skip instead of ignoring classes with init
2013-02-15 10:18:00 +01:00
Ronny Pfannschmidt
69ef750091
fix issue134 - print the collect errors that prevent running specified test items
2013-02-14 12:21:42 +01:00
holger krekel
857c99d354
fix py32 incompatible syntax
2013-02-14 12:17:23 +01:00
holger krekel
d0e18ac63f
issue250 unicode/str mixes in parametrization names and values now works
2013-02-12 23:30:34 +01:00
holger krekel
296f752cca
fix --genscript option to generate standalone scripts that also
...
work with python3.3 (importer ordering)
2013-02-12 22:59:29 +01:00
holger krekel
456731ed0f
fix issue257 assertion-triggered compilation of source ending in a
...
comment line doesn't blow up in python2.5 (fixed through py>=1.4.13.dev6)
2013-02-12 22:43:33 +01:00
holger krekel
c8653b4c02
merge
2013-02-12 20:45:01 +01:00
Ronny Pfannschmidt
162c3689c6
fix issue 260 - don't use nose specials on plain unittest cases
2013-02-07 17:53:13 +01:00
holger krekel
570ad36eaf
fix parametrized testid to provide for uniqueness
2013-02-05 17:41:45 +01: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
Benjamin Peterson
65edf87ea6
display the repr of some global names ( fixes #171 )
2013-01-10 11:59:08 -06:00
holger krekel
5f99511ab7
fix test after ronny's pytest-debug improvements
2012-12-04 20:31:37 +01:00
holger krekel
22dd5e29e2
when informations gets truncated, mention use of "-vv" to see it.
2012-11-30 12:18:12 +01:00
Ronny Pfannschmidt
725e63db66
improve PYTEST_DEBUG tracing output
...
by putingextra data on a new lines
with additional indent
2012-11-29 10:04:39 +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
68786a6434
fix bug where using capsys with pytest.set_trace() in a test
...
function would break when looking at capsys.readouterr()
2012-11-21 20:43:31 +01:00
holger krekel
a9adfa9114
don't run long-args test on windows because it can't work
2012-11-20 11:52:06 +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
f3e03fc298
modernize tmpdir fixture (use request.node in tmpdir fixture, use @pytest.fixture)
2012-11-19 14:07:14 +01:00
holger krekel
b940ed11a0
fix issue226 - LIFO ordering for fixture-added teardowns
2012-11-16 10:03:51 +01:00
holger krekel
c64c567b75
fix issue224 - invocations with >256 char arguments now work
2012-11-12 10:15:43 +01:00
holger krekel
4ac465acfb
allow to pass expressions to "-k" option, just like with the "-m" option
2012-11-09 12:29:33 +01:00
holger krekel
a4909a0ae4
allow to dynamically define markers (e.g. during pytest_collection_modifyitems)
2012-11-09 12:07:41 +01:00
holger krekel
33cd414420
fix issue127 improve pytest_addoption docs, add new config.getoption(name) method for consistency.
2012-11-06 14:09:12 +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
Ronny Pfannschmidt
b3c8991b22
add a xfailing test for issue 199
2012-11-05 21:52:12 +01:00
Ronny Pfannschmidt
df444906d6
merge pull request
2012-11-05 21:18:50 +01:00
Ronny Pfannschmidt
04754f6748
test call_optional not calling non-callable functions
2012-11-05 21:17:58 +01:00
holger krekel
7e831b66ec
fix issue148 - recognize @unittest.skip on classes, avoid setup/teardown
2012-11-03 20:54:48 +01: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
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
2637326782
improve support for trial a bit more: don't run trial's empty TestCase.runTest() method
2012-10-22 19:22:01 +02:00
holger krekel
aa79c0a4b9
fix unittest emulation: TestCase.runTest is now ignored
...
if there are test* methods.
2012-10-22 16:25:09 +02: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
036557ac18
fix issue206 - unset PYTHONDONTWRITEBYTECODE in assertrewrite test
2012-10-22 11:14:18 +02:00
holger krekel
1b61fbc8ed
- fix test_nose.py by being more tolerant about the error message
...
(differs between py32 and py33, thanks Arfrever)
- use pypi again now that py is released
2012-10-22 10:55:59 +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
d4d213f83d
some more fixes
2012-10-20 14:10:12 +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
dca5fa2241
fixing links for 2.3 release, and fixing a windows32 failure on py3
2012-10-19 10:53:28 +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
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 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
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
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
holger krekel
37965657d0
make factorydeflist immutable by using an index
2012-10-16 13:59:12 +02:00
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
6eec2f5893
make tmpdir fixture always return a realpath()ed tmpdir and make a note
...
about it in the changed test. Currently, i don't see a reason why this
is a bad idea (tm)
2012-10-11 13:05:16 +02:00
holger krekel
0594265adc
fix output of --fixtures for @pytest.fixture defined functions.
2012-10-09 16:49:04 +02:00
holger@merlinux.eu
39b8a19cf7
Fix test for windows
2012-10-08 13:42:31 +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
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
3049af618c
avoid pyc file issues by parametrizing the test instead of rewriting conftest.py files
2012-10-04 11:51:14 +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
holger krekel
b9767fd74c
remove print, pass python32
2012-09-27 13:27:22 +02:00
holger krekel
dbe66f468a
ensure proper calling of finalizers in case of parametrization on classes
2012-09-26 12:24:04 +02:00
Ronny Pfannschmidt
35cbb5791d
fixes issue 156: monkeypatch class level descriptors
2012-09-25 18:15:13 +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
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
754fab9b55
merge
2012-09-22 20:26:13 +02:00
Ronny Pfannschmidt
253a87b2dc
fix issue 191 - add support for runTest method of unittest.TestCase subclasses
2012-09-22 18:24:53 +02:00
holger krekel
81082ed3d3
extend --help to tell about --markers and --funcargs
2012-09-22 11:44:56 +02:00
holger krekel
465cfff6f9
don't call nose' setup methods if they are marked with pytest.setup
2012-09-22 00:23:36 +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
a7c6688bd6
implement full @pytest.setup function unittest.TestCase interaction
2012-09-18 10:54:12 +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
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
Ronny Pfannschmidt
bfaf8e50b6
fix issue 182: testdir.inprocess_run now considers passed plugins
2012-09-03 10:12:30 +02:00
Ronny Pfannschmidt
848c749d1a
adapt the junit xml escaping test to my escaping changes
2012-09-03 09:54:02 +02:00
holger krekel
41ad7dbae1
fix issue185 monkeypatching time.time does not cause pytest to fail
2012-09-01 09:58:10 +02:00
Benjamin Peterson
a6060dfb6d
use py3 compatible print syntax
2012-08-28 16:37:43 -04: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
503addbf09
correctly have the test for issue #[C179 actually fail
2012-08-22 21:20:18 +02:00
Ronny Pfannschmidt
1318df4f5b
add xfailing test for issue 179
2012-08-22 19:49:50 +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
Ronny Pfannschmidt
1446b4b4e6
fix issue #178 and extend the failure escape test
2012-08-17 16:08:08 +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
172505f703
fix/consolidate --junitxml=path construction with relative pathes
2012-08-04 10:33:43 +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
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
4f94ab4e42
mark a test as xfailing on python2.5
2012-08-01 09:10:40 +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
396045e53f
allow registration of "funcarg" marked factories
2012-07-20 14:16:49 +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
Benjamin Peterson
099ac1e1f4
cleanup test a bit
2012-07-07 08:01:44 -07:00
Floris Bruynooghe
1aca6c9d7c
Fix extension of of cached re-written file
...
With PYTHONOPTIMIZE set this had the extension of "o" instead of ".pyo".
Fixes issue #168 .
2012-07-07 16:09:53 +02:00
Ronny Pfannschmidt
74e55493d1
test and implement showing verbose assert repr for py.test -vv
2012-06-27 17:26:55 +02:00
holger krekel
ecec653e98
fix issue151 - heuristcally lookup conftest files on all command line arguments, not just the first existing dir/file
...
you can install the corresponding pytest-2.3.dev2 via
pip install -i http:/pypi.testrun.org -U pytest
2012-06-26 21:56:03 +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
holger krekel
227d847216
fix problem with unicode in writing failure representations to terminal, thanks ThomasWaldmann
2012-06-24 16:42:31 +02:00
holger krekel
6e0c30d67d
fix skip/xfail confusion, reported and discussed on
...
http://stackoverflow.com/questions/11105828/in-py-test-when-i-explicitly-skip-a-test-that-is-marked-as-xfail-how-can-i-get
2012-06-23 11:32:32 +02:00
holger krekel
e79a312b92
fix internal test setup failure
2012-06-21 11:30:10 +02:00
holger krekel
ccc04b9fc4
some refinements to reporting and hook order
2012-06-21 11:07:22 +02:00
holger krekel
18306a4644
add header info: always report 3rd party plugins in test runs
2012-06-20 00:16:47 +02:00
holger krekel
1bbe1d086c
fix issue160 a failing setup of an xfail-marked tests should
...
be reported as xfail (not xpass)
2012-06-19 23:48:39 +02:00
holger krekel
b2e87ce027
change pluginmanager.register API to raise ValueError if the plugin object or the name is already registered
2012-06-16 21:29:04 +02:00
holger krekel
3f17784386
fix issue128 - show captured output when capsys/capfd are in use
2012-06-03 21:01:27 +02:00
holger krekel
0790f7a75f
fix issue 144 - wrong classname in junitxml
2012-05-22 17:18:04 +02:00
Ronny Pfannschmidt
db8fbe7661
skip test for pyo on pypy since pypy doesnt do pyo
2012-05-22 16:20:58 +02:00
holger krekel
51d94a4a6e
use higher difference on timing
2012-05-18 13:56:49 +02:00
holger krekel
e18abfd013
fix issue143 - call unconfigure/sessionfinish always when
...
configure/sessionstart where called
use exitcode 4 (instead of 3 which signaled an internal error)
when an initial directory/file was not found
2012-05-17 23:11:23 +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
Benjamin Peterson
b4588f1798
escape the % operator in string formatting
2012-05-03 13:49:30 -04:00
Benjamin Peterson
1c817aa7bd
don't use octal syntax, since its not py2/py3 compatible
2012-04-18 11:26:44 -04:00
Ronny Pfannschmidt
d02eaa8881
fix a import strange loop that affects pypy test appsupport on python2.5
2012-04-13 12:41:02 +02:00
holger krekel
58933aac2a
try to better handle @unittest.expectedFailure decorator
2012-03-19 22:53:52 -07:00
Ronny Pfannschmidt
ee8d2f9950
junitxml: use a exclusive match on the legal ranges of xml for binary escaping, fixes issue 126
2012-03-09 13:12:18 +01:00
Ronny Pfannschmidt
2ca6d9f039
no longer check if indirect metafunc.parametrize params are funcarg names
2012-02-03 16:54:00 +01:00