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.
|
||||
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)
|
||||
container = config.ConfigContainer(config.instance, configapi=api)
|
||||
basename = os.path.basename(filename)
|
||||
|
@ -273,14 +273,15 @@ class ConfPy:
|
||||
'qbmodule.run(config)')
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def confpy(tmpdir, config_tmpdir, data_tmpdir, config_stub, key_config_stub):
|
||||
return ConfPy(tmpdir)
|
||||
|
||||
|
||||
class TestConfigPyModules:
|
||||
|
||||
pytestmark = pytest.mark.usefixtures('config_stub', 'key_config_stub')
|
||||
|
||||
@pytest.fixture
|
||||
def confpy(self, tmpdir, config_tmpdir, data_tmpdir):
|
||||
return ConfPy(tmpdir)
|
||||
|
||||
@pytest.fixture
|
||||
def qbmodulepy(self, tmpdir):
|
||||
return ConfPy(tmpdir, filename="qbmodule.py")
|
||||
@ -342,10 +343,6 @@ class TestConfigPy:
|
||||
|
||||
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):
|
||||
"""Make sure assertions in config.py work for these tests."""
|
||||
confpy.write('assert False')
|
||||
@ -660,6 +657,21 @@ class TestConfigPyWriter:
|
||||
lines = pyfile.read_text('utf-8').splitlines()
|
||||
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
|
||||
def init_patch(qapp, fake_save_manager, config_tmpdir, data_tmpdir,
|
||||
|
Loading…
Reference in New Issue
Block a user