76 lines
2.4 KiB
Python
76 lines
2.4 KiB
Python
from re import match
|
|
from os.path import exists
|
|
from unittest import TestCase, main
|
|
from shutil import rmtree
|
|
|
|
from command import create_project
|
|
|
|
|
|
def increment_name(full_name: str) -> str:
|
|
name, index = match(
|
|
pattern="^([a-z\d]+)(?:_(\d+))?", string=full_name.lower()
|
|
).groups()
|
|
|
|
if not index:
|
|
postfix = "_1"
|
|
else:
|
|
postfix = f"_{index+1}"
|
|
|
|
return name + postfix
|
|
|
|
|
|
def get_temporary_directory_name() -> str:
|
|
dir_name = "test"
|
|
while exists("config/module/" + dir_name + "/"):
|
|
dir_name = increment_name(dir_name)
|
|
|
|
return dir_name
|
|
|
|
|
|
class TestCommandMethods(TestCase):
|
|
def test_create_project_creates_project_directory(self: TestCase):
|
|
directory = get_temporary_directory_name()
|
|
create_project(directory)
|
|
directory_exists = exists(f"config/module/{directory}/")
|
|
rmtree(f"config/module/{directory}/")
|
|
self.assertTrue(directory_exists)
|
|
|
|
def test_create_project_creates_init(self: TestCase):
|
|
directory = get_temporary_directory_name()
|
|
create_project(directory)
|
|
file_exists = exists(f"config/module/{directory}/__init__.py")
|
|
rmtree(f"config/module/{directory}/")
|
|
self.assertTrue(file_exists)
|
|
|
|
def test_create_project_creates_config(self: TestCase):
|
|
directory = get_temporary_directory_name()
|
|
create_project(directory)
|
|
file_exists = exists(f"config/module/{directory}/config.yaml")
|
|
rmtree(f"config/module/{directory}/")
|
|
self.assertTrue(file_exists)
|
|
|
|
def test_create_project_creates_create_schema(self: TestCase):
|
|
directory = get_temporary_directory_name()
|
|
create_project(directory)
|
|
file_exists = exists(f"config/module/{directory}/create_schema.py")
|
|
rmtree(f"config/module/{directory}/")
|
|
self.assertTrue(file_exists)
|
|
|
|
def test_create_project_creates_model(self: TestCase):
|
|
directory = get_temporary_directory_name()
|
|
create_project(directory)
|
|
file_exists = exists(f"config/module/{directory}/model.py")
|
|
rmtree(f"config/module/{directory}/")
|
|
self.assertTrue(file_exists)
|
|
|
|
def test_create_project_creates_schema(self: TestCase):
|
|
directory = get_temporary_directory_name()
|
|
create_project(directory)
|
|
file_exists = exists(f"config/module/{directory}/schema.py")
|
|
rmtree(f"config/module/{directory}/")
|
|
self.assertTrue(file_exists)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|