def test_decide_object_creation(monkeypatch, datafiles, project_name): from sheetwork.core.flags import FlagParser from sheetwork.core.config.project import Project from sheetwork.core.main import parser monkeypatch.setattr(Project, "PROJECT_FILENAME", f"{project_name}.yml") monkeypatch.setattr(Project, "IS_TEST", True) expected_object_creation_dict = { "create_table": True, "create_schema": True, } if project_name == "sheetwork_project_all_create": expected_object_creation_dict = { val: True for val in expected_object_creation_dict } if project_name == "sheetwork_project_deprecated": expected_object_creation_dict.update({"create_schema": False}) flags = FlagParser(parser, project_dir=str(datafiles)) project = Project(flags) project.decide_object_creation() assert project.object_creation_dct == expected_object_creation_dict assert project.destructive_create_table is True
def test_override_object_creation_from_flags(monkeypatch, datafiles, project_name): from sheetwork.core.flags import FlagParser from sheetwork.core.config.profile import Project from sheetwork.core.main import parser def mock_consume_cli_arguments(self): self.create_table = True self.destructive_create_table = True monkeypatch.setattr(FlagParser, "consume_cli_arguments", mock_consume_cli_arguments) flags = FlagParser(parser, project_dir=str(datafiles)) flags.consume_cli_arguments() project = Project(flags) project.decide_object_creation() assert project.object_creation_dct["create_table"] is True assert project.object_creation_dct["create_schema"] is True assert project.destructive_create_table is True