def test_csv_file_output(capsys, tmpdir): target_dir = tmpdir.mkdir('reports') cfg = get_default_config() cfg['requested_reports'] = [{'type': 'csv'}] collector = Collector(cfg) collector.add_issues(ISSUES) test_file = str(target_dir) + 'test1' with open(test_file, 'w') as fp: execute_reports(cfg, 'someproject', collector, output_file=fp) out, err = capsys.readouterr() assert out == '' assert err == '' assert EXPECTED_CSV == open(test_file, 'r').read() test_file = str(target_dir) + 'test2' cfg['requested_reports'] = [{'type': 'csv', 'file': test_file}] execute_reports(cfg, 'someproject', collector) out, err = capsys.readouterr() assert out == '' assert err == '' assert EXPECTED_CSV == open(test_file, 'r').read()
def test_execute_reports(capsys): cfg = get_default_config() cfg['requested_reports'] = [ { 'type': 'null' }, { 'type': 'doesntexist' }, ] collector = execute_tools(cfg, 'test/project1') executed = [] def on_finish(report): executed.append(report['type']) execute_reports(cfg, 'test/project1', collector, on_report_finish=on_finish) assert ['null'] == sorted(executed) out, err = capsys.readouterr() assert out == '' assert err == ''
def test_console_execute(capsys): cfg = get_default_config() cfg['reports'] = [{'type': 'console'}] collector = Collector(cfg) execute_reports(cfg, 'someproject', collector) expected = u'No issues found!' if sys.platform != 'win32': expected = u'\u2714 ' + expected out, err = capsys.readouterr() assert out.rstrip() == expected assert err == '' collector.add_issues(ISSUES) execute_reports(cfg, 'someproject', collector) expected = EXPECTED_CONSOLE.rstrip() if sys.platform == 'win32': expected = expected.replace(u'\u2717 ', '') if PY2: expected = expected.replace('\n', '\r\n') out, err = capsys.readouterr() assert out.rstrip() == expected assert err == ''
def test_execute(capsys): cfg = get_default_config() cfg['reports'] = [{'type': 'pycodestyle'}] collector = Collector(cfg) collector.add_issues(ISSUES) execute_reports(cfg, 'someproject', collector) out, err = capsys.readouterr() assert out.replace('\r\n', '\n') == EXPECTED_PYCODESTYLE assert err == ''
def test_execute_parseable(capsys): cfg = get_default_config() cfg['requested_reports'] = [{'type': 'pylint-parseable'}] collector = Collector(cfg) collector.add_issues(ISSUES) execute_reports(cfg, 'someproject', collector) out, err = capsys.readouterr() assert out.replace('\r\n', '\n') == EXPECTED_PARSEABLE assert err == ''
def test_json_execute(capsys): cfg = get_default_config() cfg['requested_reports'] = [{'type': 'json'}] collector = Collector(cfg) collector.add_issues(ISSUES) execute_reports(cfg, 'someproject', collector) out, err = capsys.readouterr() assert EXPECTED_JSON == out.replace('\r\n', '\n') assert err == ''
def test_execute_bad_format(capsys): cfg = get_default_config() cfg['requested_reports'] = [{ 'type': 'custom', 'format': '{filename:,}/{line}' }] collector = Collector(cfg) collector.add_issues(ISSUES) execute_reports(cfg, 'someproject', collector) out, err = capsys.readouterr() assert out == '' assert err.strip().startswith('Invalid format for custom report')
def test_execute_bad_token(capsys): cfg = get_default_config() cfg['requested_reports'] = [{ 'type': 'custom', 'format': '{filename}/{foo}' }] collector = Collector(cfg) collector.add_issues(ISSUES) execute_reports(cfg, 'someproject', collector) out, err = capsys.readouterr() assert out == '' assert err.strip( ) == "Invalid format for custom report: Unknown token 'foo'"
def test_execute(capsys): cfg = get_default_config() cfg['requested_reports'] = [{ 'type': 'custom', 'format': '{filename}/{line}/{character}/{tool}/{code}/{message}' }] collector = Collector(cfg) collector.add_issues(ISSUES) execute_reports(cfg, 'someproject', collector) out, err = capsys.readouterr() assert out.replace('\r\n', '\n') == EXPECTED assert err == ''