fix: complete theme management system import/export (#34850)

Co-authored-by: Claude <noreply@anthropic.com>
(cherry picked from commit 4695be5cc5)
This commit is contained in:
Maxime Beauchemin
2025-09-01 15:44:01 -07:00
committed by Joe Li
parent a3a2c494cc
commit 1c95ea5ab8
19 changed files with 377 additions and 303 deletions

View File

@@ -2607,24 +2607,16 @@ class TestDatasetApi(SupersetTestCase):
response = json.loads(rv.data.decode("utf-8"))
assert rv.status_code == 422
assert response == {
"errors": [
{
"message": "Error importing dataset",
"error_type": "GENERIC_COMMAND_ERROR",
"level": "warning",
"extra": {
"datasets/dataset.yaml": "Dataset already exists and `overwrite=true` was not passed", # noqa: E501
"issue_codes": [
{
"code": 1010,
"message": "Issue 1010 - Superset encountered an error while running a command.", # noqa: E501
}
],
},
}
]
}
assert len(response["errors"]) == 1
error = response["errors"][0]
assert error["message"].startswith("Error importing dataset")
assert error["error_type"] == "GENERIC_COMMAND_ERROR"
assert error["level"] == "warning"
assert "datasets/dataset.yaml" in str(error["extra"])
assert "Dataset already exists and `overwrite=true` was not passed" in str(
error["extra"]
)
assert error["extra"]["issue_codes"][0]["code"] == 1010
# import with overwrite flag
buf = self.create_import_v1_zip_file("dataset")
@@ -2662,27 +2654,19 @@ class TestDatasetApi(SupersetTestCase):
response = json.loads(rv.data.decode("utf-8"))
assert rv.status_code == 422
assert response == {
"errors": [
{
"message": "Error importing dataset",
"error_type": "GENERIC_COMMAND_ERROR",
"level": "warning",
"extra": {
"metadata.yaml": {"type": ["Must be equal to SqlaTable."]},
"issue_codes": [
{
"code": 1010,
"message": (
"Issue 1010 - Superset encountered "
"an error while running a command."
),
}
],
},
}
]
assert len(response["errors"]) == 1
error = response["errors"][0]
assert error["message"].startswith("Error importing dataset")
assert error["error_type"] == "GENERIC_COMMAND_ERROR"
assert error["level"] == "warning"
assert "metadata.yaml" in error["extra"]
assert error["extra"]["metadata.yaml"] == {
"type": ["Must be equal to SqlaTable."]
}
assert error["extra"]["issue_codes"][0]["code"] == 1010
assert (
"Issue 1010 - Superset encountered an error while running a command."
) in error["extra"]["issue_codes"][0]["message"]
def test_import_dataset_invalid_v0_validation(self):
"""