Exemple #1
0
    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
Exemple #2
0
    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'
Exemple #3
0
    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 == ''
Exemple #4
0
    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 == ''
Exemple #5
0
    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
Exemple #6
0
    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'
Exemple #7
0
    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
Exemple #8
0
    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 == ''
Exemple #9
0
    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 == ''
Exemple #10
0
    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
Exemple #11
0
    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
Exemple #12
0
    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
Exemple #13
0
    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
Exemple #14
0
    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 == ''
Exemple #15
0
    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
Exemple #16
0
    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 == ''