holger krekel
c08dfdc330
move bookkeeping of conftest plugins in core pluginmanager to PytestPluginManager
...
--HG--
branch : plugin_no_pytest
2015-04-22 13:33:01 +02:00
holger krekel
7049ebe4e2
avoid prepend to register api as it's redundant wrt to hooks
...
--HG--
branch : plugin_no_pytest
2015-04-22 13:31:46 +02:00
holger krekel
1ef49ac5ab
minimize HookRelay to become a pure container, refactor initialization and
...
tests of plugin management to be a bit better split between pytest
and pytest-independent bits
--HG--
branch : plugin_no_pytest
2015-04-22 13:31:46 +02:00
holger krekel
db650de372
remove redundant py check as our setup.py excludes py <=1.4 already
...
--HG--
branch : plugin_no_pytest
2015-04-22 10:04:13 +02:00
Floris Bruynooghe
240cd1f28d
Merge cleaning of sys.modules after pytester.inline_run()
...
Merged in schettino72/pytest/pytester-inline-run-clean-sys-modules
(pull request #278 ).
2015-04-21 11:00:32 +01:00
Floris Bruynooghe
31af381c56
Merged in hpk42/pytest-patches/prefer_installed (pull request #275 )
...
change test module importing behaviour to append to sys.path
2015-04-21 10:47:33 +01:00
Eduardo Schettino
bc0ecd1d06
pytester: add method ``TmpTestdir.delete_loaded_modules()``
...
, and call it from ``inline_run()`` to allow temporary modules to be reloaded.
--HG--
branch : pytester-inline-run-clean-sys-modules
2015-04-21 10:18:04 +08:00
holger krekel
bac1ccd5b3
merge fix of issue553 on pytest-2.7
2015-04-17 22:32:49 +02:00
holger krekel
0b361c62c8
Merged in getsourcelines-error-issue-553-pytest2.7 (pull request #273 )
...
Handle inspect.getsourcelines failures in FixtureLookupError
--HG--
branch : pytest-2.7
2015-04-17 22:31:55 +02:00
holger krekel
5c8e5acf9d
change test module importing behaviour to append to sys.path
...
instead of prepending. This better allows to run test modules
against installated versions of a package even if the package
under test has the same import root. In this example::
testing/__init__.py
testing/test_pkg_under_test.py
pkg_under_test/
the tests will preferrably run against the installed version
of pkg_under_test whereas before they would always pick
up the local version.
--HG--
branch : prefer_installed
2015-04-17 22:25:35 +02:00
Floris Bruynooghe
fb07a09964
Merge pull request #274 from pytest-2.7
...
fixed regression to 2.6.4 which surfaced e.g. in lost stdout capture printing
2015-04-17 11:10:47 +01:00
Floris Bruynooghe
6e2bc7712c
Merged in hpk42/pytest-patches/systemexit (pull request #274 )
...
fixed regression to 2.6.4 which surfaced e.g. in lost stdout capture printing
--HG--
branch : pytest-2.7
2015-04-17 11:07:24 +01:00
holger krekel
173bd13ece
backport Y->y fix from floris
...
--HG--
branch : pytest-2.7
2015-04-17 11:57:09 +02:00
holger krekel
e04273df57
fixed regression to 2.6.4 which surfaced e.g. in lost stdout capture printing
...
when tests raised SystemExit.
--HG--
branch : systemexit
2015-04-17 11:47:29 +02:00
Bruno Oliveira
15328c04eb
Handle inspect.getsourcelines failures in FixtureLookupError
...
Fixes #553
--HG--
branch : getsourcelines-error-issue-553-pytest2.7
2015-04-15 19:31:22 -03:00
Floris Bruynooghe
c7a60af666
Use capital Y as the tests look for that
2015-04-13 09:08:10 +01:00
Floris Bruynooghe
09dff73607
Merge pytest-2.7 for issue660 fix
2015-04-13 00:04:53 +01:00
Floris Bruynooghe
bf0b70aa66
Some docstrings for the pytester plugin
...
These aren't quite complete but are a jolly good start anyway. It
seems better to commit this now then leave it lingering until it
gets lost.
2015-04-11 17:07:37 +01:00
holger krekel
79c0515945
merge pytest-2.7 branch
...
--HG--
branch : issue660
2015-04-04 16:35:14 +02:00
holger krekel
74019025b9
shift default to 2.8.0.dev
2015-04-04 16:32:25 +02:00
holger krekel
b55d66d0cf
- avoid setting of versions and targets in conf.py and Makefile
...
as discussed on pytest-dev
- "make help" now prints pytest specific information.
- add a "_getdoctarget.py" helper
- make ``setup.py`` read the version from ``_pytest/__init__.py``
--HG--
branch : release-checklist
2015-04-02 10:38:25 +02:00
holger krekel
3ed3e51997
fix issue660: properly report fixture scope mismatches independent
...
from fixture argument ordering.
--HG--
branch : issue660
2015-04-01 18:42:48 +02:00
holger krekel
e16983d265
bump versions to dev, including changing the doc-install target to "dev"
...
instead of "latest"
2015-03-26 13:48:59 +01:00
holger krekel
d2a8866bce
bump verrsion to python2.7, fix a too precise test for windows, regen docs
2015-03-26 09:34:10 +01:00
Anatoly Bubenkov
55eb82c434
fix pep257
2015-03-23 21:28:29 +01:00
Anatoly Bubenkov
d94a29e866
merge almarklein/default
2015-03-23 21:25:10 +01:00
Anatoly Bubenkov
ce95437dee
merge with default
...
--HG--
branch : issue463
2015-03-23 20:41:27 +01:00
Brianna Laugher
c019e489d2
Change docstring style
...
--HG--
branch : issue463
2015-03-23 20:27:53 +01:00
Brianna Laugher
43e4fcf6dd
Raise specific MarkerError rather than generic ValueError
...
--HG--
branch : issue463
2015-03-23 20:01:58 +01:00
tigeraniya
65ca554230
duplicate assignment
2015-03-23 20:47:34 +05:30
holger krekel
f3580bee2d
fix issue435: make reload() work when assert rewriting is active.
...
Thanks Daniel Hahler.
2015-03-23 10:08:47 +01:00
Brianna Laugher
deb163d237
Change string format syntax from {} to {0} for py2.6
...
--HG--
branch : issue463
2015-03-21 23:57:06 +01:00
Brianna Laugher
6f81602ba2
Use hasattr instead of try/except
...
--HG--
branch : issue463
2015-03-21 23:30:13 +01:00
Brianna Laugher
ac17f20d98
#463
...
Raise a ValueError early if user misspells 'parametrize' as 'parameterize'.
--HG--
branch : issue463
2015-03-21 23:06:25 +01:00
Almar Klein
9726fafa98
allow postmortem debugging on failed test
2015-03-21 09:26:35 +01:00
Bruno Oliveira
eead0365b5
Merged in parametrized-fixture-override (pull request #257 )
...
allow to override parametrized fixtures with non-parametrized ones and vice versa
2015-03-12 09:40:56 -03:00
Daniel Hahler
5d6b0a59c0
Strip docstrings in output with `--fixtures`
...
Fixes https://bitbucket.org/pytest-dev/pytest/issue/550 .
--HG--
branch : strip-docstrings-from-fixtures
2015-03-04 17:00:24 +01:00
Daniel Hahler
c629f6b18b
Fix `reload()` with modules handled via `python_files`
...
If a module exists in `sys.modules` already, `load_module` has to return it.
Fixes https://bitbucket.org/pytest-dev/pytest/issue/435
--HG--
branch : fix-reload
2015-03-04 16:21:27 +01:00
Anatoly Bubenkov
33c2a3a3e5
make loop more readable
...
--HG--
branch : parametrized-fixture-override
2015-03-02 08:55:57 +01:00
Anatoly Bubenkov
c4623939af
support override of the parametrized fixture on the test level
...
--HG--
branch : parametrized-fixture-override
2015-03-01 15:15:37 +01:00
Anatoly Bubenkov
060609317a
allow to override parametrized fixtures with non-parametrized ones and vice versa
...
--HG--
branch : parametrized-fixture-override
2015-03-01 13:54:43 +01:00
Ronny Pfannschmidt
1e6e373913
Merged in issue616 (pull request #252 )
...
fix issue616 - conftest visibility fixes.
2015-02-28 10:02:58 +01:00
holger krekel
c3ca44b46f
change links to go to the new pytest-dev bitbucket team's repo location
...
--HG--
branch : docs_community
2015-02-27 12:27:40 +01:00
holger krekel
660b84a052
Merged in cpcloud/pytest/ignore-doctest-import-errors (pull request #243 )
...
Add option to ignore import errors in doctests
2015-02-26 21:59:54 +01:00
holger krekel
d73e689991
fix issue616 - conftest visibility fixes. This is achieved by
...
refactoring how nodeid's are constructed. They now are always
relative to the "common rootdir" of a test run which is determined by
finding a common ancestor of all testrun arguments.
--HG--
branch : issue616
2015-02-26 21:56:44 +01:00
Ronny Pfannschmidt
415c76b255
Merged in tush/pytest/junit-verbose-failures (pull request #240 )
...
Made failure message in junit xml report more informative
2015-02-22 19:13:07 +01:00
Phillip Cloud
f2ca0b8170
Add option to ignore import errors in doctests
...
--HG--
branch : ignore-doctest-import-errors
2015-02-08 01:25:23 -05:00
Dave Hunt
8f12269db7
Use shlex to split the arguments from PYTEST_ADDOPTS.
...
--HG--
branch : env-addopts
2015-01-26 10:39:21 +00:00
Dave Hunt
7325a5fe2e
Support setting configuration using the PYTEST_ADDOPTS environment variable.
...
--HG--
branch : env-addopts
2015-01-23 20:09:42 +00:00
tush home
9f4d0be895
Failure message in junit xml report now are more informative
...
--HG--
branch : junit-verbose-failures
2015-01-20 01:45:26 +03:00
Bruno Oliveira
7e15fb7f2d
Attempting to patch terminal only if terminalreporter is available
...
This fixes the flag "--paste=all" when running tests with xdist, as slaves would
attempt to patch a non-existing terminal during pytest_configure. Only the master
node has a terminalreporter installed.
--HG--
branch : pastebin-xdist
2015-01-19 19:20:01 -02:00
Ronny Pfannschmidt
5941b2e071
fix issue 655: crude workarounds around python2/3 exception leaks
2015-01-09 19:55:49 +01:00
James Tatum
bca19a1156
Cleaning up the docstrings in monkeypatch.py
2015-01-08 17:15:22 -08:00
Floris Bruynooghe
1d15bb2880
Merged in tomviner/pytest/format_boolop_percent6 (pull request #231 )
...
fix for issue #615 : _format_boolop must escape %
2014-10-28 13:26:21 +00:00
holger krekel
959395b796
fix py26 compatibility
2014-10-27 10:02:15 +01:00
TomV
f6caf230f8
fix for issue615: _format_boolop must escape %
...
fix test for issue615: expression must eval False
--HG--
branch : format_boolop_percent6
2014-10-27 08:57:58 +00:00
holger krekel
f2cdbe776e
bump version to 2.7 on default
2014-10-26 10:52:04 +01:00
Dinu Gherman
0c8569dcb0
Added explanation for the binary blob in runtests.py
2014-10-24 13:04:20 +02:00
holger krekel
5f2444d2a2
Merged in nicoddemus/pytest/fix-pastebin (pull request #228 )
...
Fix --pastebin option
2014-10-23 09:08:30 +02:00
Bruno Oliveira
537dca477b
Fixing --pastebin option by using a POST request instead of a XMLRPC call
...
fixes #614
--HG--
branch : fix-pastebin
2014-10-22 21:52:40 -02:00
Floris Bruynooghe
8d19ccb56f
Merged in pfctdayelise/pytest/issue351 (pull request #161 )
...
Fixes issue351: Add ability to specify parametrize ids as a
callable, to generate custom test ids. + tests, docs
Hg branch merge
2014-10-22 23:18:01 +01:00
holger krekel
eac4514227
Merged in nicoddemus/pytest/python-classes-glob (pull request #225 )
...
added support for glob-style patterns to python_classes and python_functions config options
2014-10-22 07:14:10 +02:00
Bruno Oliveira
0b620c304b
checking that option contains glob characters before calling fnmatch
...
requested during code review
--HG--
branch : python-classes-glob
2014-10-20 18:36:31 -02:00
David Röthlisberger
7371d436d2
Fix assertion.rewrite on read-only filesystem
2014-10-17 21:18:37 +01:00
Bruno Oliveira
b928928942
added support for glob-style patterns to python_classes and python_functions config options
...
fixes #600
--HG--
branch : python-classes-glob
2014-10-16 19:27:10 -03:00
TomV
857db415bc
fix some spelling mistakes
...
--HG--
branch : some_spelling_fixes
2014-10-13 23:16:26 +01:00
Bruno Oliveira
b2341899c5
Adding "auto" to help for "--tb" option
2014-10-10 20:43:33 +00:00
holger krekel
b7dd8eac8e
remove unused import
2014-10-09 22:45:33 +02:00
holger krekel
cea9367739
Merged in HolgerPeters/pytest (pull request #221 )
...
Make doctest flags configurable
2014-10-09 17:05:48 +02:00
holger krekel
8c91ffc701
some docs and refined semantics for wrappers
2014-10-09 12:21:01 +02:00
holger krekel
c58770bfef
re-scan methods during plugin register and unregister and not
...
during hook calling anymore. Simplify register/getplugin api of PluginManager
2014-10-09 10:47:32 +02:00
holger krekel
04b8111f8f
improve docstring, remove unused custom Exception
2014-10-09 09:55:46 +02:00
holger krekel
5999368002
remove all occurences of "__multicall__" on hook impls in pytest/*.
...
also simplify pytest_runtest_markereport hook in _pytest/skipping.py
while touching the code anyway.
2014-10-08 20:23:40 +02:00
Holger Peters
61caa4f776
Add documentation for doctest flags and remove dead code
2014-10-08 15:48:41 +02:00
Holger Peters
f66e0825b2
Add configuration option for doctest flags
2014-10-08 14:31:17 +02:00
holger krekel
c3d1986101
- refactor wrapped call support to also accomodate
...
pytest.mark.hookwrapper
- introduce a CallOutcome class to hold the result/excinfo status of
calling a function.
- rename add_method_controller to add_method_wrapper
2014-10-08 11:27:14 +02:00
holger krekel
b6e619413f
merge pytest default
2014-10-07 18:11:15 +02:00
holger krekel
68f3818562
fix add_method_controller to deal properly in the event of exceptions.
...
add a docstring as well.
2014-10-07 16:16:47 +02:00
Anatoly Bubenkov
a298077461
merge with default
2014-10-07 01:06:15 +02:00
Anatoly Bubenkov
a759da0208
Escape % character in the assertion message. closes #604
2014-10-07 01:01:21 +02:00
holger krekel
c45b7012f5
docs for "pytest_addhooks" hook. Thanks Bruno Oliveira.
...
updated plugin index docs. Thanks Bruno Oliveira.
fix issue557: with "-k" we only allow the old style "-" for negation
at the beginning of strings and even that is deprecated. Use "not" instead.
This should allow to pick parametrized tests where "-" appeared in the parameter.
2014-10-06 14:26:03 +02:00
holger krekel
767e44ef29
cleanup core collection of python methods and remove unncessary cache
2014-10-06 14:06:17 +02:00
holger krekel
818a412d29
simplify internal pytester machinery
2014-10-06 13:37:57 +02:00
holger krekel
2cb0145bce
fix issue557: with "-k" we only allow the old style "-" for negation
...
at the beginning of strings and even that is deprecated. Use "not" instead.
This should allow to pick parametrized tests where "-" appeared in the parameter.
2014-10-06 12:11:48 +02:00
holger krekel
3d84f35850
simplify method to record calls
2014-10-04 15:49:31 +02:00
holger krekel
d8f4663f49
factor out a small "wrapping" helper
2014-10-04 15:49:31 +02:00
Dj Gilcrease
a098226ee4
change the defaults from a tuple to a list so I can use config.addinivalue_line("python_files", "...") to append new options in my own plugins
2014-10-02 21:32:35 +00:00
Dj Gilcrease
05d4a3f9eb
change the defaults from a tuple to a list so I can use config.addinivalue_line("norecursedirs", "...") to append new options in my own plugins
2014-10-02 21:27:19 +00:00
holger krekel
69ff29bf44
remove overhead for tracing of hook calls and remove some old unused code
2014-10-02 15:25:42 +02:00
holger krekel
c7c4f62f77
optimize argument slicing when calling plugin hooks
2014-10-01 14:55:54 +02:00
holger krekel
f250e912eb
simplify _scan_plugin implementation and store argnames on HookCaller
2014-10-01 13:57:35 +02:00
holger krekel
28c785a0d1
call scanning of plugins directly, code is shifted from helpconfig.py to core.py
2014-10-01 12:20:11 +02:00
holger krekel
ea5fb0c153
refine internal management of plugins and conftest files
2014-10-01 12:19:11 +02:00
Anatoly Bubenkov
9a0f2a9fb7
Improve assertion failure reporting on iterables, by using ndiff and pprint.
2014-09-27 01:29:47 +00:00
holger krekel
49b7237581
bump version to 2.6.4.dev
2014-09-24 16:27:34 +02:00
holger krekel
2eef674615
regen and fix some docs (tox -e regen)
...
bump versions, depend on already released py-1.4.25
2014-09-24 14:46:56 +02:00
Floris Bruynooghe
62b8712ca9
Let xfail work on non-python Items
...
For some reason xfail was only implemented on non-python Item
instances. This removes this guard which means plugins creating new
items can raise pytest.xfail.Exception and it will work as expected.
2014-09-23 23:55:26 +01:00
holger krekel
be503f1c43
Merged in wosc/pytest (pull request #204 )
...
Introduce pytest_enter_pdb hook
2014-09-23 14:04:47 +02:00
holger krekel
5abca55412
Merged in nicoddemus/pytest (pull request #203 )
...
fix issue575: xunit-xml reporting collection errors as failures
2014-09-22 19:25:34 +02:00
holger krekel
79d2edcbff
Merged in flub/pytest (pull request #207 )
...
Show both user assertion msg as explanation (issue549)
2014-09-22 19:16:10 +02:00
David Szotten
bc4eecbbac
add `encoding` attr to DontReadFromInput
...
required by https://docs.python.org/2/library/stdtypes.html#file.encoding
and used e.g. by ipdb at _import_ time
--HG--
branch : dontreadfrominput-encoding
2014-09-22 12:19:27 +01:00
Wolfgang Schnerring
1408c9f077
Introduce pytest_enter_pdb hook
2014-09-18 14:58:42 +02:00
Bruno Oliveira
418607846a
fix issue575: xunit-xml reporting collection errors as failures
2014-09-15 22:04:46 -03:00
holger krekel
b6dcfd4377
fix conftest related fixture visibility issue: when running with a
...
CWD outside a test package pytest would get fixture discovery wrong.
Thanks to Wolfgang Schnerring for figuring out a reproducable example.
--HG--
branch : conftest-nodeid
2014-09-15 12:44:16 +02:00
Floris Bruynooghe
a8dfe34bfb
Merged in uweschmitt/pytest/default (pull request #194 )
2014-09-05 23:57:18 +01:00
Floris Bruynooghe
7d9d502a01
Use py3k compatible .__getattr__() code
...
From the python-dev thread it seemed like using
object.__getattribute__(self, 'name') is the cleanest way of
implementing a class wich uses .__getattr__() and should be
pickelable. That only works on new-style classes so this also turns
HookProxy into a new-style class on py2.
This also re-writes the test to not use cPickle so it runs on py3k.
2014-09-05 23:55:14 +01:00
holger krekel
09a44f4cac
fix issue582: fix setuptools example, thanks Laszlo Papp and Ronny
...
Pfannschmidt.
2014-09-05 15:34:01 +02:00
holger krekel
7dad3cb157
prepare 2.6.2, release announcement, also add HOWTORELEASE.rst
2014-09-05 13:13:23 +02:00
holger krekel
745737e337
strike python2.5 from test code cc @flub
2014-09-05 09:50:40 +02:00
Floris Bruynooghe
eae1055fb0
Merged in nocoddemus/pytest/cx_freeze-support (pull request #189 )
2014-09-03 21:55:46 +01:00
Benjamin Peterson
c0f091d540
remove debugging turd
2014-09-01 16:51:44 -04:00
Benjamin Peterson
d4cd1aad8e
improvements to rewrite cache invalidation
...
- stat the source path before it is read.
- Validate the source size in addition to mtime.
2014-09-01 16:51:27 -04:00
Floris Bruynooghe
37bd1e03cb
Show user assertion messages and instrospection together
...
User provided messages, or any valid expression given as second
argument to the assert statement, are now shown in addition to the
py.test introspection details. Formerly any user provided message
would entirely replace the introspection details.
Fixes issue549.
2014-08-23 18:14:25 +02:00
Floris Bruynooghe
79c2a47985
Improve the docstring further
2014-08-23 12:10:16 +02:00
Floris Bruynooghe
e7ed45a5d4
Explain why this is important
2014-08-19 20:50:25 +02:00
Floris Bruynooghe
424479cf0f
Escape newlines in repr for assertion rewriting
...
The assertion formatting mini-language depends on newlines being
escaped. Unfortunately if the repr of an object contained
newlines the rewriting module did not escape those, which is now
fixed.
Fixes issue453.
2014-08-18 20:07:38 +02:00
Bruno Oliveira
ccd67733fb
standard lib modules no longer required in freeze_includes() and updated docs
...
--HG--
branch : cx_freeze-support
2014-08-11 20:20:41 -03:00
Bruno Oliveira
5873ca5146
Merging with default
...
--HG--
branch : cx_freeze-support
2014-08-11 20:07:11 -03:00
Bruno Oliveira
d2903507d8
Moved freeze_includes() to genscript
...
--HG--
branch : cx_freeze-support
2014-08-11 20:03:14 -03:00
uweschmitt
224b3a2eda
hopefully final fix for strange infinite recursion bug
2014-08-11 12:57:47 +02:00
uweschmitt
5d024c7433
hopefully final fix for strange infinite recursion bug
2014-08-11 12:42:36 +02:00
holger krekel
e98f77037e
fix issue561 example adapted to python3.
2014-08-08 15:20:37 +02:00
holger krekel
e5eaf02e19
finalize pytest-2.6.1 release, regen docs
2014-08-07 21:41:51 +02:00
uweschmitt
c0d1f3f7ef
even better fix as replacement for last commit which was wrong
2014-08-07 17:17:05 +02:00
uweschmitt
9597d3dafe
better fix as replacement for last commit
2014-08-07 16:56:45 +02:00
uweschmitt
f7282b84bd
fixed strange infinite recursion bug
2014-08-07 16:13:12 +02:00
holger krekel
1d7b574b31
fix issue555: just add "errors" attribute to internal Capture stream.
2014-08-07 11:05:42 +02:00
holger krekel
d16fdb378c
merge PR192, streamline a bit.
2014-08-07 10:42:23 +02:00
Bruno Oliveira
cc092afd3b
updated CHANGELOG and trace error message as requested in review
...
fixes issue #437
--HG--
branch : assertionrewrite-currupted-pyc
2014-08-04 20:38:50 -03:00
Bruno Oliveira
fd4485a540
Fixed assertionrewrite._read_pyc to handle corrupted pyc files properly
...
This seems to be the cause for issues #437 and #301 .
--HG--
branch : assertionrewrite-currupted-pyc
2014-08-02 18:01:28 -03:00
Floris Bruynooghe
3e875178ad
Merge default
2014-08-01 23:06:24 +01:00
holger krekel
97b671057d
put some imports back to function-level and streamline py2/py3 compat in one place
2014-08-01 10:12:53 +02:00
Floris Bruynooghe
4e8438afc8
Simply show the node ID for verbose output
...
This strips the line number, /@\d/, from the verbose output so it is
directly the node ID of the test. This in turn means no special logic
for accepting the line number as part of the node ID is needed when
parsing the command line.
2014-08-01 00:29:35 +01:00
Bruno Oliveira
5603a0cd4b
Removing py.std usage from _pytest
2014-07-31 19:13:40 -03:00
Bruno Oliveira
b7b96b24d8
Docs about cx_freeze support and minor adjustments
...
--HG--
branch : cx_freeze-support
2014-07-30 21:50:00 -03:00
Bruno Oliveira
990e7bf3b9
first implementation and tox environment for cx-freeze support
...
--HG--
branch : cx_freeze-support
2014-07-30 19:16:51 -03:00
Anatoly Bubenkov
8ff8dd3ae9
Merged in fix_initial_parsing (pull request #186 )
...
Fix issue544 and fix another issue with parsing ``::``
2014-07-28 14:16:02 +02:00
holger krekel
83e0b52294
speedup @ replacement for the massive lists from pytest-bdd :)
...
--HG--
branch : fix_initial_parsing
2014-07-28 13:53:53 +02:00
holger krekel
1265612465
fix issue547 2.6 regression: capsys/capfd now work again when output capturing ("-s") is disabled.
2014-07-28 13:17:37 +02:00
holger krekel
40eed363e8
fix issue544 by only removing "@NUM" at the end of a part (parts are
...
separated by "::") and if the part has an .py extension.
--HG--
branch : fix_initial_parsing
2014-07-28 12:07:15 +02:00
holger krekel
5ccd3f2fc5
fix conftest detection if commandline arguments contain "::" syntax
...
--HG--
branch : fix_initial_parsing
2014-07-28 11:48:37 +02:00
holger krekel
ba878c6d9d
add changelog entry and refactor unittest.mock.patch fix a bit
2014-07-28 10:34:01 +02:00
holger krekel
8792261df1
Merged in ticosax/pytest/mock-unittest-252 (pull request #184 )
...
Injection of fixture doesn't work when decorated with unittest.mock.patch
2014-07-28 10:31:31 +02:00
holger krekel
c2ed29070a
address issue170 by merging David Mohr's PR on adding "raises" as an optional
...
argument to pytest.mark.xfail.
2014-07-28 09:59:22 +02:00
Nicolas Delaby
2e55c4ba61
unittest.mock from stdlib should come last
...
--HG--
branch : mock-unittest-252
2014-07-27 12:11:39 +02:00
Nicolas Delaby
e6ad6e02d2
Handle also unittest.mock
...
Move handling in dedicated function to isolate its logic
--HG--
branch : mock-unittest-252
2014-07-27 10:43:50 +02:00
david@mcbf.net
6a4492a22d
isinstance() on exception value instead of comparing types, consolidate tests
...
--HG--
branch : xfail-cause
2014-07-26 17:46:50 +02:00
david@mcbf.net
7b273b8577
Add mark.xfail argument raises so that unexpected exceptions show up as test failures.
...
--HG--
branch : xfail-cause
2014-07-26 15:11:05 +02:00
Floris Bruynooghe
1641d00cb1
Merge default
2014-07-18 01:34:08 +01:00
holger krekel
ff2c18fedb
bump version, preliminary announcement
2014-07-17 16:38:54 +02:00
holger krekel
bf64a800d6
pytest depends on the freshly released 1.4.22 to function properly
2014-07-17 10:55:52 +02:00
Jurko Gospodnetić
efc57391eb
remove extra parentheses - stylistic code change
2014-07-17 08:35:36 +02:00
Benjamin Peterson
dc65aa1fea
avoid importing old assertion interpretation code by default ( fixes #537 )
2014-07-16 17:21:18 -07:00
holger krekel
80ad3fb8ed
Merged in wooparadog/pytest (pull request #163 )
...
Also replace `report.longrepr` with `bin_xml_escape`ed skipreason
2014-07-15 22:17:15 +02:00
holger krekel
d0b048c86d
Merged in msabramo/pytest/norecursedirs_add_star_dot_egg (pull request #177 )
...
Add *.egg to default for norecursedirs
2014-07-03 16:51:17 +02:00
Marc Abramowitz
b6f069f4c3
Add *.egg to default for norecursedirs
...
--HG--
branch : norecursedirs_add_star_dot_egg
2014-07-03 07:49:03 -07:00
holger krekel
e19462d581
fix ordering of import line of last commit
2014-07-03 13:20:51 +02:00
holger krekel
a811fabb43
avoid importing "py.test" (an old alias module for "pytest")
2014-07-03 12:58:12 +02:00
holger krekel
07e76cbef2
fix issue364: shorten and enhance tracebacks representation by default.
...
The new "--tb=auto" option (default) will only display long tracebacks
for the first and last entry. You can get the old behaviour of printing
all entries as long entries with "--tb=long". Also short entries by
default are now printed very similarly to "--tb=native" ones.
2014-06-29 13:32:53 +02:00
Christian Henz
b7f6a9f3fd
Cleaner implementation of early handling of the '-c' command line switch.
...
--HG--
branch : explicit-ini-filename
2014-06-28 12:03:55 +02:00
christian@christian-linux.sarrazin.local
c8264385ea
Implement the "-c" command line switch that allows to explicitly specifiy the config file to load.
...
This feature was requested in issue #174 .
--HG--
branch : explicit-ini-filename
2014-06-27 17:42:37 +02:00
Sébastien Fievet
4bc4495115
Fixed typo noticed by @dcramer ( https://twitter.com/zeeg/status/473676721128886272 )
...
--HG--
branch : zyegfryed/fixed-typo-noticed-by-dcramer-httpstwitt-1401780587159
2014-06-03 07:30:14 +00:00
holger krekel
c66e9f8f0f
fix typo, thanks @dcramer
2014-06-03 07:21:02 +02:00
Benjamin Peterson
780bdda95a
assert reinterpretation: try mangling attributes that look like private class vars ( fixes #514 )
2014-05-31 14:37:02 -07:00
holger krekel
d6281b4206
- restore compatibility to old getvalueorskip behaviour
...
- introduce a better NOTSET representation to improve docs
2014-05-14 07:36:31 +02:00
Jurko Gospodnetić
9263f30c88
use py.builtin.callable instead of raw callable in _pytest/runner.py
...
This is consistent with how callable() is called from the rest of pytest code
(see _pytest/nose.py & _pytest/python.py) plus, as a nice side-effect, it
makes pytest work correctly on Python 3.1.
--HG--
branch : python 3.1 fix
2014-05-13 21:05:53 +02:00
holger krekel
468b1241a5
fix issue512: show "<notset>" for arguments which might not be set
...
in monkeypatch plugin. Improves output in documentation.
2014-05-10 13:49:24 +02:00
WooParadog
580c8525f0
Use processced skipreason for generating skip Junit node
2014-04-23 15:38:40 +08:00
WooParadog
d6010aa0c9
Also replace `report.longrepr` with `bin_xml_escape`ed skipreason
2014-04-23 14:50:21 +08:00
Brianna Laugher
4e35c00ab0
issue351: Add ability to specify parametrize ids as a callable, to generate custom test ids. + tests, docs
...
--HG--
branch : issue351
2014-04-17 15:08:49 -04:00
Floris Bruynooghe
c46e2cbbc7
Cache exception raised in fixtures according to their scope
...
Without this if a session scoped fixture fails it's setup it will
be re-tried each time it is requested. Especially in case of
skip or failure exceptions this can be undesirable, but caching
makes sense for all exceptions.
2014-04-15 22:22:41 -04:00
Floris Bruynooghe
c47835f5ec
Merge pull request #158 , fixes issue 504
2014-04-15 11:43:38 -04:00
Floris Bruynooghe
faba432996
Improve error message if pytest.raises is used wrongly
...
If the type is not checked then an incomprehensible error will occur
later. This enforces the type and raies the same exception/msg as
CPython does in that case.
Docstring unmodified, just re-justified for pep8 compat.
2014-04-14 18:09:10 -04:00
Andy Freeland
2ba23e8d08
issue504: verbose output displays node IDs for each test
...
Replace the verbose per-test reporting format of `file:line test_name RESULT`
with the node ID of the test, i.e. `file@line::class::method[param] RESULT`.
This patch does not update the examples in the docs; @hpk42 has a script
to regenerate those.
--HG--
branch : issue504
2014-04-14 17:42:02 -04:00
Floris Bruynooghe
9711e335d9
Change XPASS colour to be yellow rather then red
...
Unfortunately I'm not sure how to test this.
2014-04-12 10:27:12 -04:00
holger krekel
15af7e1662
fix tests to properly fail on failed collectiosn (which was hiding an error)
...
and also implement __test__=False for test functions properly.
--HG--
branch : nose_test_attr
2014-04-10 13:37:39 +02:00
holger krekel
494be731e3
support nose-style ``__test__`` attribute on modules, classes and
...
functions, including unittest-style Classes. If set to True, the
test will not be collected.
--HG--
branch : nose_test_attr
2014-04-10 12:46:27 +02:00
holger krekel
f91049cec9
fix issue473: work around mock putting an unbound method into a class
...
dict when double-patching.
--HG--
branch : issue473
2014-04-08 12:50:13 +02:00
holger krekel
ef7cb47b1e
fix issue498: if a fixture finalizer fails, make sure that the fixture
...
is still invalidated.
--HG--
branch : issue498
2014-04-07 13:29:57 +02:00
holger krekel
28aa4c891e
bump version to 2.6.0.dev1 because i think we are going for a 2.6.0 release next
...
and not just a 2.5 maintenance one.
2014-04-03 22:27:04 +02:00
holger krekel
52851e4388
Merged in jurko/pytest/fix_capfd_fixture_docstring (pull request #149 )
...
correct a capfd fixture docstring typo
2014-04-03 10:02:00 +02:00
holger krekel
cbe31f3748
Merged in msabramo/pytest/makepyfile_utf8 (pull request #134 )
...
Make makepyfile accept UTF-8 so a few cookie tests in test_assertrewrite.py
2014-04-03 10:00:24 +02:00
Jurko Gospodnetić
c9bbdf4f10
correct a capfd fixture docstring typo
...
--HG--
branch : fix_capfd_fixture_docstring
2014-04-03 09:59:04 +02:00
holger krekel
f984e94fca
Merged in jurko/pytest/break_ExceptionInfo_reference_cycles (pull request #144 )
...
break reference cycles caused by storing local reference to exception info
2014-04-03 09:47:41 +02:00
Anatoly Bubenkov
b4fe91943d
Merged in hpk42/pytest-hpk/conftest-clean (pull request #148 )
...
cleanup internal conftest handling and avoid the strange None entry in the conftest cache.
2014-04-03 09:38:47 +02:00
holger krekel
0365e5c3a0
cleanup internal conftest handling and avoid the strange None entry in the conftest cache.
...
(There is basically no reason to ask for conftestmodules without specifying a path.)
--HG--
branch : conftest-clean
2014-04-02 22:30:45 +02:00
holger krekel
51cff6f106
fix issue486: better reporting and handling of early conftest loading failures
...
--HG--
branch : issue486
2014-04-02 20:42:41 +02:00
Floris Bruynooghe
adb12d0d4f
Escape newlines in result from assertrepr hook
...
The result from the pytest_assertrepr_compare hook should not include
any newlines since that will confuse the mini-formatting language used
by assertion.util.format_explanation. So simply escape the included
newlines, this way hook writers do not have to worry about this at
all.
Fixes issue 453.
2014-04-02 17:35:22 +01:00
Floris Bruynooghe
844c141d10
Style fixes for pep8
...
Includes a quotation change for consistent style.
2014-04-02 17:16:37 +01:00
Jurko Gospodnetić
98ea8fae32
break reference cycles caused by storing local reference to exception info
...
Such reference cycles unnecessarily cause Python interpreter not to garbage
collect the objects referenced in those cycles as soon they could be collected,
and in turn cause the tests to use more memory than is strictly necessary.
--HG--
branch : break_ExceptionInfo_reference_cycles
2014-04-02 15:34:36 +02:00
holger krekel
3bca62e9e4
fix issue436: improved finding of initial conftest files from command
...
line arguments by using the result of parse_known_args rather than
the previous flaky heuristics. Thanks Marc Abramowitz for tests
and initial fixing approaches in this area.
2014-04-02 11:29:23 +02:00
holger krekel
8e4e2ba244
merge main
2014-04-01 15:06:44 +02:00
holger krekel
3b8935c533
remove dupped_stdout logic and related changes, also simplify pytest_runtest_* calls to not use a contextlib with-decorator anymore.
2014-04-01 15:03:17 +02:00
holger krekel
ce8678e6d5
remove non-documented per-conftest capturing option and simplify/refactor all code accordingly. Also make capturing more robust against tests closing FD1/2 and against pdb.set_trace() calls.
2014-04-01 14:32:12 +02:00
holger krekel
2e1f6c85f6
introduce resume/suspend functionality for FDCapture and SysCapture,
...
fixing problems with early bailouts (from argparse's parse() function e.g.)
that wrote to stdout.
2014-04-01 14:19:58 +02:00
holger krekel
ca5e6830c6
avoid some redundancy by using SysCapture from FDCapture for manipulating sys.std{out,in,err}
2014-04-01 14:19:55 +02:00
holger krekel
69cbac8fb5
rename StdCaptureBase to MultiCapture
2014-04-01 14:19:52 +02:00
Marc Abramowitz
f47ae74981
Make makepyfile accept UTF-8 so a few cookie tests in test_assertrewrite.py
...
don't need to be dedented.
--HG--
branch : makepyfile_utf8
2014-03-28 09:44:18 -07:00
holger krekel
47379d4a79
Merged in dangra/pytest (pull request #132 )
...
no need for im_func and it does not exists in python3
2014-03-28 14:46:34 +01:00
holger krekel
9d716a39d6
fix issue412 and other encoding issues. Streamline dupfile() into
...
a new more thoughtful safe_text_dupfile helper.
2014-03-28 11:27:02 +01:00
holger krekel
923dcfd620
cleanup and refine issue412 test (still failing on py33)
2014-03-28 09:46:38 +01:00
holger krekel
b5467645d3
merge
2014-03-28 09:27:44 +01:00
Marc Abramowitz
81f822d528
Only try to remove hook from sys.meta_path if it's present
...
Prevent error on exit if some code messes with sys.meta_path and removes the
assertionrewrite hook (CaptureMock seems to do this):
File "/Users/marca/dev/hg-repos/pytest/_pytest/assertion/__init__.py", line 64, in pytest_unconfigure
sys.meta_path.remove(hook)
ValueError: list.remove(x): x not in list
--HG--
branch : sys_meta_path_remove_hook_only_if_present
2014-03-28 00:33:12 -07:00
holger krekel
859915dc5e
simplify capturing funcarg handling
2014-03-28 07:13:08 +01:00
holger krekel
a8f4f49a82
simplify reset/stop_capturing and fix capturing wrt to capturing simple os.write() calls
2014-03-28 07:11:25 +01:00
holger krekel
e18c3ed494
unify and normalize Sys/FD Capturing classes
...
* * *
more unification
2014-03-28 07:03:37 +01:00
holger krekel
2263fcf6b7
remove unused "suspend/resume" on capturing, some formatting cleanup
2014-03-28 07:03:34 +01:00
Daniel Grana
b96d552dbd
no need for im_func and it does not exists in python3
2014-03-27 23:57:18 -03:00
holger krekel
7b63fa5966
merge in current default
2014-03-27 13:57:54 +01:00
holger krekel
530cae9204
Merged in cgilling/pytest (pull request #123 )
...
Fix to work properly when @patch is used with new not equal to DEFAULT
2014-03-26 19:05:46 +01:00
Marc Abramowitz
8af265da04
_pytest/config.py: In --help, show args with `=` instead of space.
...
The `=` is better because it encourages folks to use the form that doesn't
suffer from issue #436 (https://bitbucket.org/hpk42/pytest/issue/436 ), which
can cause the arg to be treated as an "anchor" and used as the (unexpected)
path for searching for conftest.py files.
--HG--
branch : help_show_args_with_equals_instead_of_space
2014-03-26 10:47:30 -07:00
Chris Gilling
e3b9382122
use sys.modules.get correctly and reference DEFAULT with respect to it
2014-03-26 09:36:02 -07:00
Chris Gilling
c3f4eb6d57
change try/except to sys.module.get and a conditional
2014-03-26 09:27:33 -07:00
holger krekel
8f7b53e55b
fix issue490: include pytest_load_initial_conftests in documentation
...
and improve docstring.
2014-03-25 14:43:58 +01:00
holger krekel
d27c377817
tentatively fix py33 and py25 compat
2014-03-14 15:58:16 +01:00
schlamar
85e7b11ef5
Removed unnecessary iteration in nose.pytest_runtest_makereport.
2014-03-14 15:29:42 +01:00
schlamar
77e1f93ca1
Fixed pyflakes errors.
2014-03-14 14:25:36 +01:00
schlamar
94b1ce65c6
Fixed race condition with SkipTest when module not in sys.modules on collection.
2014-03-14 14:04:54 +01:00
holger krekel
ac1d277225
simplify pdb disabling of capturing, also accomodate the new semantics
...
that capturing is always on during a test session.
2014-03-14 12:49:37 +01:00
holger krekel
9777703e03
- turn on capturing before early conftest loading and make terminal writer
...
use the original stream.
- avoid resetting capture FDs/sys.stdout for each test by keeping capturing
always turned on and looking at snapshotted capturing data during runtest
and collection phases.
2014-03-14 12:49:36 +01:00
holger krekel
f43cda9681
implement a new hook type: hook wrappers using a "yield" to distinguish
...
between working at the front and at the end of a hook call chain.
The idea is to make it easier for a plugin to "wrap" a certain hook
call and use context managers, in particular allow a major cleanup of
capturing.
2014-03-14 12:49:35 +01:00
holger krekel
b47fdbe0a7
remove externally setting and dealing with "item.outerr" from capturing in favor of a direct interface for adding reporting sections to items.
...
* * *
refactor makereport implementation to avoid recursion with __multicall__
2014-03-14 12:49:34 +01:00
holger krekel
cde970be69
remove unneccessary indirections and options
2014-03-14 12:49:34 +01:00
holger krekel
cfd43a9b02
add changelog for warning system, bump internal version
2014-03-14 08:15:38 +01:00
holger krekel
ebd10aa6b4
shrink and merge the somewhat obscure and undocumented internal hinting
...
system with the new warnings one
2014-03-11 22:10:51 +01:00
holger krekel
24db492f53
warn if instances are callable and have a test name
2014-03-11 22:10:18 +01:00
holger krekel
1b387bea62
introduce warning system with this API:
...
- node.warn() for a node-specific warning
- config.warn() for a global non-node specific warning
Each warning is accompanied by a "warning number" so that we can later
introduce mechanisms for surpressing them.
Each warning will trigger a call to pytest_report_warn(number, node, message)
which is by default implemented by the TerminalReporter which introduces
a new option "-rw" to show details about warnings.
2014-03-11 22:10:17 +01:00
Chris Gilling
3388d82c1c
Fix to work properly when @patch is used with new not equal to DEFAULT
...
also updated test_mock to include this situation
2014-03-03 10:36:59 -08:00
holger krekel
25ab906b8b
add release announcement, bump version to 2.5.2,
...
add links to plugins index, regenerate doc examples.
2014-01-29 13:47:11 +01:00
Floris Bruynooghe
825ea9bfa1
Fix assertrepr for mojibake
...
If the compared text was in bytes and not actually valid text
(i.e. could not be encoded to text/unicode using the default encoding)
then the assertrepr would fail with an EncodingError. This ensures
that the internal string is always valid unicode, converting any bytes
safely to valid unicode. This is done using repr() which then needs
post-processing to fix the encompassing quotes and un-escape newlines.
This fixes issue 429.
2014-01-29 00:42:58 +00:00
Floris Bruynooghe
cc1186242c
Avoid wasted string concatenation and improve english
2014-01-29 00:39:04 +00:00
holger krekel
86284689a3
simplify loop which turns direct funcarg parametrization to indirect
2014-01-27 12:53:44 +01:00
holger krekel
4622c28ffd
setupstate.addfinalizer(): fix docstring and remove related unit test not covering functional reality
2014-01-26 12:44:21 +01:00
holger krekel
6f385fb4ea
remove "mixed" capturing mode which is not used by pytest
...
--HG--
branch : capsimple1
2014-01-25 19:56:27 +01:00
holger krekel
18e12cbd67
remove "StdCapture*.call" classmethod because pytest does not use it.
...
--HG--
branch : capsimple1
2014-01-25 19:43:57 +01:00
holger krekel
3cf4e133cc
remove now parameter because pytest only used now==False everywhere
...
--HG--
branch : capsimple1
2014-01-25 19:42:45 +01:00
Ronny Pfannschmidt
97da43d909
merge from default
...
--HG--
branch : multi-usageerror
2014-01-25 10:42:21 +01:00
Ronny Pfannschmidt
177637bfb9
Redo the Capture integration propperly
2014-01-24 21:22:19 +01:00
Jurko Gospodnetić
75c124ea17
reword note on explicitly clearing local references to pytest.raises() results
...
Made it clearer that clearing such references is not mandatory and is only an
optional step which may help the Python interpreter speed up its garbage
collection.
--HG--
branch : document_ExceptionInfo_ref_cycle
2014-01-23 11:36:04 +01:00
Jurko Gospodnetić
ffffac27f9
document explicitly clearing local references to pytest.raises() results
...
pytest.raises() returns an ExceptionInfo object which, if a local reference is
made to it, forms a reference cycle:
ExceptionInfo
--> exception
--> stack frame raising the exception
--> current stack frame
--> current local variables
--> Exception Info
Such a reference cycle would then prevent any local variables in the current
stack frame, or any of its child stack frames involved in the same reference
cycle, from being garbage collected until the next reference cycle garbage
collection phase. This unnecessarily increases the program's memory footprint
and potentially slows it down.
This situation is based on a similar one described in the official 'try'
statement Python documentation for locally stored exception references.
--HG--
branch : document_ExceptionInfo_ref_cycle
2014-01-23 09:46:36 +01:00
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
8976b3ee0e
stop exposing capsys/capfd.capture
2014-01-22 21:52:32 +01:00
Ronny Pfannschmidt
ac2f2b1deb
add notes on the copied pylib version
2014-01-22 21:50:07 +01:00
Ronny Pfannschmidt
b4a397d153
kill ancient capture devnullpath, os.devnull exists since py 2.4
2014-01-22 21:37:59 +01:00
Ronny Pfannschmidt
d1a9ab3df0
small cleanp
2014-01-22 21:04:00 +01:00
Ronny Pfannschmidt
0ede968ec0
kill the str magic of Encodedfile
2014-01-22 21:03:49 +01:00
Ronny Pfannschmidt
5f21abc3a3
move imports and declarations to the top
2014-01-22 20:48:17 +01:00
Ronny Pfannschmidt
e2bb81124c
simplify StdCaptureFD snapshot reading
2014-01-22 19:48:10 +01:00
Ronny Pfannschmidt
ea18e9656b
rewrite all _pytest.capture uses of py.io to _pytest.capture
2014-01-22 19:44:20 +01:00
Ronny Pfannschmidt
0ac94134f5
initial code import for capture transfer
2014-01-22 19:04:38 +01:00