예제 #1
0
def test_cli_linter():
    """Dumb test to make sure things are wired correctly in CLI."""
    base_cfg = config.get_base_config()
    exit_status = squabble.cli.run_linter(base_cfg, SQL_FILES, expanded=True)

    # Exit status 1 means that lint issues occurred, not that the process
    # itself failed.
    assert exit_status == 1
예제 #2
0
def test_reporter_sanity(reporter_name):
    """
    Make sure all the reporters can at least format all of the
    issues generated without errors.
    """
    base_cfg = config.get_base_config()

    issues = []
    files = {}

    for file_name in SQL_FILES:
        with open(file_name, 'r') as fp:
            contents = fp.read()
            files[file_name] = contents

        cfg = config.apply_file_config(base_cfg, contents)
        issues.extend(lint.check_file(cfg, file_name, contents))

    reporter.report(reporter_name, issues, files)
예제 #3
0
def test_snapshot(file_name):
    with open(file_name, 'r') as fp:
        contents = fp.read()

    expected = expected_output(file_name)

    if not expected:
        pytest.skip('no output configured')

    base_cfg = config.get_base_config()
    cfg = config.apply_file_config(base_cfg, contents)

    issues = lint.check_file(cfg, file_name, contents)

    assert len(issues) == len(expected)

    for i, e in zip(issues, expected):
        info = reporter._issue_info(i, contents)
        actual = {
            k: info.get(k)
            for k in e.keys()
        }

        assert actual == e
예제 #4
0
def test_merging_presets():
    cfg = config.get_base_config(preset_names=['postgres', 'full'])
    merged = config._merge_dicts(config.PRESETS['postgres']['config']['rules'],
                                 config.PRESETS['full']['config']['rules'])
    assert cfg.rules == merged
예제 #5
0
def test_unknown_preset():
    with pytest.raises(config.UnknownPresetException):
        config.get_base_config(preset_names=['asdf'])
예제 #6
0
def test_get_base_config_with_preset():
    cfg = config.get_base_config(['postgres'])
    assert cfg.rules == config.PRESETS['postgres']['config']['rules']
예제 #7
0
def test_get_base_config_without_preset():
    cfg = config.get_base_config()
    assert cfg == config.Config(**config.DEFAULT_CONFIG)