def test_result_check_failed(self, capsys): writer = output.ConsoleOutputWriter() output.error_occurred = False server = 'test' check = 'test check' writer.result_check(server, check, False) (out, err) = capsys.readouterr() assert out == '\t%s: FAILED\n' % check assert err == '' assert output.error_occurred # Test an inactive server # Shows error, but does not change error_occurred output.error_occurred = False writer.init_check(server, False) (out, err) = capsys.readouterr() assert out == 'Server %s:\n' % server assert err == '' assert not output.error_occurred writer.result_check(server, check, False) (out, err) = capsys.readouterr() assert out == '\t%s: FAILED\n' % check assert err == '' assert not output.error_occurred
def test_exception(self, capsys): writer = output.ConsoleOutputWriter() msg = 'test message' writer.exception(msg) (out, err) = capsys.readouterr() assert out == '' assert err == 'EXCEPTION: ' + msg + '\n' msg = 'test arg %s' args = ('1st', ) writer.exception(msg, *args) (out, err) = capsys.readouterr() assert out == '' assert err == 'EXCEPTION: ' + msg % args + '\n' msg = 'test args %d %s' args = (1, 'two') writer.exception(msg, *args) (out, err) = capsys.readouterr() assert out == '' assert err == 'EXCEPTION: ' + msg % args + '\n' msg = 'test kwargs %(num)d %(string)s' kwargs = dict(num=1, string='two') writer.exception(msg, kwargs) (out, err) = capsys.readouterr() assert out == '' assert err == 'EXCEPTION: ' + msg % kwargs + '\n'
def test_debug_disabled(self, capsys): writer = output.ConsoleOutputWriter(debug=False) msg = 'test message' writer.debug(msg) (out, err) = capsys.readouterr() assert out == '' assert err == '' msg = 'test arg %s' args = ('1st', ) writer.debug(msg, *args) (out, err) = capsys.readouterr() assert out == '' assert err == '' msg = 'test args %d %s' args = (1, 'two') writer.debug(msg, *args) (out, err) = capsys.readouterr() assert out == '' assert err == '' msg = 'test kwargs %(num)d %(string)s' kwargs = dict(num=1, string='two') writer.debug(msg, kwargs) (out, err) = capsys.readouterr() assert out == '' assert err == ''
def test_info_quiet(self, capsys): writer = output.ConsoleOutputWriter(quiet=True) msg = 'test message' writer.info(msg) (out, err) = capsys.readouterr() assert out == '' assert err == '' msg = 'test arg %s' args = ('1st', ) writer.info(msg, *args) (out, err) = capsys.readouterr() assert out == '' assert err == '' msg = 'test args %d %s' args = (1, 'two') writer.info(msg, *args) (out, err) = capsys.readouterr() assert out == '' assert err == '' msg = 'test kwargs %(num)d %(string)s' kwargs = dict(num=1, string='two') writer.info(msg, kwargs) (out, err) = capsys.readouterr() assert out == '' assert err == ''
def test_result_check_failed_color(self, capsys, monkeypatch): monkeypatch.setattr(output, 'ansi_colors_enabled', True) writer = output.ConsoleOutputWriter() output.error_occurred = False server = 'test' check = 'test check' writer.result_check(server, check, False) (out, err) = capsys.readouterr() assert out == '\t%s: %sFAILED%s\n' % (check, RED, RESET) assert err == '' assert output.error_occurred # Test an inactive server # Shows error, but does not change error_occurred output.error_occurred = False writer.init_check(server, False) (out, err) = capsys.readouterr() assert out == 'Server %s:\n' % server assert err == '' assert not output.error_occurred writer.result_check(server, check, False) (out, err) = capsys.readouterr() assert out == '\t%s: %sFAILED%s\n' % (check, RED, RESET) assert err == '' assert not output.error_occurred
def test_colored_exception(self, capsys, monkeypatch): monkeypatch.setattr(output, 'ansi_colors_enabled', True) writer = output.ConsoleOutputWriter() msg = 'test message' writer.exception(msg) (out, err) = capsys.readouterr() assert out == '' assert err == RED + 'EXCEPTION: ' + msg + RESET + '\n' msg = 'test arg %s' args = ('1st', ) writer.exception(msg, *args) (out, err) = capsys.readouterr() assert out == '' assert err == RED + 'EXCEPTION: ' + msg % args + RESET + '\n' msg = 'test args %d %s' args = (1, 'two') writer.exception(msg, *args) (out, err) = capsys.readouterr() assert out == '' assert err == RED + 'EXCEPTION: ' + msg % args + RESET + '\n' msg = 'test kwargs %(num)d %(string)s' kwargs = dict(num=1, string='two') writer.exception(msg, kwargs) (out, err) = capsys.readouterr() assert out == '' assert err == RED + 'EXCEPTION: ' + msg % kwargs + RESET + '\n'
def test_init_list_backup(self): writer = output.ConsoleOutputWriter() writer.init_list_backup('test server') assert not writer.minimal writer.init_list_backup('test server', True) assert writer.minimal
def test_init_status(self, capsys): writer = output.ConsoleOutputWriter() server = 'test' writer.init_status(server) (out, err) = capsys.readouterr() assert out == 'Server %s:\n' % server assert err == ''
def test_result_status_non_str(self, capsys): writer = output.ConsoleOutputWriter() server = 'test' name = 'test name' description = 'test description' message = 1 writer.result_status(server, name, description, message) (out, err) = capsys.readouterr() assert out == '\t%s: %s\n' % (description, message) assert err == ''
def test_result_check_ok(self, capsys): writer = output.ConsoleOutputWriter() output.error_occurred = False server = 'test' check = 'test check' writer.result_check(server, check, True) (out, err) = capsys.readouterr() assert out == '\t%s: OK\n' % check assert err == '' assert not output.error_occurred
def test_result_check_failed_hint(self, capsys): writer = output.ConsoleOutputWriter() output.error_occurred = False server = 'test' check = 'test check' hint = 'do something' writer.result_check(server, check, False, hint) (out, err) = capsys.readouterr() assert out == '\t%s: FAILED (%s)\n' % (check, hint) assert err == '' assert output.error_occurred
def test_result_check_ok_color(self, capsys, monkeypatch): monkeypatch.setattr(output, 'ansi_colors_enabled', True) writer = output.ConsoleOutputWriter() output.error_occurred = False server = 'test' check = 'test check' writer.result_check(server, check, True) (out, err) = capsys.readouterr() assert out == '\t%s: %sOK%s\n' % (check, GREEN, RESET) assert err == '' assert not output.error_occurred
def test_result_check_failed_hint_color(self, capsys, monkeypatch): monkeypatch.setattr(output, 'ansi_colors_enabled', True) writer = output.ConsoleOutputWriter() output.error_occurred = False server = 'test' check = 'test check' hint = 'do something' writer.result_check(server, check, False, hint) (out, err) = capsys.readouterr() assert out == '\t%s: %sFAILED%s (%s)\n' % (check, RED, RESET, hint) assert err == '' assert output.error_occurred
def test_result_show_backup_error(self, capsys): # mock the backup ext info msg = 'test error message' ext_info = mock_backup_ext_info(status=BackupInfo.FAILED, error=msg) writer = output.ConsoleOutputWriter() # test minimal writer.result_show_backup(ext_info) writer.close() (out, err) = capsys.readouterr() assert ext_info['server_name'] in out assert ext_info['backup_id'] in out assert ext_info['status'] in out assert str(ext_info['end_time']) not in out assert msg in out assert err == ''
def test_result_list_backup(self, capsys): # mock the backup info bi = build_test_backup_info() backup_size = 12345 wal_size = 54321 retention_status = 'test status' writer = output.ConsoleOutputWriter() # test minimal writer.init_list_backup(bi.server_name, True) writer.result_list_backup(bi, backup_size, wal_size, retention_status) writer.close() (out, err) = capsys.readouterr() assert writer.minimal assert bi.backup_id in out assert err == '' # test status=DONE output writer.init_list_backup(bi.server_name, False) writer.result_list_backup(bi, backup_size, wal_size, retention_status) writer.close() (out, err) = capsys.readouterr() assert not writer.minimal assert bi.server_name in out assert bi.backup_id in out assert str(bi.end_time.ctime()) in out for name, _, location in bi.tablespaces: assert '%s:%s' % (name, location) assert 'Size: ' + pretty_size(backup_size) in out assert 'WAL Size: ' + pretty_size(wal_size) in out assert err == '' # test status = FAILED output bi = build_test_backup_info(status=BackupInfo.FAILED) writer.init_list_backup(bi.server_name, False) writer.result_list_backup(bi, backup_size, wal_size, retention_status) writer.close() (out, err) = capsys.readouterr() assert not writer.minimal assert bi.server_name in out assert bi.backup_id in out assert bi.status in out
def test_result_show_backup(self, capsys): # mock the backup ext info wal_per_second = 0.01 ext_info = mock_backup_ext_info(wals_per_second=wal_per_second) writer = output.ConsoleOutputWriter() # test minimal writer.result_show_backup(ext_info) writer.close() (out, err) = capsys.readouterr() assert ext_info['server_name'] in out assert ext_info['backup_id'] in out assert ext_info['status'] in out assert str(ext_info['end_time']) in out for name, _, location in ext_info['tablespaces']: assert '%s: %s' % (name, location) in out assert (pretty_size(ext_info['size'] + ext_info['wal_size'])) in out assert (pretty_size(ext_info['wal_until_next_size'])) in out assert 'WAL rate : %0.2f/hour' % \ (wal_per_second * 3600) in out # TODO: this test can be expanded assert err == ''