101 lines
4.3 KiB
Python
101 lines
4.3 KiB
Python
import os.path
|
|
|
|
from cpl_core.utils import String
|
|
from unittests_cli.abc.command_test_case import CommandTestCase
|
|
from unittests_cli.constants import PLAYGROUND_PATH
|
|
from unittests_shared.cli_commands import CLICommands
|
|
|
|
|
|
class GenerateTestCase(CommandTestCase):
|
|
_project = "test-console"
|
|
_t_path = "test"
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
CommandTestCase.setUpClass()
|
|
CLICommands.new("console", cls._project, "--ab", "--s", "--venv")
|
|
|
|
def setUp(self):
|
|
os.chdir(PLAYGROUND_PATH)
|
|
|
|
def _test_file(self, schematic: str, suffix: str, path=None):
|
|
file = f'GeneratedFile{"OnReady" if schematic == "event" else ""}'
|
|
expected_path = f'generated_file{"_on_ready" if schematic == "event" else ""}{suffix}.py'
|
|
|
|
if path is not None:
|
|
file = f"{path}/{file}"
|
|
expected_path = f"{path}/{expected_path}"
|
|
|
|
CLICommands.generate(schematic, file)
|
|
file_path = os.path.abspath(os.path.join(PLAYGROUND_PATH, expected_path))
|
|
file_exists = os.path.exists(file_path)
|
|
self.assertTrue(file_exists)
|
|
|
|
def _test_file_with_project(self, schematic: str, suffix: str, path=None, enter=True):
|
|
file = f'GeneratedFile{"OnReady" if schematic == "event" else ""}'
|
|
excepted_path = f'generated_file{"_on_ready" if schematic == "event" else ""}{suffix}.py'
|
|
if path is not None:
|
|
excepted_path = f'{self._project}/src/{String.convert_to_snake_case(self._project)}/{path}/generated_file_in_project{"_on_ready" if schematic == "event" else ""}{suffix}.py'
|
|
if enter:
|
|
os.chdir(path)
|
|
excepted_path = f'{path}/src/{String.convert_to_snake_case(self._project)}/generated_file_in_project{"_on_ready" if schematic == "event" else ""}{suffix}.py'
|
|
|
|
file = f'{path}/GeneratedFileInProject{"OnReady" if schematic == "event" else ""}'
|
|
|
|
CLICommands.generate(schematic, file)
|
|
file_path = os.path.abspath(os.path.join(PLAYGROUND_PATH, excepted_path))
|
|
self.assertTrue(os.path.exists(file_path))
|
|
|
|
def test_abc(self):
|
|
self._test_file("abc", "_abc")
|
|
self._test_file("abc", "_abc", path=self._t_path)
|
|
self._test_file("abc", "_abc", path=f"{self._t_path}/{self._t_path}")
|
|
self._test_file_with_project("abc", "_abc", path=self._project)
|
|
os.chdir(f"src/{String.convert_to_snake_case(self._project)}")
|
|
self._test_file_with_project("abc", "_abc", path="test", enter=False)
|
|
|
|
def test_class(self):
|
|
self._test_file("class", "")
|
|
self._test_file("class", "", path=self._t_path)
|
|
self._test_file_with_project("class", "", path=self._project)
|
|
|
|
def test_enum(self):
|
|
self._test_file("enum", "_enum")
|
|
self._test_file("enum", "_enum", path=self._t_path)
|
|
self._test_file_with_project("enum", "_enum", path=self._project)
|
|
os.chdir(f"src/{String.convert_to_snake_case(self._project)}")
|
|
self._test_file_with_project("enum", "_enum", path="test", enter=False)
|
|
|
|
def test_pipe(self):
|
|
self._test_file("pipe", "_pipe")
|
|
self._test_file("pipe", "_pipe", path=self._t_path)
|
|
self._test_file_with_project("pipe", "_pipe", path=self._project)
|
|
|
|
def test_service(self):
|
|
self._test_file("service", "_service")
|
|
self._test_file_with_project("service", "_service", path=self._project)
|
|
|
|
def test_settings(self):
|
|
self._test_file("settings", "_settings")
|
|
self._test_file_with_project("settings", "_settings", path=self._project)
|
|
|
|
def test_test_case(self):
|
|
self._test_file("test-case", "_test_case")
|
|
self._test_file_with_project("test-case", "_test_case", path=self._project)
|
|
|
|
def test_thread(self):
|
|
self._test_file("thread", "_thread")
|
|
self._test_file_with_project("thread", "_thread", path=self._project)
|
|
|
|
def test_validator(self):
|
|
self._test_file("validator", "_validator")
|
|
self._test_file_with_project("validator", "_validator", path=self._project)
|
|
|
|
def test_discord_command(self):
|
|
self._test_file("command", "_command")
|
|
self._test_file_with_project("command", "_command", path=self._project)
|
|
|
|
def test_discord_event(self):
|
|
self._test_file("event", "_event")
|
|
self._test_file_with_project("event", "_event", path=self._project)
|