예제 #1
0
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
예제 #2
0
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