From cb6befd6ad27ea6cf5aa729ce0abd56b76e0f596 Mon Sep 17 00:00:00 2001 From: Asher Norland Date: Fri, 8 Apr 2022 07:40:20 -0400 Subject: [PATCH 1/4] Update Hash --- pdm.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pdm.lock b/pdm.lock index 3ba589a..0c31f8e 100644 --- a/pdm.lock +++ b/pdm.lock @@ -247,7 +247,7 @@ summary = "Module for decorators, wrappers and monkey patching." [metadata] lock_version = "3.1" -content_hash = "sha256:99e233e2e11b01fc8a5d15b1b222bb34f6082fa365d91a4eab0ad94bd4792b1a" +content_hash = "sha256:f53b6399862b1bc49a0ad0dc5017dfeb3c9348259b7b5fbabf9c7053678c9224" [metadata.files] "astroid 2.11.2" = [ From 7d99d20aa0bd6a3c64335160a95f4ef6691d6406 Mon Sep 17 00:00:00 2001 From: Asher Norland Date: Fri, 8 Apr 2022 08:05:45 -0400 Subject: [PATCH 2/4] Generator Creation --- cppython/project.py | 13 +++++++++---- tests/unit/test_project.py | 9 +++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/cppython/project.py b/cppython/project.py index ced9257..77b0863 100644 --- a/cppython/project.py +++ b/cppython/project.py @@ -76,6 +76,14 @@ def generate_model(self, plugins: list[Type[Plugin]]) -> Type[PyProject]: __base__=PyProject, ) + def create_generators(self, plugins: list[Type[Plugin]]) -> list[Plugin]: + """ + TODO + """ + _generators = [] + for plugin_type in plugins: + _generators.append(plugin_type(pyproject)) + class Project(API): """ @@ -116,10 +124,7 @@ def __init__( self.enabled = True self._interface = interface - - self._generators = [] - for plugin_type in plugins: - self._generators.append(plugin_type(pyproject)) + self._generators = builder.create_generators(plugins) if self.configuration.verbose: interface.print("CPPython project initialized") diff --git a/tests/unit/test_project.py b/tests/unit/test_project.py index 06b4c0b..ce9d098 100644 --- a/tests/unit/test_project.py +++ b/tests/unit/test_project.py @@ -48,3 +48,12 @@ def test_generator_data_construction(self): configuration = ProjectConfiguration() builder = ProjectBuilder(configuration) Model = builder.generate_model([]) + + def test_generator_creation(self): + """ + TODO + """ + + configuration = ProjectConfiguration() + builder = ProjectBuilder(configuration) + generators = builder.create_generators([]) From 9977c012fdfd1ee8d8b634c9b8ff2718a04bd457 Mon Sep 17 00:00:00 2001 From: Asher Norland Date: Fri, 8 Apr 2022 19:39:44 -0400 Subject: [PATCH 3/4] Generator Creation --- cppython/project.py | 6 ++++-- tests/unit/test_project.py | 6 +++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/cppython/project.py b/cppython/project.py index 77b0863..1f2af26 100644 --- a/cppython/project.py +++ b/cppython/project.py @@ -76,7 +76,7 @@ def generate_model(self, plugins: list[Type[Plugin]]) -> Type[PyProject]: __base__=PyProject, ) - def create_generators(self, plugins: list[Type[Plugin]]) -> list[Plugin]: + def create_generators(self, plugins: list[Type[Generator]], pyproject: PyProject) -> list[Generator]: """ TODO """ @@ -84,6 +84,8 @@ def create_generators(self, plugins: list[Type[Plugin]]) -> list[Plugin]: for plugin_type in plugins: _generators.append(plugin_type(pyproject)) + return _generators + class Project(API): """ @@ -124,7 +126,7 @@ def __init__( self.enabled = True self._interface = interface - self._generators = builder.create_generators(plugins) + self._generators = builder.create_generators(plugins, pyproject) if self.configuration.verbose: interface.print("CPPython project initialized") diff --git a/tests/unit/test_project.py b/tests/unit/test_project.py index ce9d098..769f6c6 100644 --- a/tests/unit/test_project.py +++ b/tests/unit/test_project.py @@ -49,6 +49,8 @@ def test_generator_data_construction(self): builder = ProjectBuilder(configuration) Model = builder.generate_model([]) + # TODO: Add Dummy test + def test_generator_creation(self): """ TODO @@ -56,4 +58,6 @@ def test_generator_creation(self): configuration = ProjectConfiguration() builder = ProjectBuilder(configuration) - generators = builder.create_generators([]) + generators = builder.create_generators([], default_pyproject) + + # TODO: Add Dummy test From bd6c32f92450d13039f4f12217aab784fa7a0191 Mon Sep 17 00:00:00 2001 From: Asher Norland Date: Sun, 10 Apr 2022 11:48:48 -0400 Subject: [PATCH 4/4] Additional Tests --- tests/unit/test_project.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/tests/unit/test_project.py b/tests/unit/test_project.py index 769f6c6..81d8e0f 100644 --- a/tests/unit/test_project.py +++ b/tests/unit/test_project.py @@ -2,7 +2,7 @@ Test the functions related to the internal interface implementation and the 'Interface' interface itself """ -from cppython_core.schema import Generator +from cppython_core.schema import Generator, GeneratorData, PyProject from pytest_mock import MockerFixture from cppython.data import default_pyproject @@ -40,7 +40,7 @@ def test_plugin_gather(self): assert len(plugins) == 0 - def test_generator_data_construction(self): + def test_generator_data_construction(self, mocker: MockerFixture): """ TODO """ @@ -49,9 +49,18 @@ def test_generator_data_construction(self): builder = ProjectBuilder(configuration) Model = builder.generate_model([]) - # TODO: Add Dummy test + assert Model.__base__ == PyProject - def test_generator_creation(self): + generator = mocker.Mock(spec=Generator) + generator_data = mocker.Mock(spec=GeneratorData) + + generator.name.return_value = "mock" + generator.data_type.return_value = type(generator_data) + Model = builder.generate_model([generator]) + + assert Model.__base__ == PyProject + + def test_generator_creation(self, mocker: MockerFixture): """ TODO """ @@ -60,4 +69,9 @@ def test_generator_creation(self): builder = ProjectBuilder(configuration) generators = builder.create_generators([], default_pyproject) - # TODO: Add Dummy test + assert not generators + + generator = mocker.Mock(spec=Generator) + generators = builder.create_generators([generator], default_pyproject) + + assert len(generators) == 1