remove os.sep as it behaves differently linux and windows.
* on linux it is '/' * on windows it is '\'
This commit is contained in:
parent
d5f4496bdf
commit
a0101f024e
1
AUTHORS
1
AUTHORS
|
@ -155,6 +155,7 @@ Samuele Pedroni
|
||||||
Segev Finer
|
Segev Finer
|
||||||
Simon Gomizelj
|
Simon Gomizelj
|
||||||
Skylar Downes
|
Skylar Downes
|
||||||
|
Srinivas Reddy Thatiparthy
|
||||||
Stefan Farmbauer
|
Stefan Farmbauer
|
||||||
Stefan Zimmermann
|
Stefan Zimmermann
|
||||||
Stefano Taschini
|
Stefano Taschini
|
||||||
|
|
|
@ -881,6 +881,18 @@ notset = Notset()
|
||||||
FILE_OR_DIR = 'file_or_dir'
|
FILE_OR_DIR = 'file_or_dir'
|
||||||
|
|
||||||
|
|
||||||
|
def _iter_rewritable_modules(package_files):
|
||||||
|
for fn in package_files:
|
||||||
|
is_simple_module = '/' not in fn and fn.endswith('.py')
|
||||||
|
is_package = fn.count('/') == 1 and fn.endswith('__init__.py')
|
||||||
|
if is_simple_module:
|
||||||
|
module_name, _ = os.path.splitext(fn)
|
||||||
|
yield module_name
|
||||||
|
elif is_package:
|
||||||
|
package_name = os.path.dirname(fn)
|
||||||
|
yield package_name
|
||||||
|
|
||||||
|
|
||||||
class Config(object):
|
class Config(object):
|
||||||
""" access to configuration values, pluginmanager and plugin hooks. """
|
""" access to configuration values, pluginmanager and plugin hooks. """
|
||||||
|
|
||||||
|
@ -1041,15 +1053,8 @@ class Config(object):
|
||||||
for entry in entrypoint.dist._get_metadata(metadata)
|
for entry in entrypoint.dist._get_metadata(metadata)
|
||||||
)
|
)
|
||||||
|
|
||||||
for fn in package_files:
|
for name in _iter_rewritable_modules(package_files):
|
||||||
is_simple_module = os.sep not in fn and fn.endswith('.py')
|
hook.mark_rewrite(name)
|
||||||
is_package = fn.count(os.sep) == 1 and fn.endswith('__init__.py')
|
|
||||||
if is_simple_module:
|
|
||||||
module_name, ext = os.path.splitext(fn)
|
|
||||||
hook.mark_rewrite(module_name)
|
|
||||||
elif is_package:
|
|
||||||
package_name = os.path.dirname(fn)
|
|
||||||
hook.mark_rewrite(package_name)
|
|
||||||
|
|
||||||
def _warn_about_missing_assertion(self, mode):
|
def _warn_about_missing_assertion(self, mode):
|
||||||
try:
|
try:
|
||||||
|
@ -1351,7 +1356,7 @@ def determine_setup(inifile, args, warnfunc=None):
|
||||||
rootdir, inifile, inicfg = getcfg(dirs, warnfunc=warnfunc)
|
rootdir, inifile, inicfg = getcfg(dirs, warnfunc=warnfunc)
|
||||||
if rootdir is None:
|
if rootdir is None:
|
||||||
rootdir = get_common_ancestor([py.path.local(), ancestor])
|
rootdir = get_common_ancestor([py.path.local(), ancestor])
|
||||||
is_fs_root = os.path.splitdrive(str(rootdir))[1] == os.sep
|
is_fs_root = os.path.splitdrive(str(rootdir))[1] == '/'
|
||||||
if is_fs_root:
|
if is_fs_root:
|
||||||
rootdir = ancestor
|
rootdir = ancestor
|
||||||
return rootdir, inifile, inicfg or {}
|
return rootdir, inifile, inicfg or {}
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Correctly consider ``/`` as the file separator to automatically mark plugin files for rewrite on Windows.
|
|
@ -3,7 +3,7 @@ import py
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
import _pytest._code
|
import _pytest._code
|
||||||
from _pytest.config import getcfg, get_common_ancestor, determine_setup
|
from _pytest.config import getcfg, get_common_ancestor, determine_setup, _iter_rewritable_modules
|
||||||
from _pytest.main import EXIT_NOTESTSCOLLECTED
|
from _pytest.main import EXIT_NOTESTSCOLLECTED
|
||||||
|
|
||||||
|
|
||||||
|
@ -308,6 +308,16 @@ class TestConfigAPI(object):
|
||||||
config = testdir.parseconfig('--confcutdir', testdir.tmpdir.join('dir').ensure(dir=1))
|
config = testdir.parseconfig('--confcutdir', testdir.tmpdir.join('dir').ensure(dir=1))
|
||||||
assert config.getoption('confcutdir') == str(testdir.tmpdir.join('dir'))
|
assert config.getoption('confcutdir') == str(testdir.tmpdir.join('dir'))
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('names, expected', [
|
||||||
|
(['bar.py'], ['bar']),
|
||||||
|
(['foo', 'bar.py'], []),
|
||||||
|
(['foo', 'bar.pyc'], []),
|
||||||
|
(['foo', '__init__.py'], ['foo']),
|
||||||
|
(['foo', 'bar', '__init__.py'], []),
|
||||||
|
])
|
||||||
|
def test_iter_rewritable_modules(self, names, expected):
|
||||||
|
assert list(_iter_rewritable_modules(['/'.join(names)])) == expected
|
||||||
|
|
||||||
|
|
||||||
class TestConfigFromdictargs(object):
|
class TestConfigFromdictargs(object):
|
||||||
def test_basic_behavior(self):
|
def test_basic_behavior(self):
|
||||||
|
|
Loading…
Reference in New Issue