From 542dccda103413d756ba73de286b2303341fb345 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sat, 26 Dec 2020 13:35:31 +0100 Subject: [PATCH] Bugfixes and improved tests --- .gitignore | 1 - src/sh_edraft/console/console.py | 39 +++++++++++++++---- src/tests/cases/utils/__init__.py | 0 src/tests/{cases => service_test}/__init__.py | 0 .../service => service_test}/provider_test.py | 0 src/tests/tester.py | 35 ----------------- .../{cases/service => time_test}/__init__.py | 0 .../time_format_settings_test.py | 0 .../{cases/time => utils_test}/__init__.py | 0 .../credential_manager_test.py | 0 10 files changed, 32 insertions(+), 43 deletions(-) delete mode 100644 src/tests/cases/utils/__init__.py rename src/tests/{cases => service_test}/__init__.py (100%) rename src/tests/{cases/service => service_test}/provider_test.py (100%) delete mode 100644 src/tests/tester.py rename src/tests/{cases/service => time_test}/__init__.py (100%) rename src/tests/{cases/time => time_test}/time_format_settings_test.py (100%) rename src/tests/{cases/time => utils_test}/__init__.py (100%) rename src/tests/{cases/utils => utils_test}/credential_manager_test.py (100%) diff --git a/.gitignore b/.gitignore index 4f1f0383..5c23e124 100644 --- a/.gitignore +++ b/.gitignore @@ -26,7 +26,6 @@ share/python-wheels/ .installed.cfg *.egg MANIFEST -.idea/ # PyInstaller # Usually these files are written by a python script from a template diff --git a/src/sh_edraft/console/console.py b/src/sh_edraft/console/console.py index c454eb81..14964866 100644 --- a/src/sh_edraft/console/console.py +++ b/src/sh_edraft/console/console.py @@ -45,6 +45,7 @@ class Console: @classmethod def set_foreground_color(cls, color: Union[ForegroundColor, str]): + if type(color) is str: cls._foreground_color = ForegroundColor[color] else: @@ -66,9 +67,6 @@ class Console: @classmethod def _output(cls, string: str, x: int = None, y: int = None, end='\n'): - if cls._disabled: - return - if cls._is_first_write: cls._is_first_write = False @@ -98,15 +96,21 @@ class Console: @classmethod def banner(cls, string: str): + if cls._disabled: + return + ascii_banner = pyfiglet.figlet_format(string) cls.write_line(ascii_banner) - @staticmethod - def clear(): + @classmethod + def clear(cls): os.system('cls' if os.name == 'nt' else 'clear') - @staticmethod - def close(): + @classmethod + def close(cls): + if cls._disabled: + return + Console.reset() Console.write('\n\n\nPress any key to continue...') Console.read_line() @@ -118,6 +122,9 @@ class Console: @classmethod def error(cls, string: str, tb: str = None): + if cls._disabled: + return + cls.set_foreground_color('red') if tb is not None: cls.write_line(f'{string} -> {tb}') @@ -138,6 +145,9 @@ class Console: @classmethod def read_line(cls, output: str = None) -> str: + if cls._disabled: + return '' + if output is not None: cls.write(output) @@ -150,6 +160,9 @@ class Console: @classmethod def table(cls, header: list[str], values: list[list[str]]): + if cls._disabled: + return + table = tabulate(values, headers=header) Console.write_line(table) @@ -157,16 +170,25 @@ class Console: @classmethod def write(cls, *args): + if cls._disabled: + return + string = ' '.join(map(str, args)) cls._output(string, end='') @classmethod def write_at(cls, x: int, y: int, *args): + if cls._disabled: + return + string = ' '.join(map(str, args)) cls._output(string, x, y, end='') @classmethod def write_line(cls, *args): + if cls._disabled: + return + string = ' '.join(map(str, args)) if not cls._is_first_write: cls._output('') @@ -174,6 +196,9 @@ class Console: @classmethod def write_line_at(cls, x: int, y: int, *args): + if cls._disabled: + return + string = ' '.join(map(str, args)) if not cls._is_first_write: cls._output('', end='') diff --git a/src/tests/cases/utils/__init__.py b/src/tests/cases/utils/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/src/tests/cases/__init__.py b/src/tests/service_test/__init__.py similarity index 100% rename from src/tests/cases/__init__.py rename to src/tests/service_test/__init__.py diff --git a/src/tests/cases/service/provider_test.py b/src/tests/service_test/provider_test.py similarity index 100% rename from src/tests/cases/service/provider_test.py rename to src/tests/service_test/provider_test.py diff --git a/src/tests/tester.py b/src/tests/tester.py deleted file mode 100644 index bc66330a..00000000 --- a/src/tests/tester.py +++ /dev/null @@ -1,35 +0,0 @@ -import unittest -from typing import Type - -from tests.cases.service.provider_test import ProviderTest -from tests.cases.time.time_format_settings_test import TimeFormatSettingsTest -from tests.cases.utils.credential_manager_test import CredentialManagerTest - - -class Tester: - - def __init__(self): - self._suite = unittest.TestSuite() - self._cases: list[Type[unittest.TestCase]] = [] - - def _build_cases(self): - for case in self._cases: - case_functions = [method_name for method_name in dir(case) if callable(getattr(case, method_name)) and method_name.startswith('test_')] - for function in case_functions: - self._suite.addTest(case(function)) - - def create(self): - self._cases.append(ProviderTest) - self._cases.append(CredentialManagerTest) - self._cases.append(TimeFormatSettingsTest) - - def start(self): - self._build_cases() - runner = unittest.TextTestRunner() - runner.run(self._suite) - - -if __name__ == '__main__': - tester = Tester() - tester.create() - tester.start() diff --git a/src/tests/cases/service/__init__.py b/src/tests/time_test/__init__.py similarity index 100% rename from src/tests/cases/service/__init__.py rename to src/tests/time_test/__init__.py diff --git a/src/tests/cases/time/time_format_settings_test.py b/src/tests/time_test/time_format_settings_test.py similarity index 100% rename from src/tests/cases/time/time_format_settings_test.py rename to src/tests/time_test/time_format_settings_test.py diff --git a/src/tests/cases/time/__init__.py b/src/tests/utils_test/__init__.py similarity index 100% rename from src/tests/cases/time/__init__.py rename to src/tests/utils_test/__init__.py diff --git a/src/tests/cases/utils/credential_manager_test.py b/src/tests/utils_test/credential_manager_test.py similarity index 100% rename from src/tests/cases/utils/credential_manager_test.py rename to src/tests/utils_test/credential_manager_test.py