def test_failing_import_datasets_versioned_export(import_datasets_command, app_context, fs, caplog): """ Test that failing to import either ZIP or YAML is done elegantly. """ # pylint: disable=reimported, redefined-outer-name import superset.cli # noqa: F811 # reload to define export_datasets correctly based on the # feature flags importlib.reload(superset.cli) # write YAML file with open("datasets.yaml", "w") as fp: fp.write("hello: world") runner = app.test_cli_runner() response = runner.invoke(superset.cli.import_datasources, ("-p", "datasets.yaml")) assert_cli_fails_properly(response, caplog) # write ZIP file with ZipFile("datasets.zip", "w") as bundle: with bundle.open("datasets/dataset.yaml", "w") as fp: fp.write(b"hello: world") runner = app.test_cli_runner() response = runner.invoke(superset.cli.import_datasources, ("-p", "datasets.zip")) assert_cli_fails_properly(response, caplog)
def test_import_datasets_versioned_export(import_datasets_command, app_context, fs): """ Test that both ZIP and YAML can be imported. """ # pylint: disable=reimported, redefined-outer-name import superset.cli # noqa: F811 # reload to define export_datasets correctly based on the # feature flags importlib.reload(superset.cli) # write YAML file with open("datasets.yaml", "w") as fp: fp.write("hello: world") runner = app.test_cli_runner() response = runner.invoke(superset.cli.import_datasources, ("-p", "datasets.yaml")) assert response.exit_code == 0 expected_contents = {"datasets.yaml": "hello: world"} import_datasets_command.assert_called_with(expected_contents, overwrite=True) # write ZIP file with ZipFile("datasets.zip", "w") as bundle: with bundle.open("datasets/dataset.yaml", "w") as fp: fp.write(b"hello: world") runner = app.test_cli_runner() response = runner.invoke(superset.cli.import_datasources, ("-p", "datasets.zip")) assert response.exit_code == 0 expected_contents = {"dataset.yaml": "hello: world"} import_datasets_command.assert_called_with(expected_contents, overwrite=True)
def test_import_datasets_sync_argument_metrics( import_datasets_command, app_context, fs ): """ Test that the --sync command line argument syncs dataset in superset with YAML file. Using only metrics with the --sync flag """ # pylint: disable=reimported, redefined-outer-name import superset.cli.importexport # noqa: F811 # reload to define export_datasets correctly based on the # feature flags importlib.reload(superset.cli.importexport) # write YAML file with open("dataset.yaml", "w") as fp: fp.write("hello: world") runner = app.test_cli_runner() response = runner.invoke( superset.cli.importexport.import_datasources, ["-p", "dataset.yaml", "-s", "metrics"], ) assert response.exit_code == 0 expected_contents = {"dataset.yaml": "hello: world"} import_datasets_command.assert_called_with( expected_contents, sync_columns=False, sync_metrics=True, )
def test_failing_export_datasources_versioned_export(export_dashboards_command, app_context, fs, caplog): """ Test that failing to export ZIP file is done elegantly. """ # pylint: disable=reimported, redefined-outer-name import superset.cli # noqa: F811 # reload to define export_dashboards correctly based on the # feature flags importlib.reload(superset.cli) runner = app.test_cli_runner() with freeze_time("2021-01-01T00:00:00Z"): response = runner.invoke(superset.cli.export_datasources, ()) assert_cli_fails_properly(response, caplog)
def test_export_datasources_versioned_export(app_context, fs): """ Test that a ZIP file is exported. """ # pylint: disable=reimported, redefined-outer-name import superset.cli # noqa: F811 # reload to define export_dashboards correctly based on the # feature flags importlib.reload(superset.cli) runner = app.test_cli_runner() with freeze_time("2021-01-01T00:00:00Z"): response = runner.invoke(superset.cli.export_datasources, ()) assert response.exit_code == 0 assert Path("dataset_export_20210101T000000.zip").exists() assert is_zipfile("dataset_export_20210101T000000.zip")
def test_export_dashboards_original(app_context, fs): """ Test that a JSON file is exported. """ # pylint: disable=reimported, redefined-outer-name import superset.cli # noqa: F811 # reload to define export_dashboards correctly based on the # feature flags importlib.reload(superset.cli) runner = app.test_cli_runner() response = runner.invoke(superset.cli.export_dashboards, ("-f", "dashboards.json")) assert response.exit_code == 0 assert Path("dashboards.json").exists() # check that file is valid JSON with open("dashboards.json") as fp: contents = fp.read() json.loads(contents)