Ronny Pfannschmidt
177637bfb9
Redo the Capture integration propperly
2014-01-24 21:22:19 +01:00
holger krekel
400b51caf6
mark encoding test as xfail also on py2
2014-01-22 22:18:33 +01:00
holger krekel
9aaf0fd340
backing out Ronny's PR because it was merged too early (still has failing tests)
2014-01-22 22:15:40 +01:00
Ronny Pfannschmidt
ac2f2b1deb
add notes on the copied pylib version
2014-01-22 21:50:07 +01:00
Ronny Pfannschmidt
0be961a0f3
capture tests: move imports and declarations to the top
2014-01-22 21:46:35 +01:00
Ronny Pfannschmidt
3cc58c2f78
rewrite all testing uses of py.io to _pytest.capture
2014-01-22 19:32:23 +01:00
Ronny Pfannschmidt
0ac94134f5
initial code import for capture transfer
2014-01-22 19:04:38 +01:00
Ronny Pfannschmidt
c142f2551d
xfailing test for captire encoding issues with binary stdio
2014-01-22 18:07:54 +01:00
holger krekel
d02d0bb7b7
Merged in pelme/pytest/py2_pkg_skip (pull request #107 )
...
fixed issue428: Skip test for packages without __init__.py on Python 2
2014-01-22 14:46:22 +01:00
Andreas Pelme
fe4cdd8a90
fixed issue428: Skip test for packages without __init__.py on Python 2
...
--HG--
branch : py2_pkg_skip
2014-01-22 14:32:22 +01:00
Jurko Gospodnetić
54a143e6a8
add test: '--markers' listing info from plugins in current folder
...
When pytest is called with the '--markers' option, it should collect marker
information from the current folder, and they should get loaded and used
correctly before the '--markers' output is constructed.
2014-01-22 14:16:39 +01:00
Floris Bruynooghe
e12fe64b54
Include py version in the terminal output
...
This can help to reproduce bugs when looking at the output pasted into
bug reports.
2014-01-22 11:27:15 +01:00
Jurko Gospodnetić
8e457338ee
fix handling MarkDecorators called with a single positional plus keyword args
...
When a MarkDecorator instance is called it does the following:
1. If called with a single class as its only positional argument and no
additional keyword arguments, it attaches itself to the class so it gets
applied automatically to all test cases found in that class.
2. If called with a single function as its only positional argument and no
additional keyword arguments, it attaches a MarkInfo object to the
function, containing all the arguments already stored internally in the
MarkDecorator.
3. When called in any other case, it performs a 'fake construction' call, i.e.
it returns a new MarkDecorator instance with the original MarkDecorator's
content updated with the arguments passed to this call.
When Python applies a function decorator it always passes the target class/
function to the decorator as its positional argument with no additional
positional or keyword arguments. However, when MarkDecorator was deciding
whether it was being called to decorate a target function/class (cases 1. & 2.
as documented above) or to return an updated MarkDecorator (case 3. as
documented above), it only checked that it received a single callable positional
argument and did not take into consideration whether additional keyword
arguments were being passed in as well.
With this change, it is now possible to create a pytest mark storing a function/
class parameter passed as its only positional argument and accompanied by one or
more additional keyword arguments. Before, it was only possible to do so if the
function/class parameter argument was accompanied by at least one other
positional argument.
Added a related unit test.
Updated MarkDecorator doc-string.
2014-01-20 01:27:33 +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
Jurko Gospodnetić
83620ced2e
trim trailing spaces
2014-01-18 10:40:20 +01:00
Lukasz Balcerzak
99277be25f
Updated error message to be more helpful
...
Also, added misssing test
2013-12-19 14:29:57 +01:00
holger krekel
41bddb48a1
remove unused var (fixes flakes tests)
2013-12-16 12:38:15 +01:00
Floris Bruynooghe
fd8638652d
Still print this, but use py2/py3 compat syntax
...
I realised being able to print is probably an essential part of this
test which I may have inadvertendly disabled, so correct that.
2013-12-16 10:51:04 +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
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
Floris Bruynooghe
1b7c70eab4
Do not use py2-only print, breaks py3 testruns
2013-12-15 22:12:38 +00:00
Ronny Pfannschmidt
e843b028e6
fix issue404 by more strict junitxml escape
2013-12-13 10:28:23 +01:00
holger krekel
98135a3d30
remove unusued import
2013-12-12 06:55:05 +01:00
holger krekel
307a41339c
fix expicit assert messages for Python2.6: it turns out python2.6
...
instantiates the AssertionError differently for tuples. Test
and fix to neutralize it.
2013-12-12 06:41:48 +01:00
holger krekel
fa80b8ad17
add changelog: fix issue319 - correctly show unicode in assertion errors. Many
...
thanks to Floris Bruynooghe for the complete PR. Also means
we depend on py>=1.4.19 now.
2013-12-11 11:28:06 +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
7766526992
address issue122 -- explode "params" into a list in fixture function decorators
2013-12-09 10:48:15 +01:00
holger krekel
0d7af592c0
speed up a test
2013-12-09 08:14:39 +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
320137a4aa
Merged in msabramo/pytest/color_option (pull request #91 )
...
Remove u'' literal in test_color_{yes,no} for Python 3.2 compat
2013-12-08 20:56:21 +01:00
Marc Abramowitz
0278dc9b6f
Remove u'' literal in test_color_{yes,no} for Python 3.2 compat
...
--HG--
branch : color_option
2013-12-08 11:39:55 -08:00
holger krekel
9e03ea8215
Merged in msabramo/pytest/color_option (pull request #90 )
...
Add option: --color=(yes/no/auto)
2013-12-08 20:19:37 +01:00
Marc Abramowitz
60f5b15f20
Remove superfluous `monkeypatch` arg to test_color_yes
...
--HG--
branch : color_option
2013-12-07 12:04:23 -08: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
daec4c70b8
refactor sorting wrt class-scopes. This fixes issue396 and also simplifies
...
the internal sorting algorithm a bit.
2013-12-07 19:31:27 +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
Marc Abramowitz
bec6ee5c29
Assert 'test session starts' in output for test_color_{yes,no}
...
--HG--
branch : color_option
2013-12-06 11:58:04 -08:00
Marc Abramowitz
23fa4cec61
Add option: --color=(yes/no/auto)
...
--HG--
branch : color_option
2013-12-06 11:49:48 -08:00
holger krekel
cb485e5af4
reopen #246 -- it turns out parametrized finalization ordering is not fully fixed -- i modified the test and marked it xfail for now.
2013-12-04 16:09:37 +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
5dbf4fc0c2
fix importorskip test
2013-12-03 09:40:40 +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
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
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
663f824fc4
simplify basedir isolation
2013-11-21 14:54:46 +01:00
holger krekel
2700a94d49
remove an old duplicate marker and use recent pytest mechanism for parametrization
2013-11-21 14:40:14 +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
49119e31bf
fix py25 compat
2013-11-21 12:31: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
05fbd490da
addresses issue246: add a test for module/function scope that shows that
...
finalizer ordering is wrong.
2013-11-21 09:42:24 +01:00
holger krekel
5322f057a0
move two fixture test modules into bigger testing/python/fixture.py
2013-11-21 09:26:45 +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
9eff939b02
remove testing of xdist+genscript -- doesn't really make sense
...
because for installing pytest-xdist you need pytest installed
which defeats the purpose of genscript.
2013-11-20 15:46:23 +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
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
82846777a7
add missing importorskip
2013-11-19 12:21:47 +01:00
holger krekel
7f49e0fddc
xfail a test on pypy that checks wrong encoding/ascii (pypy does
...
not error out). fixes issue385.
also re-enable pypy tests in tox.
2013-11-19 11:18:51 +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
holger krekel
fde947e1a8
Merged in paylogic/pytest/ignore-autocomplete-on-darwin (pull request #84 )
...
ignore argcomplete on darwin
2013-11-13 07:44:24 +01:00
holger krekel
ce0af892aa
Merged in paylogic/pytest/multi-level-fixture-deps-override (pull request #83 )
...
When overridden, fixture's dependencies are called from all levels of folder structure
2013-11-13 07:43:59 +01:00
Anatoly Bubenkov
ba5d4ae42f
ignore argcomplete on darwin
...
--HG--
branch : ignore-autocomplete-on-darwin
2013-11-12 13:52:16 +01:00
Anatoly Bubenkov
d18124f5ed
support python32
...
--HG--
branch : python32-test-fix
2013-11-12 13:48:17 +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
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
2697b63bcd
Fix bytes/string mismatch in test on Python 3
2013-10-10 18:01:56 -04:00
Jason R. Coombs
00c0d62c9b
Adding test capturing #366 where an error occurs when package resources are loaded from the test package.
2013-10-10 11:40:31 -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
Benjamin Peterson
8b6e42317b
add test for detecting coding cookie with CRLF newlines
2013-10-05 15:20:32 -04: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
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
5aa5b9748d
fix argcomplete-test to use sys.argv[0] if it looks like a py.test executable
2013-10-03 18:02:54 +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
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
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
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
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
8b1e53f6d3
avoid creation of file in os.getcwd() cc avanderneut
2013-09-30 08:36:31 +02:00
holger krekel
a930f44e60
introduce pluginmanager.ensure_teardown() which allows
2013-09-28 22:23:00 +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
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
Anthon van der Neut
b5a83a6af1
argcomplete_win: skip testing of argcomplete on windows
2013-09-09 12:41:29 +02:00
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