def test_config_init_direct(): tmp = py.test.ensuretemp("_initdirect") tmp.ensure("__init__.py") tmp.ensure("conftest.py").write("x=1 ; y=2") hello = tmp.ensure("test_hello.py") config = py.test.config._reparse([hello]) repr = config._makerepr(conftestnames=['x', 'y']) config2 = py.test.config._reparse([tmp.dirpath()]) config2._initialized = False # we have to do that from tests config2._initdirect(topdir=tmp.dirpath(), repr=repr) for col1, col2 in zip(config.getcolitems(), config2.getcolitems()): assert col1.fspath == col2.fspath py.test.raises(AssertionError, "config2._initdirect(None, None)") from py.__.test.config import Config config3 = Config() config3._initdirect(topdir=tmp.dirpath(), repr=repr, coltrails=[(tmp.basename, (hello.basename,))]) assert config3.getvalue('x') == 1 assert config3.getvalue('y') == 2 cols = config.getcolitems() assert len(cols) == 1 col = cols[0] assert col.name == 'test_hello.py' assert col.parent.name == tmp.basename assert col.parent.parent is None
def test_setsessionclass_and_initsession(self, testdir): from py.__.test.config import Config config = Config() class Session1: def __init__(self, config): self.config = config config.setsessionclass(Session1) session = config.initsession() assert isinstance(session, Session1) assert session.config is config py.test.raises(ValueError, "config.setsessionclass(Session1)")
def test_do_option_conftestplugin(self, testdir): from py.__.test.config import Config p = testdir.makepyfile(""" def pytest_addoption(parser): parser.addoption('--test123', action="store_true") """) config = Config() config._conftest.importconftest(p) print config.pluginmanager.getplugins() config.parse([]) assert not config.option.test123
def test_do_option_postinitialize(self, testdir): from py.__.test.config import Config config = Config() config.parse([]) config.pluginmanager.do_configure(config=config) assert not hasattr(config.option, 'test123') p = testdir.makepyfile(""" def pytest_addoption(parser): parser.addoption('--test123', action="store_true", default=True) """) config._conftest.importconftest(p) assert config.option.test123
def test_config_getstate_setstate(self, testdir): from py.__.test.config import Config testdir.makepyfile(__init__="", conftest="x=1; y=2") hello = testdir.makepyfile(hello="") tmp = testdir.tmpdir testdir.chdir() config1 = testdir.parseconfig(hello) config2 = Config() config2.__setstate__(config1.__getstate__()) assert config2.topdir == py.path.local() config2_relpaths = [x.relto(config2.topdir) for x in config2.args] config1_relpaths = [x.relto(config1.topdir) for x in config1.args] assert config2_relpaths == config1_relpaths for name, value in config1.option.__dict__.items(): assert getattr(config2.option, name) == value assert config2.getvalue("x") == 1