parent
							
								
									77bd0aa02f
								
							
						
					
					
						commit
						c8d52b633b
					
				| 
						 | 
					@ -168,7 +168,7 @@ class AssertionRewritingHook(object):
 | 
				
			||||||
                return True
 | 
					                return True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for marked in self._must_rewrite:
 | 
					        for marked in self._must_rewrite:
 | 
				
			||||||
            if name.startswith(marked):
 | 
					            if name == marked or name.startswith(marked + '.'):
 | 
				
			||||||
                state.trace("matched marked file %r (from %r)" % (name, marked))
 | 
					                state.trace("matched marked file %r (from %r)" % (name, marked))
 | 
				
			||||||
                return True
 | 
					                return True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					Fix issue in assertion rewriting which could lead it to rewrite modules which should not be rewritten.
 | 
				
			||||||
| 
						 | 
					@ -129,6 +129,24 @@ class TestImportHookInstallation(object):
 | 
				
			||||||
        result = testdir.runpytest_subprocess('--assert=rewrite')
 | 
					        result = testdir.runpytest_subprocess('--assert=rewrite')
 | 
				
			||||||
        assert result.ret == 0
 | 
					        assert result.ret == 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_pytest_plugins_rewrite_module_names_correctly(self, testdir):
 | 
				
			||||||
 | 
					        """Test that we match files correctly when they are marked for rewriting (#2939)."""
 | 
				
			||||||
 | 
					        contents = {
 | 
				
			||||||
 | 
					            'conftest.py': """
 | 
				
			||||||
 | 
					                pytest_plugins = "ham"
 | 
				
			||||||
 | 
					            """,
 | 
				
			||||||
 | 
					            'ham.py': "",
 | 
				
			||||||
 | 
					            'hamster.py': "",
 | 
				
			||||||
 | 
					            'test_foo.py': """
 | 
				
			||||||
 | 
					                def test_foo(pytestconfig):
 | 
				
			||||||
 | 
					                    assert pytestconfig.pluginmanager.rewrite_hook.find_module('ham') is not None
 | 
				
			||||||
 | 
					                    assert pytestconfig.pluginmanager.rewrite_hook.find_module('hamster') is None
 | 
				
			||||||
 | 
					            """,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        testdir.makepyfile(**contents)
 | 
				
			||||||
 | 
					        result = testdir.runpytest_subprocess('--assert=rewrite')
 | 
				
			||||||
 | 
					        assert result.ret == 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @pytest.mark.parametrize('mode', ['plain', 'rewrite'])
 | 
					    @pytest.mark.parametrize('mode', ['plain', 'rewrite'])
 | 
				
			||||||
    @pytest.mark.parametrize('plugin_state', ['development', 'installed'])
 | 
					    @pytest.mark.parametrize('plugin_state', ['development', 'installed'])
 | 
				
			||||||
    def test_installed_plugin_rewrite(self, testdir, mode, plugin_state):
 | 
					    def test_installed_plugin_rewrite(self, testdir, mode, plugin_state):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue