Merge pull request #2212 from nicoddemus/pytester-rewrite
Assert statements of the pytester plugin again benefit from assertion rewriting fixes #1920
This commit is contained in:
		
						commit
						e0c48b4fe7
					
				|  | @ -14,6 +14,9 @@ | ||||||
|   expected warnings and the list of caught warnings is added to the |   expected warnings and the list of caught warnings is added to the | ||||||
|   error message. Thanks `@lesteve`_ for the PR. |   error message. Thanks `@lesteve`_ for the PR. | ||||||
| 
 | 
 | ||||||
|  | * Assert statements of the ``pytester`` plugin again benefit from assertion rewriting (`#1920`_). | ||||||
|  |   Thanks `@RonnyPfannschmidt`_ for the report and `@nicoddemus`_ for the PR. | ||||||
|  | 
 | ||||||
| * Specifying tests with colons like ``test_foo.py::test_bar`` for tests in | * Specifying tests with colons like ``test_foo.py::test_bar`` for tests in | ||||||
|   subdirectories with ini configuration files now uses the correct ini file |   subdirectories with ini configuration files now uses the correct ini file | ||||||
|   (`#2148`_).  Thanks `@pelme`_. |   (`#2148`_).  Thanks `@pelme`_. | ||||||
|  | @ -28,6 +31,7 @@ | ||||||
| .. _@pelme: https://github.com/pelme | .. _@pelme: https://github.com/pelme | ||||||
| .. _@eli-b: https://github.com/eli-b | .. _@eli-b: https://github.com/eli-b | ||||||
| 
 | 
 | ||||||
|  | .. _#1920: https://github.com/pytest-dev/pytest/issues/1920 | ||||||
| .. _#2129: https://github.com/pytest-dev/pytest/issues/2129 | .. _#2129: https://github.com/pytest-dev/pytest/issues/2129 | ||||||
| .. _#2148: https://github.com/pytest-dev/pytest/issues/2148 | .. _#2148: https://github.com/pytest-dev/pytest/issues/2148 | ||||||
| .. _#2150: https://github.com/pytest-dev/pytest/issues/2150 | .. _#2150: https://github.com/pytest-dev/pytest/issues/2150 | ||||||
|  |  | ||||||
|  | @ -421,7 +421,7 @@ class PytestPluginManager(PluginManager): | ||||||
|             importspec = "_pytest." + modname |             importspec = "_pytest." + modname | ||||||
|         else: |         else: | ||||||
|             importspec = modname |             importspec = modname | ||||||
|         self.rewrite_hook.mark_rewrite(modname) |         self.rewrite_hook.mark_rewrite(importspec) | ||||||
|         try: |         try: | ||||||
|             __import__(importspec) |             __import__(importspec) | ||||||
|         except ImportError as e: |         except ImportError as e: | ||||||
|  |  | ||||||
|  | @ -58,6 +58,23 @@ class TestImportHookInstallation: | ||||||
|             assert 0 |             assert 0 | ||||||
|         result.stdout.fnmatch_lines([expected]) |         result.stdout.fnmatch_lines([expected]) | ||||||
| 
 | 
 | ||||||
|  |     def test_rewrite_assertions_pytester_plugin(self, testdir): | ||||||
|  |         """ | ||||||
|  |         Assertions in the pytester plugin must also benefit from assertion | ||||||
|  |         rewriting (#1920). | ||||||
|  |         """ | ||||||
|  |         testdir.makepyfile(""" | ||||||
|  |             pytest_plugins = ['pytester'] | ||||||
|  |             def test_dummy_failure(testdir):  # how meta! | ||||||
|  |                 testdir.makepyfile('def test(): assert 0') | ||||||
|  |                 r = testdir.inline_run() | ||||||
|  |                 r.assertoutcome(passed=1) | ||||||
|  |         """) | ||||||
|  |         result = testdir.runpytest_subprocess() | ||||||
|  |         result.stdout.fnmatch_lines([ | ||||||
|  |             '*assert 1 == 0*', | ||||||
|  |         ]) | ||||||
|  | 
 | ||||||
|     @pytest.mark.parametrize('mode', ['plain', 'rewrite']) |     @pytest.mark.parametrize('mode', ['plain', 'rewrite']) | ||||||
|     def test_pytest_plugins_rewrite(self, testdir, mode): |     def test_pytest_plugins_rewrite(self, testdir, mode): | ||||||
|         contents = { |         contents = { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue