Beispiel #1
0
def test_convert_paths_raises_error_on_relative_project_path():
    path = Path("relative/path")
    with pytest.raises(ValueError) as excinfo:
        _convert_paths_to_absolute_posix(project_path=path, conf_dictionary={})

    assert (str(excinfo.value) ==
            f"project_path must be an absolute path. Received: {path}")
Beispiel #2
0
    def test_after_catalog_created_hook(self, mocker, caplog,
                                        mock_session_with_hooks):
        context = mock_session_with_hooks.load_context()
        fake_run_id = mocker.sentinel.fake_run_id
        mocker.patch.object(context, "_get_run_id", return_value=fake_run_id)

        project_path = context.project_path
        catalog = context.catalog
        config_loader = context.config_loader

        relevant_records = [
            r for r in caplog.records if r.name == LoggingHooks.handler_name
            and r.getMessage() == "Catalog created"
        ]
        assert len(relevant_records) == 1
        record = relevant_records[0]
        assert record.catalog is catalog
        assert record.conf_creds == config_loader.get("credentials*")
        assert record.conf_catalog == _convert_paths_to_absolute_posix(
            project_path=project_path,
            conf_dictionary=config_loader.get("catalog*"))
        # save_version is only passed during a run, not on the property getter
        assert record.save_version is None
        assert record.load_versions is None
        assert record.run_id is fake_run_id
    def test_after_catalog_created_hook_default_run_id(self, mocker,
                                                       mock_session,
                                                       dummy_dataframe,
                                                       caplog):
        context = mock_session.load_context()
        fake_save_version = mocker.sentinel.fake_save_version
        mocker.patch.object(context,
                            "_get_save_version",
                            return_value=fake_save_version)

        catalog = context.catalog
        config_loader = context.config_loader
        project_path = context.project_path

        catalog.save("cars", dummy_dataframe)
        catalog.save("boats", dummy_dataframe)
        context.run()

        relevant_records = [
            r for r in caplog.records if r.getMessage() == "Catalog created"
        ]
        # one for context.catalog, one for the run
        assert len(relevant_records) == 2
        record = relevant_records[1]
        assert record.conf_creds == config_loader.get("credentials*")
        assert record.conf_catalog == _convert_paths_to_absolute_posix(
            project_path=project_path,
            conf_dictionary=config_loader.get("catalog*"))
        assert record.save_version is fake_save_version
        assert record.load_versions is None
        assert record.run_id is record.save_version
Beispiel #4
0
    def _get_logging_config(self) -> Dict[str, Any]:
        context = self.load_context()

        conf_logging = context.config_loader.get("logging*", "logging*/**",
                                                 "**/logging*")
        # turn relative paths in logging config into absolute path
        # before initialising loggers
        conf_logging = _convert_paths_to_absolute_posix(
            project_path=self._project_path, conf_dictionary=conf_logging)
        return conf_logging
Beispiel #5
0
 def test_after_catalog_created_hook_is_called(self, context_with_hooks, caplog):
     catalog = context_with_hooks.catalog
     config_loader = context_with_hooks.config_loader
     relevant_records = [
         r for r in caplog.records if r.name == LoggingHooks.handler_name
     ]
     record = relevant_records[0]
     assert record.getMessage() == "Catalog created"
     assert record.catalog == catalog
     assert record.conf_creds == config_loader.get("credentials*")
     assert record.conf_catalog == _convert_paths_to_absolute_posix(
         project_path=context_with_hooks.project_path,
         conf_dictionary=config_loader.get("catalog*"),
     )
     assert record.save_version is None
     assert record.load_versions is None
     assert record.run_id == "mocked context with hooks run id"
Beispiel #6
0
def test_convert_paths_to_absolute_posix_converts_full_windows_path_to_posix(
    project_path: Path, input_conf: Dict[str, Any], expected: Dict[str, Any]
):
    assert _convert_paths_to_absolute_posix(project_path, input_conf) == expected
Beispiel #7
0
def test_convert_paths_to_absolute_posix_not_changing_non_relative_path(
    project_path: Path, input_conf: Dict[str, Any], expected: Dict[str, Any]
):
    assert _convert_paths_to_absolute_posix(project_path, input_conf) == expected
Beispiel #8
0
def test_convert_paths_to_absolute_posix_for_all_known_filepath_keys(
    project_path: Path, input_conf: Dict[str, Any], expected: Dict[str, Any]
):
    assert _convert_paths_to_absolute_posix(project_path, input_conf) == expected
Beispiel #9
0
def test_convert_paths_raises_error_on_relative_project_path():
    path = Path("relative/path")

    pattern = f"project_path must be an absolute path. Received: {path}"
    with pytest.raises(ValueError, match=re.escape(pattern)):
        _convert_paths_to_absolute_posix(project_path=path, conf_dictionary={})