def test_existing_local_data_docs_urls_returns_single_url_from_customized_local_site( tmp_path_factory): empty_directory = str(tmp_path_factory.mktemp("yo_yo")) DataContext.create(empty_directory) ge_dir = os.path.join(empty_directory, DataContext.GE_DIR) context = DataContext(ge_dir) context._project_config["data_docs_sites"] = { "my_rad_site": { "class_name": "SiteBuilder", "store_backend": { "class_name": "TupleFilesystemStoreBackend", "base_directory": "uncommitted/data_docs/some/local/path/" } } } # TODO Workaround project config programmatic config manipulation # statefulness issues by writing to disk and re-upping a new context context._save_project_config() context = DataContext(ge_dir) context.build_data_docs() expected_path = os.path.join( ge_dir, "uncommitted/data_docs/some/local/path/index.html") assert os.path.isfile(expected_path) obs = context.get_docs_sites_urls() assert obs == ["file://{}".format(expected_path)]
def test_existing_local_data_docs_urls_returns_url_on_project_with_no_datasources_and_a_site_configured(tmp_path_factory): """ This test ensures that a url will be returned for a default site even if a datasource is not configured, and docs are not built. """ empty_directory = str(tmp_path_factory.mktemp("another_empty_project")) DataContext.create(empty_directory) context = DataContext(os.path.join(empty_directory, DataContext.GE_DIR)) obs = context.get_docs_sites_urls() assert len(obs) == 1 assert obs[0].endswith("great_expectations/uncommitted/data_docs/local_site/index.html")
def test_existing_local_data_docs_urls_returns_multiple_urls_from_customized_local_site( tmp_path_factory): empty_directory = str(tmp_path_factory.mktemp("yo_yo_ma")) DataContext.create(empty_directory) ge_dir = os.path.join(empty_directory, DataContext.GE_DIR) context = DataContext(ge_dir) context._project_config["data_docs_sites"] = { "my_rad_site": { "class_name": "SiteBuilder", "store_backend": { "class_name": "TupleFilesystemStoreBackend", "base_directory": "uncommitted/data_docs/some/path/" } }, "another_just_amazing_site": { "class_name": "SiteBuilder", "store_backend": { "class_name": "TupleFilesystemStoreBackend", "base_directory": "uncommitted/data_docs/another/path/" } } } # TODO Workaround project config programmatic config manipulation # statefulness issues by writing to disk and re-upping a new context context._save_project_config() context = DataContext(ge_dir) context.build_data_docs() data_docs_dir = os.path.join(ge_dir, "uncommitted/data_docs/") path_1 = os.path.join(data_docs_dir, "some/path/index.html") path_2 = os.path.join(data_docs_dir, "another/path/index.html") for expected_path in [path_1, path_2]: assert os.path.isfile(expected_path) obs = context.get_docs_sites_urls() assert obs == [{ 'site_name': 'my_rad_site', 'site_url': "file://{}".format(path_1) }, { 'site_name': 'another_just_amazing_site', 'site_url': "file://{}".format(path_2) }]