Daniel Hahler
45ba736c81
Merge pull request #5128 from blueyed/mark-is
...
Fix error message with unregistered markers
2019-04-15 16:23:54 +02:00
Daniel Hahler
cc005af47e
Fix error message with unregistered markers
2019-04-15 10:15:37 +02:00
Daniel Hahler
6f0a5789fb
Merge master into features
2019-04-14 23:22:21 +02:00
Anthony Sottile
43e7401c91
Produce a warning when unknown arguments are passed to pytest.param()
2019-04-12 13:00:39 -07:00
Zac-HD
00810b9b2a
Register "issue" mark for self-tests
2019-03-31 14:22:30 +11:00
Daniel Hahler
76c70cbf4c
Fix off-by-one error with lineno in mark collection error
2019-03-27 17:44:52 +01:00
Ronny Pfannschmidt
f28b834426
fix #4649 - also transfer markers to keywordmapping
...
as it turns out it is distinct from nodekeywords and behaves completely different
2019-01-18 23:18:51 +01:00
Ronny Pfannschmidt
9f9f6ee48b
remove most of markertransfer
...
keywords are still a big issue
2018-12-21 14:02:38 +01:00
Bruno Oliveira
c378cb4793
Remove support for applying marks to values in parametrize
...
Fix #3082
2018-12-20 16:16:13 -02:00
Bruno Oliveira
33b877cc01
Merge remote-tracking branch 'upstream/master' into merge-master-into-features
2018-11-23 23:27:41 -02:00
Anthony Sottile
b3700f61ba
Fix formatting of print() calls
2018-11-22 00:15:14 -08:00
Anthony Sottile
8395b9e25d
Require id=... to be a string
...
This was documented before, but never enforced. Passing non-strings could
have strange side-effects and enforcing a string simplifies other
implementation.
2018-11-19 11:03:52 -08:00
Bruno Oliveira
dc20dedbc7
Change RemovedInPytest4Warnings to errors by default
...
To keep existing tests which emit RemovedInPytest4Warnings running, decided
to go with a command line option because:
* Is harder to integrate an ini option with tests which already use an ini file
* It also marks tests which need to be removed/updated in 4.1, when
RemovedInPytest4Warning and related functionality are removed.
Fix #3737
2018-11-12 16:10:57 -02:00
Anthony Sottile
2368fbb63c
Apply reorder-python-imports to all files
2018-10-25 00:01:29 -07:00
Bruno Oliveira
5436e42990
Use pytest.fail(..., pytrace=False) when treating user errors
...
This prevents an enormous and often useless stack trace from showing
to end users.
Fix #3867
Fix #2293
2018-10-10 19:16:53 -03:00
Bruno Oliveira
1101a20408
Merge remote-tracking branch 'upstream/master' into merge-master-into-features
2018-10-02 18:13:54 -03:00
Ronny Pfannschmidt
5d2d64c190
Merge pull request #4057 from jeffreyrack/4051-improve-error-messaging
...
Improve error messaging when invalid syntax is passed to the -m option
2018-10-01 07:16:59 +02:00
Jeffrey Rackauckas
c2179c3127
Improve error messaging when invalid syntax is passed to the -m option
2018-09-30 18:34:56 -07:00
Andrea Cimatoribus
05155e4db0
Fail at parametrize option for empty parameter set
...
Optionally raise an exception when parametrize collects no arguments.
Provide the name of the test causing the failure in the exception
message.
See: #3849
2018-09-15 09:18:03 +02:00
Bruno Oliveira
ddb308455a
Make sure warn is called in test_parameterset_extractfrom
2018-09-05 09:01:29 -03:00
Bruno Oliveira
47bf58d69e
Make Node.warn support two forms, new and deprecated
...
As suggested during review, it now accepts two forms:
Node.warn(warning_instance) (recommended)
Node.warn(code, message) (deprecated)
2018-09-04 15:53:17 -03:00
Bruno Oliveira
b42518acd5
Change std_warn to receive a single warning instance, addressed review suggestions
2018-09-04 14:20:42 -03:00
Bruno Oliveira
19a01c9849
Make PytestWarning and RemovedInPytest4Warning part of the public API
2018-09-04 11:35:34 -03:00
Bruno Oliveira
0100f61b62
Start the laywork to capture standard warnings
2018-09-04 11:35:15 -03:00
Bruno Oliveira
7696d5371a
Merge remote-tracking branch 'upstream/master' into features
2018-07-04 18:49:35 -03:00
Ronny Pfannschmidt
5bd5b8c68a
fix #3631 - don't store legacy markinfo when its impossible
2018-06-29 14:01:20 +02:00
Ronny Pfannschmidt
3c73d6298a
merge from master to features
2018-06-28 17:32:41 +02:00
Ronny Pfannschmidt
b8486037d3
fix #3605 - unpack markdecorators from parameterization
2018-06-26 21:57:31 +02:00
Ronny Pfannschmidt
78a82c05ef
consistent failure on all python versions for test_markers_from_parametrize
2018-06-26 21:57:31 +02:00
Ronny Pfannschmidt
853975d93b
add failing test for #3605
2018-06-26 21:57:31 +02:00
Ronny Pfannschmidt
89e0a3ec27
merge from master to features
2018-06-26 17:01:05 +02:00
Anthony Sottile
cbaa7dd56a
Upgrade pre-commit hooks except pyupgrade
2018-06-26 06:35:27 -07:00
Ondřej Súkup
deff54aae0
Try import mock, but on python 3.3+ can use also stdlib unittest.mock
...
From Python 3.3 is mock part of python standard library in unittest namespace
2018-06-23 23:27:07 +02:00
Ronny Pfannschmidt
eb0c6a8287
fix addmarker - extract mark from markdecorator
2018-06-13 17:27:00 +02:00
Ronny Pfannschmidt
37793d4cdb
fix addmarker - extract mark from markdecorator
2018-06-12 15:50:58 +02:00
Ronny Pfannschmidt
703e4b11ba
run black
2018-05-23 16:48:46 +02:00
Ronny Pfannschmidt
3e1590bcfc
sort out pyupgrade fallout
2018-05-23 16:45:58 +02:00
Ronny Pfannschmidt
9aacb4635e
run pyupgrade
2018-05-23 16:45:09 +02:00
Ronny Pfannschmidt
4914135fdf
introduce name filtering for marker iteration again
2018-05-11 21:48:15 +02:00
Ronny Pfannschmidt
e6a86e0f4c
add tests for #3441
2018-05-03 17:33:59 +02:00
Ronny Pfannschmidt
a5cf55dd4a
fix test_mark_option_custom - it used the legacy keyword storage for addign markers
2018-05-03 16:33:16 +02:00
Ronny Pfannschmidt
dbb1b5a227
remove NodeMarkers, turn own_markers into a list and use iter_markers api exclusively
2018-03-29 18:24:10 +02:00
Ronny Pfannschmidt
159ea9b7c0
turn Markinfo into atts clsas, and return correct instances of it from node.get_marker
2018-03-29 17:52:01 +02:00
Ronny Pfannschmidt
180ae09202
deprecate markinfo and fix up most marker scoping access while completely breaking metafunc testing
2018-03-29 17:52:01 +02:00
Ronny Pfannschmidt
f1a1695aaa
enable deep merging test - new structure fixed it
2018-03-29 17:52:01 +02:00
Ronny Pfannschmidt
2707221559
port mark evaluation to the new storage and fix a bug in evaluation
2018-03-29 17:52:01 +02:00
Ronny Pfannschmidt
17a1ed5edf
use a constant to sort out repeated use of the EMPTY_PARAMETERSET_OPTION
2018-01-26 12:12:26 +01:00
Ronny Pfannschmidt
a54cd4c2fd
correct testing and usage of the empty_parameter_set_mark config option
2018-01-26 12:05:52 +01:00
Ronny Pfannschmidt
d4c11e58aa
exted empty parameterset check with reason test
2018-01-26 11:18:50 +01:00
Ronny Pfannschmidt
37b41de779
fix #2527 - introduce a option to pic the empty parameterset action
2018-01-26 11:10:00 +01:00
feuillemorte
8433e2ba04
#2953 fix comments: fix exception type
2018-01-16 23:35:57 +03:00
feuillemorte
076fb56f85
show a simple and easy error when keyword expressions trigger a syntax error
2018-01-16 21:30:44 +03:00
Bruno Oliveira
05cfdcc8cb
Revert making TerminalWriter public in TerminalReporter plugin
...
We eventually want to replace py.io.TerminalWriter (exposed as
"_tw" in TerminalReporter) by something else, so deprecating access
to "_tw" and making it public as "writer" is contrary to that.
2017-11-23 19:53:12 -02:00
Sviatoslav Abakumov
5e71ffab87
Handle marks without description
2017-11-22 15:47:15 +03:00
Bruno Oliveira
03829fde8a
Fix linting E741: ambiguous variable name
2017-11-04 13:59:10 -02:00
Sviatoslav Abakumov
52aadcd7c1
Strip whitespace from markers in INI config
...
Resolves #2856 .
2017-10-24 14:18:39 +03:00
Leonard Lausen
e86ba41a32
Add testcase for #2819
2017-10-09 01:06:25 +09:00
Xuan Luong
1e93089165
[bugfix] Checking MarkDecorator equality returns False for non-MarkDecorator object
2017-09-09 01:31:08 -04:00
Bruno Oliveira
0726d9a09f
Turn warnings into errors in pytest's own test suite
...
Fix #2588
2017-07-22 21:44:18 -03:00
Ronny Pfannschmidt
65b2de13a3
fix #2540 , introduce mark.with_args
2017-07-21 13:37:09 +02:00
Bruno Oliveira
7b1870a94e
Fix flake8 in features branch
2017-07-17 21:16:14 -03:00
Bruno Oliveira
4fd92ef9ba
Merge branch 'fix-flake8-issues' into features
2017-07-17 21:05:39 -03:00
Andras Tim
7248b759e8
Fixed E303 flake8 errors
...
too many blank lines (3)
2017-07-17 01:44:23 +02:00
Andras Tim
b840622819
Fixed E302 flake8 errors
...
expected 2 blank lines, found 0
2017-07-17 01:44:23 +02:00
Andras Tim
617e510b6e
Fixed E231 flake8 errors
...
missing whitespace after ‘,’, ‘;’, or ‘:’
2017-07-17 01:44:22 +02:00
Andras Tim
df54bf0db5
Fixed E131 flake8 errors
...
continuation line unaligned for hanging indent
2017-07-17 01:28:16 +02:00
Andras Tim
e855a79dd4
Fixed E126 flake8 errors
...
continuation line over-indented for hanging indent
2017-07-17 01:28:16 +02:00
Ronny Pfannschmidt
19b12b22e7
store pristine marks on function.pytestmark
...
fixes #2516
2017-06-22 10:48:45 +02:00
Bruno Oliveira
f3b359f5b8
Merge remote-tracking branch 'upstream/master' into merge-master-into-features
...
# Conflicts:
# _pytest/capture.py
# _pytest/compat.py
# _pytest/python.py
# testing/python/collect.py
# testing/test_mark.py
2017-05-03 19:04:53 -03:00
Vitaly Lashmanov
60b8339166
Issue #2383 - Show the correct error message when collect "parametrize" func with wrong args and add test for this case.
2017-04-29 14:32:09 +03:00
Ronny Pfannschmidt
e368fb4b29
implement pytest.param
...
this allows a clear addition of parameterization parameters that carry along marks
instead of nesting multiple mark objects and destroying the possibility of creating
function valued parameters,
it just folders everything together into one object carrfying parameters, and the marks.
2017-03-17 16:53:43 +01:00
Bruno Oliveira
e5021dc9dc
Replace py.builtin.print_() calls by builtin print() function
2017-03-16 22:46:51 -03:00
Bruno Oliveira
42a5d6bdfa
Add __future__ imports to all pytest modules
...
This prevents silly errors from creeping in Python 2 when testing in Python 3
2017-03-16 22:45:40 -03:00
Michal Wajszczuk
fb0b90646e
New-style classes implemented for python 2.7 - #2147
2017-02-16 20:28:17 +01:00
Bruno Oliveira
5ce551e469
Merge pull request #2075 from pytest-dev/master
...
Merge master into features after fixing flake8 errors
2016-11-22 14:10:31 -02:00
Bruno Oliveira
1eb5a690d4
Fix flake8 E305 and E306 errors
...
These errors started to appear with flake8-3.1.1, while they don't appear with
version 3.1.0 (weird).
2016-11-20 18:59:15 -02:00
Ronny Pfannschmidt
10094a3f09
use consistent inner repressentation for marks
2016-09-08 09:52:22 +02:00
Bruno Oliveira
458ecae1df
Replace all usages of "pytest_funcarg__" for @pytest.fixture
2016-07-11 22:21:52 -03:00
Ronny Pfannschmidt
76756c0c0b
mark tests: use better name of the test for #568
2016-06-27 11:57:21 +02:00
Ronny Pfannschmidt
95b83958f4
add xfailing test for issue #568
2016-06-25 15:49:23 +02:00
Ronny Pfannschmidt
ec5e05834f
fix typo
2016-05-18 21:35:31 +02:00
Ronny Pfannschmidt
98dd2ce75c
document reason for #1540
2016-04-28 16:22:31 +02:00
Ronny Pfannschmidt
308e76e19c
add xfailing test for #1540
2016-04-28 16:11:30 +02:00
palaviv
1ee3d40dbe
allow parametrized nodes to be specified from command line
2016-03-13 23:37:21 +02:00
Bruno Oliveira
af893aab26
Remove code related to support python <= 2.5
...
Fix #1226
2015-12-16 16:16:22 -02:00
jakubo
e8f4819876
Test file run twice fails if it contains marked class #683
2015-07-26 12:15:29 +02:00
Anatoly Bubenkov
6af7172204
Merge branch 'pytest-2.7'
2015-07-19 15:25:04 +02: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
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
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
0253f7b8d5
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 krekel
39158957f4
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.
--HG--
branch : issue557
2014-10-06 12:11:48 +02:00
Jurko Gospodnetić
54a143e6a8
add test: '--markers' listing info from plugins in current folder
...
When pytest is called with the '--markers' option, it should collect marker
information from the current folder, and they should get loaded and used
correctly before the '--markers' output is constructed.
2014-01-22 14:16:39 +01:00
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
Lukasz Balcerzak
99277be25f
Updated error message to be more helpful
...
Also, added misssing test
2013-12-19 14:29:57 +01:00
holger krekel
08f3a0791d
fix issue357 - special case "-k" expressions to allow for
...
filtering with simple strings that are not valid python expressions.
Examples: "-k 1.3" matches all tests parametrized with 1.3.
"-k None" filters all tests that have "None" in their name
and conversely "-k 'not None'".
Previously these examples would raise syntax errors.
Also add a note to the docs about what is allowed.
2013-11-21 15:25:16 +01:00
holger krekel
2700a94d49
remove an old duplicate marker and use recent pytest mechanism for parametrization
2013-11-21 14:40:14 +01: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
2248a31a44
more fixes regarding marking, in particular plugins should use add_marker/get_marker now.
2013-10-03 15:43:56 +02:00