Add a test to make sure :write-config-py files actually work
This commit is contained in:
parent
3cb93b22ae
commit
712e4a975a
@ -348,6 +348,9 @@ def read_config_py(filename, raising=False):
|
|||||||
raising: Raise exceptions happening in config.py.
|
raising: Raise exceptions happening in config.py.
|
||||||
This is needed during tests to use pytest's inspection.
|
This is needed during tests to use pytest's inspection.
|
||||||
"""
|
"""
|
||||||
|
assert config.instance is not None
|
||||||
|
assert config.key_instance is not None
|
||||||
|
|
||||||
api = ConfigAPI(config.instance, config.key_instance)
|
api = ConfigAPI(config.instance, config.key_instance)
|
||||||
container = config.ConfigContainer(config.instance, configapi=api)
|
container = config.ConfigContainer(config.instance, configapi=api)
|
||||||
basename = os.path.basename(filename)
|
basename = os.path.basename(filename)
|
||||||
|
@ -273,14 +273,15 @@ class ConfPy:
|
|||||||
'qbmodule.run(config)')
|
'qbmodule.run(config)')
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def confpy(tmpdir, config_tmpdir, data_tmpdir, config_stub, key_config_stub):
|
||||||
|
return ConfPy(tmpdir)
|
||||||
|
|
||||||
|
|
||||||
class TestConfigPyModules:
|
class TestConfigPyModules:
|
||||||
|
|
||||||
pytestmark = pytest.mark.usefixtures('config_stub', 'key_config_stub')
|
pytestmark = pytest.mark.usefixtures('config_stub', 'key_config_stub')
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def confpy(self, tmpdir, config_tmpdir, data_tmpdir):
|
|
||||||
return ConfPy(tmpdir)
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def qbmodulepy(self, tmpdir):
|
def qbmodulepy(self, tmpdir):
|
||||||
return ConfPy(tmpdir, filename="qbmodule.py")
|
return ConfPy(tmpdir, filename="qbmodule.py")
|
||||||
@ -342,10 +343,6 @@ class TestConfigPy:
|
|||||||
|
|
||||||
pytestmark = pytest.mark.usefixtures('config_stub', 'key_config_stub')
|
pytestmark = pytest.mark.usefixtures('config_stub', 'key_config_stub')
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def confpy(self, tmpdir, config_tmpdir, data_tmpdir):
|
|
||||||
return ConfPy(tmpdir)
|
|
||||||
|
|
||||||
def test_assertions(self, confpy):
|
def test_assertions(self, confpy):
|
||||||
"""Make sure assertions in config.py work for these tests."""
|
"""Make sure assertions in config.py work for these tests."""
|
||||||
confpy.write('assert False')
|
confpy.write('assert False')
|
||||||
@ -660,6 +657,21 @@ class TestConfigPyWriter:
|
|||||||
lines = pyfile.read_text('utf-8').splitlines()
|
lines = pyfile.read_text('utf-8').splitlines()
|
||||||
assert '# Autogenerated config.py' in lines
|
assert '# Autogenerated config.py' in lines
|
||||||
|
|
||||||
|
def test_defaults_work(self, confpy):
|
||||||
|
"""Get a config.py with default values and run it."""
|
||||||
|
options = [(opt, opt.default)
|
||||||
|
for _name, opt in sorted(configdata.DATA.items())]
|
||||||
|
bindings = dict(configdata.DATA['bindings.default'].default)
|
||||||
|
writer = configfiles.ConfigPyWriter(options, bindings, commented=False)
|
||||||
|
writer.write(confpy.filename)
|
||||||
|
|
||||||
|
try:
|
||||||
|
configfiles.read_config_py(confpy.filename)
|
||||||
|
except configexc.ConfigFileErrors as exc:
|
||||||
|
# Make sure no other errors happened
|
||||||
|
for error in exc.errors:
|
||||||
|
assert isinstance(error.exception, configexc.BackendError)
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def init_patch(qapp, fake_save_manager, config_tmpdir, data_tmpdir,
|
def init_patch(qapp, fake_save_manager, config_tmpdir, data_tmpdir,
|
||||||
|
Loading…
Reference in New Issue
Block a user