Daniel Hahler
2228ccbfb4
pytester: reset log output in _match_lines ( #70 )
...
This is necessary for when using e.g. `no_fnmatch_line` after it.
Factor it out into `_fail`.
(cherry picked from commit aade7ed0045ba32557ef8565cbab28a2c91053a7)
Ref: https://github.com/pytest-dev/pytest/pull/5914#issuecomment-549182242
2019-11-20 05:24:18 +01:00
Daniel Hahler
54a954514b
re-run black
2019-11-16 18:55:32 +01:00
Daniel Hahler
6ddf7c3d42
pytester: Hookrecorder: improve assertoutcome
...
Before:
def assertoutcome(self, passed: int = 0, skipped: int = 0, failed: int = 0) -> None:
realpassed, realskipped, realfailed = self.listoutcomes()
assert passed == len(realpassed)
> assert skipped == len(realskipped)
E assert 1 == 0
E + where 0 = len([])
After:
> reprec = testdir.inline_run(testpath, "-s")
E AssertionError: ([], [], [<TestReport 'nodeid' when='call' outcome='failed'>])
E assert {'failed': 1, 'passed': 0, 'skipped': 0} == {'failed': 0, 'passed': 0, 'skipped': 1}
2019-11-13 13:48:20 +01:00
Daniel Hahler
86e9ae39f0
pytester: assert_outcomes: use/set __tracebackhide__
2019-11-12 15:28:36 +01:00
Ran Benita
265a9eb6a2
Add type annotations to some of _pytest.pytester
2019-11-07 14:13:47 +02:00
Daniel Hahler
ec27363748
Merge pull request #6025 from blueyed/pytester-typing
...
pytester: typing
2019-10-28 05:31:31 +01:00
Daniel Hahler
716f532a38
Merge pull request #6070 from blueyed/pexpect-freebsd
...
pytester: spawn: do not skip FreeBSD
2019-10-28 05:13:31 +01:00
Daniel Hahler
886a3ad609
pytester: typing
2019-10-27 12:32:14 +01:00
Daniel Hahler
7f1af84f47
Merge master into features
...
Conflicts:
src/_pytest/logging.py
2019-10-27 02:06:36 +01:00
Daniel Hahler
8e8a8fa4b9
pytester: spawn: do not skip FreeBSD
...
Fixes https://github.com/pytest-dev/pytest/issues/6069
2019-10-27 00:44:25 +02:00
Ran Benita
0b8c35516f
Replace py.io.TextIO with io.StringIO
...
In Python3, py.io.TextIO is just an alias to io.StringIO. Remove the
indirection.
2019-10-26 16:33:57 +03:00
Bruno Oliveira
d1bc2601e4
pytester: align prefixes ( #6026 )
...
pytester: align prefixes
2019-10-24 18:50:29 -03:00
Daniel Hahler
8ef4287bf0
pytester: align prefixes
...
This is important for using another match_nickname, e.g. "re.match".
TODO:
- [ ] changelog
- [ ] test
2019-10-24 23:20:12 +02:00
Daniel Hahler
6242777818
Merge pull request #6041 from blueyed/pytester-splitlines
...
pytester: runpytest_inprocess: use splitlines()
2019-10-23 21:42:21 +02:00
Bruno Oliveira
20ee883b5f
Show the mnemonic of pytest.ExitCode in RunResult's repr ( #6043 )
...
Show the mnemonic of pytest.ExitCode in RunResult's repr
2019-10-23 10:46:58 -03:00
Bruno Oliveira
7beb520555
Show the mnemonic of pytest.ExitCode in RunResult's repr
...
Fix #4901
2019-10-23 09:16:02 -03:00
Daniel Hahler
2f589a9769
pytester: runpytest_inprocess: use splitlines()
...
This avoids having a trailing empty lines always.
2019-10-23 04:34:29 +02:00
Daniel Hahler
b47f57a08a
pytester: parseconfigure: remove duplicate config._ensure_unconfigure
...
This gets done in `parseconfig` already.
2019-10-21 01:15:27 +02:00
Bruno Oliveira
0c18e24433
Introduce no_fnmatch_line/no_re_match_line in pytester
...
The current idiom is to use:
assert re.match(pat, result.stdout.str())
Or
assert line in result.stdout.str()
But this does not really give good results when it fails.
Those new functions produce similar output to ther other match lines functions.
2019-10-06 18:05:24 -03:00
Anthony Sottile
07792c7113
Fix attribute docs in _pytest.pytester
2019-09-28 18:19:53 -07:00
Bruno Oliveira
1049a38cee
Fix wording as suggested in review of #5741
2019-08-15 10:05:42 -03:00
Bruno Oliveira
d7f082519a
Merge remote-tracking branch 'upstream/master' into mm
...
Conflicts:
src/_pytest/outcomes.py
2019-08-15 10:03:52 -03:00
Daniel Hahler
1434b66c35
pytester: spawn: skip without pexpect.spawn
...
"pexpect" can be imported on Windows, but does not have "pexpect.spawn"
then.
Ref: https://github.com/pexpect/pexpect/blob/a803933ed53/pexpect/__init__.py#L73-L76
2019-08-13 17:54:40 +02:00
Bruno Oliveira
345df99db7
Show session duration in human-readable format
...
Fix #5707
2019-08-10 10:45:53 -03:00
Ilya Stepin
ee936b27a8
pytester: fix docstrings
...
Co-Authored-By: Bruno Oliveira <nicoddemus@gmail.com>
2019-08-10 09:12:04 +03:00
martbln
e0ce8b79d5
pytester: add docstrings for Testdir.copy_example
2019-08-10 00:59:14 +03:00
Anthony Sottile
4cd08f9b52
Switch from deprecated imp to importlib
2019-06-24 09:48:38 -07:00
Ronny Pfannschmidt
0627d92df2
fix typos in the resolution of #5125
2019-06-17 20:35:23 +02:00
Ronny Pfannschmidt
2b92fee1c3
initial conversion of exit codes to enum
2019-06-15 06:48:00 +02:00
Bruno Oliveira
23cd68b667
Use keyword-only arguments in a few places
2019-06-04 21:10:59 -03:00
Anthony Sottile
c63320cc31
codecs.open / io.open
2019-06-03 12:08:02 -03:00
Anthony Sottile
a91fe1fedd
pre-commit run pyupgrade --all-files
2019-06-03 12:08:02 -03:00
Anthony Sottile
3f1ec520fc
pre-commit run reorder-python-imports --all-files
2019-06-03 12:08:01 -03:00
Anthony Sottile
5034399d7a
pre-commit run fix-encoding-pragma --all-files
2019-06-03 12:08:01 -03:00
Bruno Oliveira
4d49ba6529
Drop Python 2.7 and 3.4 support
...
* Update setup.py requires and classifiers
* Drop Python 2.7 and 3.4 from CI
* Update docs dropping 2.7 and 3.4 support
* Fix mock imports and remove tests related to pypi's mock module
* Add py27 and 34 support docs to the sidebar
* Remove usage of six from tmpdir
* Remove six.PY* code blocks
* Remove sys.version_info related code
* Cleanup compat
* Remove obsolete safe_str
* Remove obsolete __unicode__ methods
* Remove compat.PY35 and compat.PY36: not really needed anymore
* Remove unused UNICODE_TYPES
* Remove Jython specific code
* Remove some Python 2 references from docs
Related to #5275
2019-06-02 14:39:11 -03:00
Daniel Hahler
ace3a02cd4
pytester: factor out testdir._env_run_update
2019-05-30 17:39:44 +02:00
Daniel Hahler
f013a5e8c1
pytester: use temporary HOME with spawn
...
Followup to https://github.com/pytest-dev/pytest/issues/4956 .
2019-05-30 17:39:44 +02:00
Daniel Hahler
da23aa3419
pytester: remove unused winpymap
...
Follow-up to c86d2daf8
.
2019-05-30 08:09:49 +02:00
Anthony Sottile
dc75b6af47
Use fix-encoding-pragma pre-commit hook
2019-05-14 15:56:31 -07:00
Bruno Oliveira
df68808d29
Merge pull request #5116 from blueyed/cov-pytester
...
Minor coverage improvements for pytester
2019-04-15 14:49:28 -03:00
Daniel Hahler
6f0a5789fb
Merge master into features
2019-04-14 23:22:21 +02:00
Daniel Hahler
f3dbe5a308
pytester: listoutcomes: assert instead of implicit if
2019-04-14 23:00:38 +02:00
Daniel Hahler
1da8ce65a6
pytester: raise_on_kwargs: ignore branch coverage
2019-04-14 23:00:38 +02:00
Daniel Hahler
8fd5a658eb
monkeypatch.syspath_prepend: invalidate import cache
...
This was done with testdir only, and uses the fixed monkeypatch method
there now.
2019-04-13 16:15:44 +02:00
Anthony Sottile
da2e092163
pre-commit autoupdate
2019-04-12 04:52:47 -07:00
Daniel Hahler
8b2fcf517c
Merge master
2019-04-11 13:28:36 +02:00
Daniel Hahler
5d9d12a6be
pytester: improve/fix kwargs validation
2019-04-10 21:57:45 +02:00
Daniel Hahler
ec46864922
run: pass through stdin, just close then
2019-04-10 00:02:38 +02:00
Daniel Hahler
c36a90531a
Move CLOSE_STDIN to class
2019-04-10 00:01:15 +02:00
Daniel Hahler
4fca86e2af
testdir.popen: use kwargs with defaults for stdout/stderr
2019-04-06 12:13:48 +02:00
Daniel Hahler
9ad00714ba
pytester: allow passing in stdin to run/popen
2019-04-06 12:13:28 +02:00
Daniel Hahler
8011ff5bda
Add _sys_snapshot fixture and use it with more tests
2019-04-05 11:55:23 +02:00
Daniel Hahler
8907fedc79
Merge master into features (with regen branch)
2019-04-03 22:11:00 +02:00
Daniel Hahler
d91527599a
pytester: use monkeypatch with Testdir
2019-04-03 15:02:53 +02:00
Zac-HD
ba1fc02a9b
Register mark used by pytester
2019-03-31 14:22:30 +11:00
Daniel Hahler
4e931b258d
Merge master into features
2019-03-29 11:05:46 +01:00
Daniel Hahler
d17ea7a9c0
tests: ensure cleanup with configs via get_config()
...
Also done in test_pluginmanager, although no resource warnings are
there at least.
Fixes https://github.com/pytest-dev/pytest/issues/4355 .
2019-03-28 00:14:13 +01:00
Daniel Hahler
56dc01ffe0
minor: revisit _possibly_invalidate_import_caches
2019-03-22 17:02:26 +01:00
Daniel Hahler
5df45f5b27
Use fixup_namespace_packages also with pytester.syspathinsert
2019-03-22 17:02:26 +01:00
Daniel Hahler
a50b92ea67
pytester: set HOME only with inline_run/popen
...
Ref: https://github.com/pytest-dev/pytest/issues/4955
2019-03-20 01:15:51 +01:00
Daniel Hahler
c75dd10671
pytester: testdir: set $HOME to tmpdir
...
This avoids loading user configuration, which might interfere with test
results, e.g. a `~/.pdbrc.py` with pdb++.
Also sets USERPROFILE, which will be required with Python 3.8 [1].
1: https://bugs.python.org/issue36264
2019-03-18 20:55:39 +01:00
Daniel Hahler
5e27ea5528
pytester: LineMatcher: assert Sequence when matching in order
...
This can be helpful when passing a set accidentally.
2019-03-15 23:07:08 +01:00
Daniel Hahler
7afe17740f
Merge master into features
2019-03-15 00:52:12 +01:00
Stephan Hoyer
dc7ae41f33
Fix broken error message in pytester
2019-03-08 09:22:00 -08:00
Daniel Hahler
c86d2daf81
pytester: remove unused anypython fixture
...
This became unused after ab9f6a75
(in 2009).
2019-03-06 17:42:21 +01:00
Daniel Hahler
db5cc35b44
pytester: unset PYTEST_ADDOPTS
2019-03-01 18:43:17 +01:00
Daniel Hahler
7b91952645
Merge master into features
...
Conflicts:
tox.ini
2019-02-13 17:58:16 +01:00
Daniel Hahler
237f690f8b
--lsof: suppress stderr
...
This can spam a lot of warnings (per invocation), e.g.:
> lsof: WARNING: can't stat() nsfs file system /run/docker/netns/default
Output information may be incomplete.
Or from Travis/MacOS:
> lsof: WARNING: can't stat() vmhgfs file system /Volumes/VMware Shared Folders
> Output information may be incomplete.
> assuming "dev=31000003" from mount table
2019-02-11 14:08:44 +01:00
Daniel Hahler
9bcbf552d6
Add __repr__ for RunResult
2019-02-08 23:41:20 +01:00
wim glenn
2d18546870
resolving report.when attribute should be reliable now
2019-01-24 11:12:59 -06:00
Anthony Sottile
92a2c1a9c4
remove and ban py.io.BytesIO, py.process, py.path.local.sysfind
2019-01-21 19:51:16 -08:00
Anthony Sottile
0c6ca0da62
Fix usages of py.io.saferepr
2019-01-20 16:36:23 -08:00
Daniel Hahler
3acfa3abdc
Add Testdir.__str__ to return str(self.tmpdir)
...
I just expected this with `monkeypatch.setenv("PYTHONPATH", str(testdir))`,
wondering why it was not picked up correctly.
`
2018-11-17 13:18:54 +01:00
Daniel Hahler
a6a96469ca
pytester: pop TOX_ENV_DIR from os.environ
...
Closes: https://github.com/pytest-dev/pytest/pull/4378
Fixes: https://github.com/pytest-dev/pytest/issues/4366
2018-11-13 09:02:52 +01:00
Daniel Hahler
feccf532d2
doc: improve runpytest_subprocess
2018-11-09 02:03:44 +01:00
Anthony Sottile
2368fbb63c
Apply reorder-python-imports to all files
2018-10-25 00:01:29 -07:00
Bruno Oliveira
9646a1cd7a
Merge remote-tracking branch 'upstream/master' into merge-master-into-features
2018-10-15 12:55:28 -03:00
Daniel Hahler
ee54fb9a6b
pytester: use EXIT_INTERRUPTED
2018-10-13 17:06:40 +02:00
Ronny Pfannschmidt
94829c391b
make tmpdir env cleanup idempotent
2018-10-11 07:15:09 +02:00
Ronny Pfannschmidt
b82d6f7a0b
pytester: use per test tmproot
2018-10-11 07:15:09 +02:00
Ronny Pfannschmidt
85cc9b8f12
move all the things into _pytest.pathlib
2018-10-11 07:15:08 +02:00
Daniel Hahler
b8fc3e569a
pytester: fix __tracebackhide__ for {re_,fn}match_lines
2018-10-10 19:27:43 +02:00
Kyle Altendorf
ccaec8d360
__tracebackhide__ = True
2018-10-06 21:57:03 -04:00
Kyle Altendorf
4b36f9aa64
Tidy timeout checking
2018-10-05 16:46:24 -04:00
Kyle Altendorf
ed5556bdac
Add to docstrings
2018-10-05 10:02:59 -04:00
Kyle Altendorf
42422a7f62
Throw away arbitrary args to runpytest_subprocess()
2018-10-05 00:30:25 -04:00
Kyle Altendorf
f3a173b736
Revert "Use signal.alarm() for py2 timeout"
...
This reverts commit 900cef6397
.
2018-10-05 00:05:46 -04:00
Kyle Altendorf
5c38a5160d
Slight diff tidy
2018-10-04 23:33:38 -04:00
Kyle Altendorf
dcf9eb0104
Raise an exception on unexpected kwargs
2018-10-04 23:27:01 -04:00
Kyle Altendorf
dd225e1b9d
Tidy getting of timeout from kwargs
2018-10-04 23:15:30 -04:00
Kyle Altendorf
900cef6397
Use signal.alarm() for py2 timeout
2018-10-04 23:11:26 -04:00
Kyle Altendorf
dcd635ba0c
Correct timeout to check every so often
2018-10-04 23:08:57 -04:00
Kyle Altendorf
33f0338eeb
kill and wait for subprocess before raising TimeoutExpired
2018-10-04 22:52:51 -04:00
Kyle Altendorf
d5e5433553
Add descriptive message for timeout
2018-10-04 21:43:41 -04:00
Kyle Altendorf
d2906950ce
monotonic.monotonic() -> time.time()
2018-10-04 21:26:08 -04:00
Bruno Oliveira
fe7050ba00
Fix lint
2018-10-04 18:45:30 -03:00
Kyle Altendorf
870a93c37b
Actually construct TimeoutExpired
2018-10-04 01:02:58 -04:00
Kyle Altendorf
96b2ae6654
Initial pass at timeout for subprocessing pytest
...
pytest-dev/pytest#4073
2018-10-03 23:56:57 -04: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