def test_conf_invalid(caplog): with NamedTemporaryFile() as conf: conf.write(b""" [invalid_config] extensions=.wack \t \t always_report=yeah [ok_config] extensions=\t \t.weird \t \t command=yo regex=(?P<file>[^:]+):(?P<line>\\d+):[^:]+: (?P<err>[^ :]+) """) conf.flush() caplog.clear() with patch("lint_diffs.USER_CONFIG", conf.name): cfg = read_config() exts = _config_to_dict(cfg) errs = 0 for ent in caplog.records: if ent.levelname == "ERROR": errs += 1 # invalid extensions don't get loaded assert '.wack' not in exts # ext with weird whitespace still works assert '.weird' in exts # missing command + missing regex == 2 assert errs == 2
def test_conf_read(): with NamedTemporaryFile() as conf: conf.write(b""" [main] debug=True [pylint] always_report=W0613 """) conf.flush() with patch("lint_diffs.USER_CONFIG", conf.name): conf = read_config() assert conf["pylint"]["always_report"] == 'W0613' assert conf["pylint"]["command"] assert conf["pylint"]["regex"] assert conf["main"]["debug"]