fix(migrations): Handle no params in time comparison migration (#32155)
This commit is contained in:
parent
ea5879bf2b
commit
6ed9dae2f7
|
|
@ -63,6 +63,8 @@ time_map = {
|
||||||
|
|
||||||
|
|
||||||
def upgrade_comparison_params(slice_params: dict[str, Any]) -> dict[str, Any]:
|
def upgrade_comparison_params(slice_params: dict[str, Any]) -> dict[str, Any]:
|
||||||
|
if not slice_params or not isinstance(slice_params, dict):
|
||||||
|
return {}
|
||||||
params = deepcopy(slice_params)
|
params = deepcopy(slice_params)
|
||||||
|
|
||||||
# Update time_comparison to time_compare
|
# Update time_comparison to time_compare
|
||||||
|
|
@ -103,6 +105,8 @@ def upgrade():
|
||||||
)
|
)
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
|
if not slc.params: # Noop if there's no params on the slice
|
||||||
|
continue
|
||||||
params = json.loads(slc.params)
|
params = json.loads(slc.params)
|
||||||
updated_slice_params = upgrade_comparison_params(params)
|
updated_slice_params = upgrade_comparison_params(params)
|
||||||
slc.params = json.dumps(updated_slice_params)
|
slc.params = json.dumps(updated_slice_params)
|
||||||
|
|
@ -119,6 +123,8 @@ def upgrade():
|
||||||
|
|
||||||
|
|
||||||
def downgrade_comparison_params(slice_params: dict[str, Any]) -> dict[str, Any]:
|
def downgrade_comparison_params(slice_params: dict[str, Any]) -> dict[str, Any]:
|
||||||
|
if not slice_params or not isinstance(slice_params, dict):
|
||||||
|
return {}
|
||||||
params = deepcopy(slice_params)
|
params = deepcopy(slice_params)
|
||||||
params["enable_time_comparison"] = False
|
params["enable_time_comparison"] = False
|
||||||
|
|
||||||
|
|
@ -199,6 +205,8 @@ def downgrade():
|
||||||
)
|
)
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
|
if not slc.params: # Noop if there's no params on the slice
|
||||||
|
continue
|
||||||
params = json.loads(slc.params)
|
params = json.loads(slc.params)
|
||||||
updated_slice_params = downgrade_comparison_params(params)
|
updated_slice_params = downgrade_comparison_params(params)
|
||||||
slc.params = json.dumps(updated_slice_params)
|
slc.params = json.dumps(updated_slice_params)
|
||||||
|
|
|
||||||
|
|
@ -229,3 +229,15 @@ def test_downgrade_chart_params_other_than_custom_false():
|
||||||
original_params = deepcopy(params_v2_other_than_custom_false)
|
original_params = deepcopy(params_v2_other_than_custom_false)
|
||||||
downgraded_params = downgrade_comparison_params(original_params)
|
downgraded_params = downgrade_comparison_params(original_params)
|
||||||
assert downgraded_params == params_v1_other_than_custom_false
|
assert downgraded_params == params_v1_other_than_custom_false
|
||||||
|
|
||||||
|
|
||||||
|
def test_upgrade_chart_params_empty():
|
||||||
|
"""
|
||||||
|
Ensure that the migration does not fail when params is None or empty.
|
||||||
|
"""
|
||||||
|
assert upgrade_comparison_params(None) == {}
|
||||||
|
assert upgrade_comparison_params({}) == {}
|
||||||
|
assert upgrade_comparison_params("") == {}
|
||||||
|
assert downgrade_comparison_params(None) == {}
|
||||||
|
assert downgrade_comparison_params({}) == {}
|
||||||
|
assert downgrade_comparison_params("") == {}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue