Bruno Oliveira
e59471766a
Rename "warnings" to "pytest-warnings" in terminal output
...
Fix #970
2015-08-27 19:59:52 -03:00
Bruno Oliveira
4533a50542
Fix regression caused by changing the signature for parse_known_args
...
Fix #973
2015-08-27 19:35:32 -03:00
Bruno Oliveira
ccf7584fac
Add warning about implementing pytest_addoption from conftest files
2015-08-27 19:14:56 -03:00
Bruno Oliveira
42b43a7d7b
Paths after normal options are now properly used to discover rootdir and ini files
...
Fix #949
2015-08-25 22:08:05 -03:00
elizabeth
e67d66a5d4
Merge branch 'pytest-dev'
...
# Conflicts:
# AUTHORS
2015-08-24 22:55:11 +03:00
Ronny Pfannschmidt
b25e41e348
Merge pull request #956 from nicoddemus/record-xml-property
...
add preliminary support for extended junit xml properties
2015-08-24 09:13:04 +02:00
Bruno Oliveira
70da93145d
Improve docs and using warning system for record_xml_property fixture
2015-08-23 11:56:27 -03:00
elizabeth
06585f5bdd
Always report error about parametrize data that doesn't correspond to fixtures in test functions.
2015-08-23 13:42:40 +03:00
David Diaz
2ddbac1f98
Correcting implementation based on pull request feed back
2015-08-21 14:31:53 -06:00
Ronny Pfannschmidt
287df16c9c
Merge pull request #817 from nicoddemus/non-collection-exit-error
...
return non-zero exit code if no tests are collected
2015-08-21 18:30:57 +02:00
David Diaz
24212fd97f
Add support to record custom properties on xml output
2015-08-20 17:55:38 -06:00
Bruno Oliveira
f730291904
Make testsfailed and testscollected public Session attributes
...
As suggested by @flub in review
2015-08-18 07:35:02 -03:00
Bruno Oliveira
2ffd37b816
return non-zero exit code if no tests are collected
...
Fix #812
Fix #500
2015-08-18 07:35:02 -03:00
Ronny Pfannschmidt
7758bcd141
terminalwriter: extract plugin printing logic and add positive unittests
2015-08-17 09:10:01 +02:00
Ronny Pfannschmidt
740a97a8cc
terinalwriter: use dash between plugin name and version
2015-08-17 08:48:38 +02:00
Ronny Pfannschmidt
2c42f15e00
adapt plugin printing
...
* print each distribution only once(xdist now has 3 entrypoints)
* include the distribution version
2015-08-17 08:41:24 +02:00
Ronny Pfannschmidt
37ed391cc2
Merge pull request #938 from nicoddemus/doctest-unicode
...
New ALLOW_UNICODE doctest option
2015-08-16 11:35:10 +02:00
Floris Bruynooghe
f22d14b105
Merge pull request #879 from RonnyPfannschmidt/setuptools-scm
...
use setuptools_scm to determine the version
2015-08-15 00:56:16 +01:00
Bruno Oliveira
d749021a31
Fix coverage
...
Also make sure a test that doesn't set ALLOW_UNICODE fails
on Python 2 and passes Python 3.
2015-08-12 22:49:41 -03:00
Bruno Oliveira
420823070b
Add ALLOW_UNICODE doctest option
...
When enabled, the ``u`` prefix is stripped from unicode strings in
expected doctest output. This allows doctests which use unicode
to run in Python 2 and 3 unchanged.
Fix #710
2015-08-12 22:16:44 -03:00
Markus Unterwaditzer
41cef6f5f2
Don't skip fixtures that are substrings of params
...
Bug introduced with
https://bitbucket.org/pytest-dev/pytest/pull-requests/257/allow-to-override-parametrized-fixtures
Fix #736
2015-08-11 00:41:21 +02:00
Bruno Oliveira
e103932aad
Reintroduce hasplugin to PytestPluginManager
...
Fix #932
2015-08-09 19:30:49 -03:00
TomV
353360dbe5
use local isclass
2015-08-09 00:11:15 +01:00
TomV
3497aa0766
check nose.istest __test__ attr issue526
2015-08-09 00:11:15 +01:00
Bruno Oliveira
729b5e9b2f
Merge pull request #923 from The-Compiler/parametrize-idfunc
...
Generate parametrize IDs for enum/re/class objects.
2015-08-08 15:09:54 -03:00
Florian Bruhin
4e21d1d77b
Move enum import and adjust comments.
2015-08-08 15:25:10 +02:00
Florian Bruhin
84fdba129a
More style changes.
2015-08-08 12:57:54 +02:00
Florian Bruhin
18125c7d1f
Clean up type comparisons.
2015-08-07 23:10:22 +02:00
Florian Bruhin
b59376bea4
Alert user about other parametrize spellings.
2015-08-07 07:51:59 +02:00
Florian Bruhin
13c5456868
Generate parametrize IDs for enum/re/class objects.
2015-08-07 07:37:59 +02:00
Eric Hunsberger
39f1471e93
Warnings always raised in WarningsRecorder
...
This ensures that if tests for warnings are run more than once,
the warning is still raised as expected.
2015-08-06 15:05:01 -04:00
elizabeth
f7bacd169e
Update docs
2015-08-04 00:48:41 +03:00
elizabeth
657ca97dbd
Some refactorings after code review
2015-08-04 00:02:03 +03:00
elizabeth
9846953597
Support for python 2.6
2015-08-02 17:28:27 +03:00
elizabeth
2fc7aede0b
Request #714 : Apply indirect=True on particular argnames
2015-08-02 16:40:40 +03:00
Eric Hunsberger
52b4eb6c46
Added `warns` to assert warnings are thrown
...
Works in a similar manner to `raises`, but for warnings instead
of exceptions. Also refactored `recwarn.py` so that all the
warning recording and checking use the same core code.
2015-07-30 23:28:32 -04:00
Bruno Oliveira
4302972c23
Use pytest-of-$user as base directory for tmpdir_factory
...
Before tmpdir_factory, pytest used to create a link named "pytest-$user" to the current numbered directory. Use
a different name so there's no conflict when running different pytest versions.
Fix #894
2015-07-28 20:57:48 -03:00
Ronny Pfannschmidt
235f9da432
special-case _pytest.__init__ in genscript to avoid a python3 bug
2015-07-27 11:33:27 +02:00
jakubo
e8f4819876
Test file run twice fails if it contains marked class #683
2015-07-26 12:15:29 +02:00
Floris Bruynooghe
e68fa641ff
Merge reset-capgture-on-reeadouterr-errors
...
Merge branch 'reset-capture-on-readouterr-errors' of github.com:davidszotten/pytest into merge-capmerge
2015-07-26 11:39:03 +02:00
David Szotten
983d249680
reset capture even if readouterr throws
...
otherwise that exception (and all following output) end up in /dev/null
2015-07-26 01:15:51 +02:00
Floris Bruynooghe
f64d5f1209
Merge pull request #884 from cpommranz/deprecate_genscript
...
Deprecate and warn about --genscript, fixes #730
2015-07-25 19:09:52 +02:00
Floris Bruynooghe
251fc68ef9
Merge fix for #751
...
Merge branch 'fix-751' of github.com:JanBednarik/pytest into jb-fix-751
2015-07-25 19:03:44 +02:00
Jan Bednařík
9906a19e29
Issue #751 - fix.
2015-07-25 15:38:27 +02:00
Christian Pommranz
00e1a2122a
Deprecate and warn about --genscript, fixes #730
2015-07-25 15:10:22 +02:00
Floris Bruynooghe
80ee620459
Merge pull request #881 from maartenq/master
...
setuptools not present issue deprecating gentest
2015-07-25 15:03:50 +02:00
Floris Bruynooghe
023687d8d0
Merge pull request #872 from nicoddemus/confcutdir-inifile
...
Avoid detecting conftest files upwards from setup.cfg/pytest.ini/tox.ini by default
2015-07-25 14:03:24 +02:00
Maarten
e3d60024aa
setuptools not present issue deprecating gentest
2015-07-25 13:50:40 +02:00
Ronny Pfannschmidt
a060b8ff73
use setuptools_scm to determine the version
2015-07-25 10:44:18 +02:00
Bruno Oliveira
033def0a7a
Workaround for cmdexec bug on Windows
...
This bug fails the entire pytest suite when executed with the
--lsof option in Python 2 on Windows.
2015-07-24 19:24:31 -03:00
Bruno Oliveira
9f94e443ff
Merge remote-tracking branch 'upstream/pytest-2.7'
...
Conflicts:
testing/conftest.py
2015-07-24 19:24:21 -03:00
Bruno Oliveira
91e8e59cea
Merge pull request #860 from nicoddemus/warn-plugins-as-str-main
...
Make passing plugins as str objects a more obvious failure
2015-07-24 19:13:39 -03:00
Eric Hunsberger
d104487282
importorskip: Allow non-integer version strings
...
Use `pkg_resources.parse_version` to parse version strings.
This can handle 'dev', 'rc', alpha and beta version strings,
among others.
2015-07-24 12:34:06 -04:00
Bruno Oliveira
35bbcc39a2
Interpret strings to "plugins" arg in pytest.main() as module names
...
See #855
2015-07-23 23:37:09 -03:00
Bruno Oliveira
ab9e246ab0
Avoid detecting conftest files upwards from setup.cfg/pytest.ini/tox.ini files by default
...
As discussed in #82
2015-07-23 23:21:07 -03:00
Bruno Oliveira
df29120abe
Merge branch 'pytest-2.7'
...
Conflicts:
_pytest/config.py
_pytest/genscript.py
_pytest/mark.py
tox.ini
2015-07-23 22:35:51 -03:00
Bruno Oliveira
ce96973ed5
Merge pull request #864 from pytest-dev/consider-color-yes-everywhere
...
Consider --color option in more places which deal with TerminalWriters
2015-07-23 08:03:52 -03:00
Floris Bruynooghe
0e26de2218
Merge pull request #867 from nicoddemus/autouse-yield-fixture-class
...
Fix autouse fixtures defined in a TestCase subclass
2015-07-22 01:25:21 +02:00
Bruno Oliveira
81f18f8a0f
Fix flakes
2015-07-21 19:55:01 -03:00
Bruno Oliveira
0769bb4898
Make pastebin use _pytest.config.create_terminal_writer
2015-07-21 12:55:18 -03:00
Bruno Oliveira
31cfbac1f4
Fix autouse fixtures defined in a TestCase subclass
2015-07-20 19:28:54 -03:00
Anatoly Bubenkov
6af7172204
Merge branch 'pytest-2.7'
2015-07-19 15:25:04 +02:00
Bruno Oliveira
de65737cb1
Fix flakes
2015-07-18 18:23:17 -03:00
Bruno Oliveira
953916df49
Report correct reason when using multiple skip/xfail markers
2015-07-18 18:18:45 -03:00
Bruno Oliveira
2f7d0f8bd9
Consider --color option in more places which deal with TerminalWriters
2015-07-18 16:39:55 -03:00
Thomas Kluyver
e227950b06
Style fix
2015-07-18 13:18:38 -03:00
Thomas Kluyver
d4789f1ac4
Fix AST rewriting with starred expressions in function calls
2015-07-18 13:16:47 -03:00
Thomas Kluyver
26e7532756
Move Interrupted exception class out of Session
2015-07-18 13:16:47 -03:00
Thomas Kluyver
570c4cc55a
No Starred node type on Python 2
2015-07-18 13:16:46 -03:00
Matthias Bussonnier
728d8fbdc5
generify
2015-07-18 13:16:26 -03:00
Matthias Bussonnier
fad569ae1b
simplify + fix
2015-07-18 13:16:26 -03:00
Matthias Bussonnier
a4dbb27fab
a test
2015-07-18 13:16:26 -03:00
Matthias Bussonnier
b18e6439bd
Ast Call signature changed on 3.5
...
fix issue 744 on bitbucket
port of merge request 296
https://bitbucket.org/pytest-dev/pytest/pull-request/296/astcall-signature-changed-on-35
https://bitbucket.org/pytest-dev/pytest/issue/744/
Conflicts:
CHANGELOG
2015-07-18 13:15:46 -03:00
Floris Bruynooghe
5e0235946b
Merge pull request #801 from Carreau/test-35
...
Support Python 3.5
2015-07-18 11:30:36 +01:00
Bruno Oliveira
a7b4ed89da
Use functools.partial name explicitly and simplify the code a bit as asked in review
2015-07-16 20:37:04 -03:00
Bruno Oliveira
dcdc823dd2
Support for tests created with functools.partial
...
Fix #811
2015-07-16 20:37:03 -03:00
Bruno Oliveira
330de0a93d
Use a subdirectory in the TEMP directory to speed up tmpdir creation
...
Fix #105
2015-07-16 19:50:49 -03:00
Bruno Oliveira
aa25fb05a9
Make sure marks in subclasses don't change marks in superclasses
...
Fix #842
2015-07-16 19:29:16 -03:00
Thomas Kluyver
4462b83258
Style fix
2015-07-16 11:04:36 -07:00
Bruno Oliveira
0f52856f99
Use a subdirectory in the TEMP directory to speed up tmpdir creation
...
Fix #105
2015-07-15 20:03:58 -03:00
Thomas Kluyver
195422f9c0
Fix AST rewriting with starred expressions in function calls
2015-07-15 15:31:35 -07:00
Thomas Kluyver
62ca4ae963
Move Interrupted exception class out of Session
2015-07-15 14:28:43 -07:00
Thomas Kluyver
35bea86c9f
No Starred node type on Python 2
2015-07-15 14:11:21 -07:00
Matthias Bussonnier
d774f3ca86
generify
2015-07-15 13:49:40 -07:00
Matthias Bussonnier
167625d24d
simplify + fix
2015-07-15 13:49:40 -07:00
Matthias Bussonnier
3bc6c0f936
a test
2015-07-15 13:49:40 -07:00
Matthias Bussonnier
26e64fc45c
Ast Call signature changed on 3.5
...
fix issue 744 on bitbucket
port of merge request 296
https://bitbucket.org/pytest-dev/pytest/pull-request/296/astcall-signature-changed-on-35
https://bitbucket.org/pytest-dev/pytest/issue/744/
2015-07-15 13:49:40 -07:00
Bruno Oliveira
d6033037ac
Consider session fixtures for doctest docstrings in modules
...
Fixes #768
2015-07-13 12:29:09 -03:00
Bruno Oliveira
5ec2a17f08
--fixtures only shows fixtures from first file
...
Fix #833
2015-07-12 17:32:39 -03:00
Bruno Oliveira
7445c5bd70
Add support for PEP302 get_data API
...
Fix #808
2015-07-11 14:13:43 -03:00
Bruno Oliveira
1baa1a4d01
Merge pull request #822 from nicoddemus/extra-usage-info
...
Print inifile and rootdir when there's usage errors
2015-07-11 13:43:20 -03:00
Bruno Oliveira
8a6aa5e17e
Print inifile and rootdir when there's usage errors
...
Related to #821
2015-07-10 21:56:12 -03:00
Bruno Oliveira
854e603f84
Add new testdirs ini option
...
Fix #694
2015-07-10 21:52:47 -03:00
Bruno Oliveira
0ee3ee7333
Add syntax highlighting to missing snippets in the documentation and other fixes
...
- Add explicit "code-block" for sessions without syntax highlight
- Moved Metafunc documentation to the class docstring and reused that in the
docs;
2015-07-09 21:50:38 -03:00
Bruno Oliveira
ae4c8b8635
Merge pull request #787 from pytest-dev/pluggy-bc-fix
...
Reintroduce get_plugin_manager() for backward-compatibility
2015-07-08 19:28:01 -03:00
Bruno Oliveira
d10054a38d
Merge branch 'esiegerman/summary_colors' of github.com:esiegerman/pytest
2015-07-03 18:29:17 -03:00
Kevin Cox
7fa27af408
Add `file` and `line` attributes to junit-xml output.
...
This adds the `file` and `line` attributes to the junit-xml output
which can be used by tooling to identify where tests come from. This can be
used for many things such as IDEs jumping to failures and test
runners evenly balancing tests among multiple executors.
Update test_junitxml.py
Foo.
2015-07-02 18:41:52 -04:00
Eric Siegerman
6c395cb58c
Default color is now yellow
...
Passing tests override that default, making the color green; but several other
"boring" statuses (xfailed, xpassed, deselected, skipped) have no effect.
Net effect: if only "boring" tests are seen, or no tests at all, the summary
bar is yellow.
2015-07-02 13:39:05 -04:00
Eric Siegerman
044d874c5b
If there are warnings, make the status bar yellow
...
Also if we see any statuses the code doesn't know about.
2015-07-02 13:39:05 -04:00
Eric Siegerman
cb21d844d9
Add missing "error" status to the list
2015-07-02 13:39:05 -04:00
Eric Siegerman
0282da9ddf
Refactor slightly
...
Check for the empty-key special case in the first loop,
not the second.
2015-07-02 13:39:05 -04:00
Eric Siegerman
bfc3e48fd5
Factor out build_summary_stats_line(), and add tests
...
--HG--
branch : esiegerman/summary_colors
2015-07-02 13:39:04 -04:00
Pieter Mulder
89b00d714f
deprecated_call dit not revert functions back to original
...
Make sure that the warnings.warn and warnings.warn_explicit are reverted
to there original function after running the function in deprecated_call
2015-06-25 17:11:50 +02:00
Bruno Oliveira
3c2fd833ca
Reintroduce get_plugin_manager() for backward-compatibility
...
PyCharm pytest runner depends on this function existing (see #787 ).
Added reference to get_plugin_manager() and PluginManager/PytestPluginManager to docs
2015-06-25 00:48:47 -03:00
holger krekel (rather uses bitbucket/hpk42)
08613b621e
Merge pull request #799 from pytest-dev/noconftest
...
Add a --noconftest option.
2015-06-23 16:53:22 +02:00
holger krekel
ee40ea5f6d
Merge branch 'pytest-2.7'
...
Conflicts:
AUTHORS
_pytest/__init__.py
setup.py
testing/conftest.py
tox.ini
2015-06-23 16:49:05 +02:00
Florian Bruhin
f78b6df8bc
Return an empty list directly.
2015-06-23 14:05:44 +02:00
Florian Bruhin
8664fc4102
Add a --noconftest option.
2015-06-23 09:38:54 +02:00
holger krekel
cdd25c9512
bump version to 2.7, depend on py-1.4.29
2015-06-22 23:53:41 +02:00
holger krekel (rather uses bitbucket/hpk42)
080dfb9841
Merge pull request #788 from pytest-dev/issue-767
...
Fix issue where pytest.raises() doesn't always return Exception instance in py26
2015-06-19 13:41:44 +02:00
Edison Gustavo Muenz
48d91def7e
Added workaround to still show the diff on containers with unsortable elements.
...
fix issue #718
2015-06-19 07:51:59 -03:00
Bruno Oliveira
eb73db56c7
Fix issue where pytest.raises() doesn't always return Exception instance in py26
...
Fixes #767
2015-06-19 07:46:47 -03:00
holger krekel
13c01193d6
Merge remote-tracking branch 'origin/pytest-2.7'
2015-06-19 10:03:37 +02:00
Bruno Oliveira
f90b2f845c
unittest.SkipTest now reports original function location
...
Fix #748
2015-06-18 22:27:43 -03:00
Bruno Oliveira
9d4e0365da
Skipif marker report now refers to the skipped function
...
Fix #114
2015-06-18 21:59:44 -03:00
Anatoly Bubenkov
4d6fef36f4
Merge branch 'pytest-2.7'
2015-06-17 13:42:41 +02:00
Bruno Oliveira
2653024409
Use os.path.isdir instead of os.path.exists
...
As suggested during review
2015-06-17 08:08:03 -03:00
Bruno Oliveira
2a1424e563
Merge branch 'pytest-2.7' of github.com:curzona/pytest into pytest-2.7
...
Conflicts:
AUTHORS
CHANGELOG
2015-06-17 00:02:26 -03:00
curzona
1db5c95414
Automatically create directory for results
2015-06-16 19:30:19 -07:00
Punyashloka Biswal
0c05b906d4
backport fix for #713
2015-06-16 21:27:22 -03:00
Punyashloka Biswal
0b0406fa85
Handle reports that don't have a reprcrash
...
Closes #713 (which happens because ReprFailDoctest
doesn't have a reprcrash)
2015-06-16 18:53:20 -04:00
Bruno Oliveira
b40f760cc3
Change links from bitbucket to GitHub
2015-06-15 18:28:31 -03:00
Ronny Pfannschmidt
8ee73e028f
Merged in jpvanhal/pytest/include-setup-teardown-duration-in-junitxml (pull request #287 )
...
Include setup and teardown in junitxml test durations
2015-06-06 11:50:37 +02:00
holger krekel
ca44e88e54
backport fixed issue735
...
--HG--
branch : pytest-2.7
2015-06-04 07:52:25 +02:00
Benjamin Peterson
f3ad2e4ad2
use NameConstant node when it exists ( fixes #735 )
...
--HG--
branch : issue735
2015-06-03 18:07:10 -05:00
holger krekel
584cccf7ec
Merged in nicoddemus/pytest/issue-741-pytester-output (pull request #293 )
...
Make "running" output from testdir.run copy/pastable
2015-06-03 23:40:08 +02:00
holger krekel
ad08bf79e7
Merged in The-Compiler/pytest (pull request #298 )
...
Fix monkeypatch.setenv with string and raising=False.
2015-06-03 23:37:26 +02:00
Floris Bruynooghe
d220be8468
Use platform.python_version() to show Python version number
...
This results in something like "3.5.0b2" for non-final releases
while still being "3.5.0" for final releases.
2015-05-31 20:31:31 +01:00
Florian Bruhin
ff8d787cd5
Fix monkeypatch.setenv with string and raising=False.
...
Fixes #746 .
2015-05-19 22:59:49 +02:00
Floris Bruynooghe
504b6b72a9
Set 2.7.1 version number
...
--HG--
branch : pytest-2.7
2015-05-19 01:50:32 +01:00
Bruno Oliveira
a7f880fa1f
Make "running" output from testdir.run copy/pastable
...
fix 741
--HG--
branch : issue-741-pytester-output
2015-05-09 10:24:33 -03:00
holger krekel
d9a44098ce
use new pluggy api (now at 0.3.0) for adding hookcall monitoring
...
and reraise real keyboard interrupts during inline pytest runs
to allow for better stopping of the pytest tests.
--HG--
branch : plug30
2015-05-07 11:02:55 +02:00
holger krekel
bb8141e27c
- make sure sub pytest runs use the same basetemp
...
- depend on pluggy < 0.3
--HG--
branch : pluggy1
2015-05-06 14:58:46 +02:00
holger krekel
bddc88f09e
adapt to pluggy naming, rename pytest.hookspec_opts to pytest.hookspec,s ame with hookimpl_opts
...
--HG--
branch : pluggy1
2015-05-06 10:08:08 +02:00
holger krekel
23538bcd31
- some more adaptation to most recent pluggy API
...
- avoid using pluggin underscore api
- show pluggy version in header
--HG--
branch : pluggy1
2015-05-05 21:53:04 +02:00
holger krekel
a4f2236b36
merge default
...
--HG--
branch : pluggy1
2015-05-05 14:52:16 +02:00
holger krekel
88538f13ba
adapt for current API changes of pluggy
...
--HG--
branch : pluggy1
2015-05-04 15:08:41 +02:00
holger krekel
920b5afe45
now that we are going to have wheels, py source code might be not be installed
...
and the resulting genscript is useless
--HG--
branch : pluggy1
2015-05-04 14:42:01 +02:00
Janne Vanhala
93628fc0eb
Include setup and teardown in junitxml test durations
...
--HG--
branch : include-setup-teardown-duration-in-junitxml
2015-05-01 14:55:52 +03:00
famousgarkin
47936643c9
monkeypatch.chdir docstring punctuation
...
--HG--
branch : famousgarkin/monkeypatchchdir-docstring-punctuation-1430453576841
2015-05-01 04:13:06 +00:00
Floris Bruynooghe
aa2ffb9805
Merge fix for issue 731 from pytest-2.7
2015-04-30 21:13:03 +01:00
Floris Bruynooghe
7f554f50e3
Fix collapse false to look at unescaped braces only
...
Sometimes the repr of an object can contain the "\n{" sequence which is
used as a formatting language, so they are escaped to "\\n{". But the
collapse-false code needs to look for the real "\n{" token instead of
simply "{" as otherwise it may get unbalanced braces from the object's
repr (sometimes caused by the collapsing of long reprs by saferepr).
Fixes issue #731 .
--HG--
branch : pytest-2.7
2015-04-30 02:31:12 +01:00
holger krekel
25963e0544
adapt pytest to pluggy's decoratorclass branch
...
--HG--
branch : pluggy1
2015-04-29 16:40:52 +02:00
holger krekel
5ee7ee0850
adapt pytest to using pluggy (current master)
...
--HG--
branch : pluggy1
2015-04-29 16:40:51 +02:00
holger krekel
db5649ec6a
streamline pytester API majorly:
...
- integrate conftest into pytester plugin
- introduce runpytest() to either call runpytest_inline (default) or
runpytest_subprocess (python -m pytest)
- move testdir.inline_runsource1 to pdb tests
- strike some unneccessary methods.
- a new section "writing plugins" and some better pytester docs
--HG--
branch : testrefactor
2015-04-28 11:54:53 +02:00
holger krekel
a8afba054a
- refine lsof checking
...
- make runpytest() create an inline testing process instead of
a subprocess one
--HG--
branch : testrefactor
2015-04-28 11:54:46 +02:00
holger krekel
d3e363b97a
- make API between runpytest() and inline_run() more similar
...
- shift a number of tests to become inline_run() tests
--HG--
branch : testrefactor
2015-04-28 11:54:45 +02:00
holger krekel
424e5d1394
make test suite more tolerable against xdist causing warnings itself (which it does
...
currently)
--HG--
branch : plugtestfix
2015-04-27 15:06:47 +02:00
holger krekel
b2d66b9e7b
simplify load_setuptools_entrypoints and refine comments/docstrings
...
--HG--
branch : more_plugin
2015-04-27 14:10:33 +02:00
holger krekel
c54afbe42e
deprecate and warn about __multicall__ usage in hooks, refine docs about hook ordering,
...
make hookwrappers respect tryfirst/trylast
--HG--
branch : more_plugin
2015-04-27 12:50:34 +02:00
holger krekel
dea1c96031
actually revert back to using older simpler method for subset hook
...
calling. It is slightly more inefficient but easier to implement and
read.
--HG--
branch : more_plugin
2015-04-26 17:17:59 +02:00
holger krekel
d2ea7387f2
re-add tryfirst/trylast marker documentation, mark it as to be removed
...
--HG--
branch : more_plugin
2015-04-26 00:47:24 +02:00
holger krekel
8e009ee31c
move consider_setuptools_entrypoints to core pluginmanager
...
--HG--
branch : more_plugin
2015-04-26 00:41:29 +02:00
holger krekel
0c961deeaa
fix some doc strings
...
--HG--
branch : more_plugin
2015-04-26 00:22:34 +02:00
holger krekel
32165d82b1
introduce a new subset_hook_caller instead of remove make_hook_caller
...
and adapat and refine conftest/global plugin management accordingly
--HG--
branch : more_plugin
2015-04-26 00:10:52 +02:00
holger krekel
d422247433
specialize make_hook_caller to work with a subset of the registered plugins.
...
--HG--
branch : more_plugin
2015-04-25 22:13:42 +02:00
holger krekel
a042c57227
ensure proper get_name references
...
--HG--
branch : more_plugin
2015-04-25 20:42:41 +02:00
holger krekel
3a1374e69c
simplify plugins bookkeeping further, refine API
...
--HG--
branch : more_plugin
2015-04-25 20:17:32 +02:00
holger krekel
1c0582eaa7
simplify addition of method and scanning of plugins
...
--HG--
branch : more_plugin
2015-04-25 18:15:42 +02:00
holger krekel
1e883f5979
simplify tracing mechanics by simply going through an indirection
...
--HG--
branch : more_plugin
2015-04-25 18:15:39 +02:00
holger krekel
9c5495832c
avoid direct circular reference between config and pluginmanager
...
--HG--
branch : more_plugin
2015-04-25 18:14:41 +02:00
holger krekel
7364647f2f
fix issue732: make sure removed plugins remove all hook callers.
...
--HG--
branch : more_plugin
2015-04-25 18:14:39 +02:00
holger krekel
4e116ed503
make pytest_plugin_registered a historic hook
...
--HG--
branch : more_plugin
2015-04-25 13:38:30 +02:00
holger krekel
e7a2e53108
Streamline data structures
...
--HG--
branch : more_plugin
2015-04-25 13:38:29 +02:00
holger krekel
2f8a1aed6e
properly perform hook calls with extra methods
...
--HG--
branch : more_plugin
2015-04-25 11:29:11 +02:00
holger krekel
a63585dcab
introduce historic hook spec which will memorize calls to a hook
...
in order to call them on later registered plugins
--HG--
branch : more_plugin
2015-04-25 11:29:11 +02:00
holger krekel
d2a5c7f99b
add documented hookimpl_opts and hookspec_opts decorators
...
so that one doesn't have to use pytest.mark or function-attribute setting anymore
--HG--
branch : more_plugin
2015-04-25 11:29:11 +02:00
holger krekel
bbbb6dc2e3
remove _do_register indirection between PluginManager and PytestPluginManager
...
--HG--
branch : more_plugin
2015-04-25 11:29:11 +02:00
holger krekel
f41528433b
also incrementally remove plugins from hook callers
...
--HG--
branch : more_plugin
2015-04-25 11:29:11 +02:00
holger krekel
02a4042dca
incrementally update hook call lists instead of regenerating the whole
...
list on each registered plugin
--HG--
branch : more_plugin
2015-04-25 11:29:11 +02:00
holger krekel
b03c1342ac
allow to register plugins with hooks that are only added later
...
--HG--
branch : more_plugin
2015-04-25 11:29:11 +02:00
holger krekel
9020bf48b7
remove useless check
...
--HG--
branch : plugin_no_pytest
2015-04-24 14:09:57 +02:00
holger krekel
237ac8562f
minimize HookCaller attributes: avoid passing in hookrelay to HookCallers
...
--HG--
branch : plugin_no_pytest
2015-04-24 13:02:49 +02:00
holger krekel
feb4b2249a
remove some redundancy when parsing import spec
...
--HG--
branch : plugin_no_pytest
2015-04-23 13:15:34 +02:00
holger krekel
95dd2eb1da
streamline and document handling of builtin module special casing.
...
--HG--
branch : plugin_no_pytest
2015-04-23 12:39:11 +02:00
holger krekel
8fde2f98ae
merge default
...
--HG--
branch : plugin_no_pytest
2015-04-23 12:35:15 +02:00
Floris Bruynooghe
e450218daa
Merge _pytest fixture reintroduction from pytest-2.7 branch
...
This was accidentally removed while some plugins depend on it.
2015-04-23 00:55:58 +01:00
holger krekel
a3aebfaefe
accomodate Floris' comments. (The reason was i just reinstanted the old code :)
...
--HG--
branch : reintroduce_pytest_fixture
2015-04-22 21:04:36 +02:00
holger krekel
9d5182eaad
reintroduced _pytest fixture of the pytester plugin which is used
...
at least by pytest-xdist.
--HG--
branch : reintroduce_pytest_fixture
2015-04-22 17:06:00 +02:00
holger krekel
27589eb7e1
reshuffle pluginmanager methods and add some docstrings.
...
--HG--
branch : plugin_no_pytest
2015-04-22 16:42:41 +02:00
holger krekel
715a235b45
remove shutdown logic from PluginManager and add a add_cleanup() API
...
for the already existing cleanup logic of the config object.
This simplifies lifecycle management as we don't keep two
layers of shutdown functions and also simplifies the pluginmanager
interface.
also add some docstrings.
--HG--
branch : plugin_no_pytest
2015-04-22 16:33:20 +02:00
holger krekel
f746c190ac
slight cleanup of plugin register() functionality
...
--HG--
branch : plugin_no_pytest
2015-04-22 14:54:28 +02:00
holger krekel
d632a0d5c2
merge conftest management into PytestPluginManager
...
--HG--
branch : plugin_no_pytest
2015-04-22 14:15:42 +02:00
holger krekel
894d7dca22
avoid undocumented special casing of "pytest_" prefix
...
--HG--
branch : plugin_no_pytest
2015-04-22 13:44:37 +02:00
holger krekel
20d6c0b560
simplify exception capturing
...
--HG--
branch : plugin_no_pytest
2015-04-22 13:37:42 +02:00
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
holger krekel
3a4f69734a
remove superflous line
2014-01-22 13:54:25 +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
holger krekel
1ffc006363
fixed circular imports by reverting a few py.test -> pytest substitions.
2014-01-22 11:17:25 +01:00
holger krekel
836232e544
fix issue425: mention at end of "py.test -h" that --markers
...
and --fixtures work according to specified test path (or current dir)
2014-01-22 10:24:22 +01:00
holger krekel
2539e5a352
Merged in derdon/pytest/no-p-option (pull request #102 )
...
added docs about the `no:` syntax for the -p option
2014-01-20 13:22:31 +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
Simon Liedtke
d92ee8c3c3
added docs about the `no:` syntax for the -p option
...
--HG--
branch : no-p-option
2014-01-19 22:05:14 +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
Lukasz Balcerzak
99277be25f
Updated error message to be more helpful
...
Also, added misssing test
2013-12-19 14:29:57 +01:00
holger krekel
699892bd03
fix issue409 -- better interoperate with cx_freeze by not
...
trying to import from collections.abc which causes problems for py27/cx_freeze.
2013-12-18 14:56:45 +01:00
holger krekel
5a13f31bce
fix issue407: fix addoption docstring to point to argparse instead of
...
optparse. Thanks Daniel D. Wright.
2013-12-16 18:07:05 +01:00
Floris Bruynooghe
b820cf2e39
Fix docstring
...
This was copied from another paramterize call and I forgot to change
the parameters referred too.
2013-12-16 10:51:50 +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
holger krekel
ef023ebad3
merge
2013-12-16 07:01:58 +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
holger krekel
901f764825
merge
2013-12-14 14:00:47 +01:00
Ronny Pfannschmidt
e843b028e6
fix issue404 by more strict junitxml escape
2013-12-13 10:28:23 +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
bfa53811d3
regen docs and bump version to 2.5.0
2013-12-11 12:20:19 +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
dd0da4643a
clarify that pytest.mark.parametrize() takes a list of argvalues and not just
...
arbitrary iterators. Addresses issue122.
2013-12-10 10:16:27 +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
5c3d692008
some minor internal cleanup
2013-12-09 10:40:39 +01:00
holger krekel
ad2ac256de
speed up reorder for large higher-than-function-scoped parametrizations
2013-12-09 10:05:44 +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
7d9297e929
add changelog entry: PR90: add --color=yes|no|auto option to force terminal coloring
...
mode ("auto" is default). Thanks Marc Abramowitz.
2013-12-08 20:25:36 +01: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
holger krekel
e67047d629
remove unused cache argument for re-ordering items.
2013-12-07 21:00:33 +01: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
dbfbc2b222
add a skip benchmark file (from issue400).
2013-12-07 19:11:37 +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
23fa4cec61
Add option: --color=(yes/no/auto)
...
--HG--
branch : color_option
2013-12-06 11:49:48 -08:00
holger krekel
4b9dbd3920
remove unused line
2013-12-05 14:40:50 +01:00
holger krekel
98c6ced46e
refactor and document parametrized sorting code.
2013-12-05 06:09:29 +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
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
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
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
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
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
7e4b21e9a7
merge
2013-08-01 14:45:24 +02:00
holger krekel
b90d82c17f
fix some py33 issues introduced with rev 2985
...
--HG--
branch : argcomplete
2013-08-01 14:24:25 +02:00
Mathieu Agopian
99783b6fba
refs #335 : clarify that the exception info returned by pytest.raises is a py.code.ExceptionInfo()
2013-08-01 11:19:47 +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
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
ad72e7f29d
auto change %default -> %(default)s in help parameter string (on retrieval)
...
added code for warnings on optparse arguments (type, help),
which can be easily switched on with TYPE_WARN = True in config.py
installed and tested ( py.test --help )
pytest-quickcheck-0.7
pytest-gae-0.2.2
pytest-growl-0.1
pytest-bdd-0.4.7
pytest-bdd-splinter-0.4.4
pytest-cache-1.0
pytest-capturelog-0.7
pytest-codecheckers-0.2
pytest-contextfixture-0.1.1
pytest-cov-1.6
pytest-flakes-0.1
pytest-incremental-0.3.0
pytest-xdist-1.8
pytest-localserver-0.1.5
pytest-monkeyplus-1.1.0
pytest-oerp-0.2.0
pytest-pep8-1.0.4
pytest-pydev-0.1
pytest-rage-0.1
pytest-runfailed-0.3
pytest-timeout-0.3
pytest-xprocess-0.7
pytest-browsermob-proxy-0.1
pytest-mozwebqa-1.1.1
pytest-random-0.02
pytest-rerunfailures-0.03
pytest-zap-0.1
pytest-blockage-0.1
pytest-django-2.3.0
pytest-figleaf-1.0
pytest-greendots-0.1
pytest-instafail-0.1.0
pytest-konira-0.2
pytest-marker-bugzilla-0.06
pytest-marks-0.4
pytest-poo-0.2
pytest-twisted-1.4
pytest-yamlwsgi-0.6
--HG--
branch : argparse
2013-07-25 17:26:48 +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
6d145ac93a
bump version
2013-07-24 11:16:19 +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
c53556b88d
paint last line red if "failures" or "errors" occured, attribute theuni
2013-07-17 09:31:55 +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
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
Floris Bruynooghe
c36186ce65
Always check for both ENOENT and ENOTDIR
...
This fixes issue 326.
2013-07-06 18:53:26 +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
2c7613c15c
merge with upstream
2013-07-06 10:06:12 +02:00
Christian Theune
d9f0a28da2
Compatibility with my spinal cord reflexes: colorize last summary line.
...
Provide a red bar if there are any 'failures'. Otherwise make it green.
2013-07-03 19:43:18 +02:00
holger krekel
c4c966683c
fix issue323 - parametrize() of many module-scoped params
2013-06-28 12:57:10 +02:00
holger krekel
469830fffa
some internal renaming to make more sense of the sorting algo,
...
no semantical changes.
2013-06-28 12:54:10 +02:00
holger krekel
f9720a38fe
mention added support for setUpModule/tearDownModule detection, thanks Brian Okken.
2013-06-23 09:24:48 +02:00
variedthoughts
3bcd3317ad
support unittest setUpModule/tearDownModule
2013-06-20 14:43:42 +00: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
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
Benjamin Peterson
bc5a5a63f2
use __dict__ not func_dict for Python 3 compatibility
2013-05-27 14:04:53 -07: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
60906f7a46
Issue 306: Use the names of all the parents in the chain for matching, except the Instance objects.
2013-05-27 17:58:39 +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
Wouter van Ackooy
02511d1564
Added lost space.
2013-05-22 07:41:46 +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
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
Jaap Broekhuizen
963b944e79
Fix junitxml generation when using special characters in parametrized tests.
2013-05-08 15:15:43 +02:00
holger krekel
55cd3d8bf3
bump version
2013-05-07 21:39:30 +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
77d2f6adde
fix issue245 by depending on py-1.4.14 which fixes py.io.dupfile
...
to not assume file.mode is present.
2013-05-07 10:54:05 +02:00
hg
d2dc797779
#299
2013-05-05 22:15:06 +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
8e41ef5776
bump version
2013-05-05 14:48:17 +02:00
holger krekel
8c7ae7f7a5
release 2.3.5 packaging
2013-04-30 12:26:30 +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
Floris Bruynooghe
3c317dc35e
Minor style cleanup
2013-04-28 20:56:56 +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
Ronny Pfannschmidt
cf7cae0780
pdb plugin: move entering pdb into a toplevel function
...
this prepares pdb at collect time
2013-04-18 11:18:24 +02:00
Ronny Pfannschmidt
55c349a9eb
charify pdb visible stack end finding by turning it into a function
2013-04-16 10:19:20 +02:00
Ronny Pfannschmidt
73446e98be
turn the postmortem traceback selection to a function
2013-04-16 10:18:08 +02: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
holger krekel
ee69b43c7a
Merged in adamgoucher/pytest (pull request #29 )
...
stdout/stderr now captured by junitxml
2013-04-16 09:02:08 +02:00
Ronny Pfannschmidt
63a6936d82
move pdb plugin post morten traceback selection to a own function
...
this is preparation for making it resillent against broken envs
that can't import doctest
2013-04-16 08:46:55 +02:00
Adam Goucher
1cbd2db621
stdout/stderr now captured by junitxml
2013-04-16 00:45:14 -04:00
holger krekel
712898cfe1
- add release announce
2013-03-28 10:21:03 +01:00
Floris Bruynooghe
f31dc7a8b7
Attempt to improve detailed failure reporting
...
* If --verbose is used do not truncate.
* Add a special dict comparison instead of diffing
pprint output.
2013-03-28 01:39:01 +00:00
Ronny Pfannschmidt
9c9679945e
fix Issue 265 - integrate nose setup/teardown with setupstate
...
as sideeffect teardown is only called if setup doesnt fail
2013-03-25 10:52:02 +01:00
Ronny Pfannschmidt
76fb51a4ba
fix issue 271 - dont write junitxml on slave nodes
2013-03-24 20:43:25 +01:00
Ronny Pfannschmidt
93da606763
fix Issue 274 - dont fail when doctest does not know the example location
...
instead only the last test is shown, this could use some further enhancement
2013-03-24 20:05:29 +01:00
Benjamin Peterson
5e479c94ce
disable assertion rewriting on CPython 2.6.0 because of bugs ( fixes #280 )
2013-03-21 12:19:01 -05:00
holger krekel
8f8466ee40
Merged in witsch/pytest/doctest-fixtures (pull request #25 )
...
fixture support in doctests
2013-03-21 12:33:43 +01:00