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}")
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
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
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"
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
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
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
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={})