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
Floris Bruynooghe
e3a945a0b5
Add test for unicode assertion descriptions
...
Also clean up a few debugging leftovers.
2013-11-29 00:29:14 +00:00
Floris Bruynooghe
a5c075c4e2
Respect unicode in AssertionError argument
...
This is related to issue319
2013-11-24 17:45:48 +00:00
holger krekel
c0dd7c5975
fix issue275 - allow usefixtures and autouse fixtures
...
for running doctest text files.
2013-11-22 15:35:20 +01:00
holger krekel
a6783cd6f3
Backed out changeset 73b1eed8ce09
2013-11-22 13:52:53 +01:00
holger krekel
438d85b5ad
clarify that python_functions does not apply to unittest.TestCase
...
classes and their methods. Addresses issue284.
2013-11-22 13:44:56 +01:00
Floris Bruynooghe
90b6ccd321
Ensure the long descriptions and formatting preserve unicode correctly
...
This is the first stage towards fixing issue319, at least
py.io.saferepr and py.code.ExceptionInfo need to be addressed as well.
2013-11-22 12:28:59 +00:00
Floris Bruynooghe
db778fd456
Correct comment
2013-11-22 12:27:34 +00:00
holger krekel
08f3a0791d
fix issue357 - special case "-k" expressions to allow for
...
filtering with simple strings that are not valid python expressions.
Examples: "-k 1.3" matches all tests parametrized with 1.3.
"-k None" filters all tests that have "None" in their name
and conversely "-k 'not None'".
Previously these examples would raise syntax errors.
Also add a note to the docs about what is allowed.
2013-11-21 15:25:16 +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
fc073cb81c
fixed version comparison in pytest.importskip(modname, minverstring)
2013-11-21 13:53:04 +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
Floris Bruynooghe
a467fbea0d
Merge
2013-11-21 01:16:49 +00:00
Floris Bruynooghe
6686c67a41
Re-raise the first exception instead of the last
...
This will make more sense if multiple fixtures depend on each other.
It would be better if all exceptions could be shown however.
Also depend on python 2.5+ exception hierarchy and use sys module
directly.
2013-11-21 01:15:24 +00: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
Floris Bruynooghe
72752165df
Ensure all finalizations are run when one fails
...
Fixes issue287.
2013-11-19 17:26:18 +00:00
holger krekel
9b21d3f206
internally make varnames() deal with classes's __init__,
...
although it's not needed by pytest itself atm. Also
fix caching. Fixes issue376.
2013-11-19 15:33:52 +01:00
holger krekel
dde0a81677
don't hide an ImportError when importing a plugin produces one.
...
fixes issue375.
2013-11-19 14:45:51 +01:00
holger krekel
31576fac61
fix issue380 by making --resultlog only rely on longrepr instead
...
of the "reprcrash" attribute which only exists sometimes.
2013-11-19 14:19:29 +01:00
Ronny Pfannschmidt
eda8b02a8d
fix issue384 by removing the trial support code
2013-11-19 10:58:24 +01:00
holger krekel
1fd1617427
fix pexpect-3.0 compatibility for pytest's own tests.
...
(fixes issue386)
2013-11-19 10:10:27 +01:00
holger krekel
581b3a110c
Merged in hsoft/pytest (pull request #81 )
...
Fix TypeError crash on failed imports under py3.3.
2013-11-15 21:02:30 +01:00
Virgil Dupras
e118682db1
Added test for previous crash on failed import fix
...
Also, rewrote the fix a bit.
ref #383 .
2013-11-15 14:03:57 -05: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
Virgil Dupras
ded88700a3
Fix TypeError crash on failed imports under py3.3.
...
Starting with Python 3.3, NamespacePath passed to importlib hooks
seem to have lost the ability to be accessed by index.
We wrap the index access in a try..except and wrap the path in a
list if it happens.
Fixes #383 .
2013-11-08 16:59:13 -05: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
75328b66e6
fix tests on py32/py33
2013-10-22 11:26:29 +02:00
holger krekel
cf9d345382
fix unicode handling with junitxml, fixes issue368.
2013-10-21 16:54:25 +02:00
holger krekel
0d8392bc45
fix unicode handling with new monkeypatch.setattr(import_path, value)
...
API. Thanks Rob Dennis. Fixes issue371.
2013-10-21 14:01:02 +02: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
d81b703f10
avoid one surprising case of marker malfunction/confusion::
...
@pytest.mark.some(lambda arg: ...)
def test_function():
would not work correctly because pytest assumes @pytest.mark.some
gets a function to be decorated already. We now at least detect if this
arg is an lambda and thus the example will work. Thanks Alex Gaynor
for bringing it up.
2013-10-11 14:36:54 +02:00
holger krekel
124e58e42d
merge
2013-10-11 09:30:08 +02:00
Jason R. Coombs
ee5b836e27
Implement suggestions by HPK
2013-10-10 17:39:37 -04:00
Jason R. Coombs
a4c17dfb19
Register the AssertionRewritingHook loader with pkg_resources; fixes #366 .
2013-10-10 11:56:12 -04:00
holger krekel
a5d4c20905
make "--runxfail" turn imperative pytest.xfail calls into no ops
...
(it already did neutralize pytest.mark.xfail markers)
2013-10-09 22:55:20 +02:00
holger krekel
0335c6d750
bump version to 2.3.3.dev1
2013-10-05 21:39:16 +02:00
Benjamin Peterson
56e6ae567c
fix detection of the coding cookie when it is on the second line of the file ( fixes #330 )
2013-10-05 15:16:08 -04:00
Benjamin Peterson
33b663e03d
fix coding cookie detection logic
2013-10-05 15:03:04 -04:00
holger krekel
19a76337a4
add pluginmanager.do_configure(config) as a link to
...
config.do_configure() for plugin-compatibility
add some more plugins to plugin-test.sh
2013-10-04 11:36:45 +02:00
holger krekel
cec7d47c1f
remove fd-fixing attempt at startup of pytest. It's
...
not clear it's actually needed and it's not nice
to still do FD-dupping when "-s" is specified.
2013-10-03 18:53:40 +02:00
holger krekel
3d00cd35fc
fix python2.5 issues
2013-10-03 18:25:03 +02:00
holger krekel
cb65c56037
fix issue365 and depend on a newer py versions which uses colorama
...
for coloring instead of its own ctypes hacks.
2013-10-03 17:46:36 +02:00
holger krekel
ae090740c5
always dupfile if os.dup is available
2013-10-03 16:47:55 +02:00
holger krekel
2248a31a44
more fixes regarding marking, in particular plugins should use add_marker/get_marker now.
2013-10-03 15:43:56 +02:00
holger krekel
9fdfa155fb
fix issue354: avoid tmpdir fixture to create too long filenames especially
...
when parametrization is used
2013-10-03 14:22:54 +02:00
holger krekel
e49eca8d59
simplify the implementation of NodeKeywords getting rid of __ descriptors appearing there.
2013-10-03 13:53:22 +02:00
Andreas Zeidler
42b1033385
allow test items to not be associated with a test function
...
this is needed for plugins like `pytest-pep8` or `pytest-flakes`
2013-10-02 15:55:28 +02:00
holger krekel
05f6422392
remove unused imports (using "importchecker" project)
2013-10-02 14:32:40 +02:00
holger krekel
071960250f
avoid "IOError: Bad Filedescriptor" on pytest shutdown by not closing
...
the internal dupped stdout (fix is slightly hand-wavy but work).
2013-10-02 12:39:01 +02:00
holger krekel
2b8f4214c3
2.4.1 release preps
2013-10-02 09:16:51 +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
Anthon van der Neut
236fff00ad
complete_dotted: fix for #361 , filecompleter on dot files had differing behaviour from bash
...
Now if the prefix to expands ends in the directory seperator, then
'..../.*' is globbed as well.
2013-10-01 16:33:15 +02:00
Floris Bruynooghe
1db6fc87c7
Allow unicode strings in parser.add_argument()
...
This fixes issue360 by also converting unicode strings to the argparse
syntax instead of just native strings.
2013-10-01 13:20:20 +01:00
holger krekel
895d52471b
bump version to dev again, new CHANGELOG section for 2.4.1.dev.
2013-10-01 12:51:52 +02:00
holger krekel
d226b2faf4
release announcement, bump version numbers, some test adapatations because of random win32 test failures.
2013-10-01 12:37:11 +02:00
holger krekel
f9927e457b
bump version to 2.4.0
2013-10-01 10:43:36 +02:00
holger krekel
2c7d00579b
bump version, some windows test fixes, prevent logging from raising exceptions at the end (finally), add py25 to tox.ini.
2013-09-30 16:09: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
db6f347db6
fix issue358 -- introduce new pytest_load_initial_conftests hook and make capturing initialization use it, relying on a new (somewhat internal) parser.parse_known_args() method.
...
This also addresses issue359 -- plugins like pytest-django could implement a pytest_load_initial_conftests hook like the capture plugin.
2013-09-30 13:14:16 +02:00
holger krekel
4b709037ab
some more separation of core pluginmanager from pytest specific functionality.
...
Idea is to have the PluginManager be re-useable from other projects at some point.
2013-09-30 13:14:14 +02:00
holger krekel
d946299b0a
shift pytest_configure/unconfigure/addoption/namespace hook calling to config object.
...
The _pytest.config module itself is no longer a plugin but the actual
config instance is plugin-registered as ``pytestconfig``.
This allows to put most pytest specific logic to _pytest.config instead
of in the core pluginmanager.
2013-09-30 13:14:14 +02:00
holger krekel
694c6fd0e7
localize some argcomplete-related functionality
2013-09-30 10:19:06 +02:00
holger krekel
a930f44e60
introduce pluginmanager.ensure_teardown() which allows
2013-09-28 22:23:00 +02:00
holger krekel
ac19212b2d
remove very likely unused pytest_plugin_unregister hook (pytest itself and all plugins i know don't use it)
2013-09-28 22:22:57 +02:00
holger krekel
03c314e3be
refine fromdictargs to avoid an uncessary re-setup of the pluginmanager
2013-09-28 22:22:55 +02:00
holger krekel
fad7bd4393
simplify Config constructor
2013-09-28 22:22:53 +02:00
holger krekel
b80e875525
move FILE_OR_DIR constant out
2013-09-28 09:52:41 +02:00
holger krekel
1fc466e8ac
add terminalreporter.section|line methods to print extra information.
2013-09-27 15:48:03 +02:00
holger krekel
48838727ae
bump version
2013-09-27 12:43:49 +02:00
holger krekel
39503932a4
merge monkeypatch.replace into monkeypatch.setattr, also support monkeypatch.delattr.
2013-09-27 12:33:06 +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
030c337c68
don't manipulate FDs at all if output capturing is turned off.
2013-09-27 09:49:39 +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
2bdd034242
fix issue355: junitxml generates name="pytest" tag.
2013-09-26 08:45:50 +02:00
holger krekel
d565df90ad
fix issue333: fix a case of bad unittest/pytest hook interaction.
2013-09-09 09:56:53 +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
109e2f215f
add nose.SkipTest for python2.6 -- which apparently is a subclass from python2.7 on.
...
addresses issue236
2013-09-06 12:48:54 +02:00
holger krekel
41df742faf
fix <py27 tests with nose
2013-09-06 12:32:55 +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
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
holger krekel
57f997b0b4
strike distribute dep
2013-08-11 18:19:58 +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
holger krekel
3fddf99661
Merged in anthon_van_der_neut/pytest_argcomplete (pull request #63 )
...
argcomplete: FastFileCompleter that doesn't call bash in subprocess, strip prefix dir
2013-08-06 15:41:54 +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
Andreas Pelme
afa88a479b
Added color to the quite mode summary. Also changed the output format
...
slightly to match the output of the standard summary.
--HG--
branch : quiet-color-summary
2013-08-05 09:45:10 +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
holger krekel
b2ebb80878
fix issue322: tearDownClass is not run if setUpClass failed. Thanks
...
Mathieu Agopian for fixing. The patch moves handling setUpClass
into a new autofixture. (XXX impl-decide if rather adding addfinalizer()
API to node's would have a similar effect)
2013-08-02 00:02:28 +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