2023-03-07 13:14:24 +01:00
|
|
|
from datahub.cli.quickstart_versioning import (
|
|
|
|
QuickstartExecutionPlan,
|
|
|
|
QuickstartVersionMappingConfig,
|
|
|
|
)
|
|
|
|
|
|
|
|
example_version_mapper = QuickstartVersionMappingConfig.parse_obj(
|
|
|
|
{
|
|
|
|
"quickstart_version_map": {
|
2023-11-22 13:54:12 -06:00
|
|
|
"default": {
|
|
|
|
"composefile_git_ref": "master",
|
|
|
|
"docker_tag": "latest",
|
2024-04-01 15:01:09 -05:00
|
|
|
"mysql_tag": "8.2",
|
2023-11-22 13:54:12 -06:00
|
|
|
},
|
2023-03-07 13:14:24 +01:00
|
|
|
"v0.9.6": {
|
2023-05-19 19:43:39 +05:30
|
|
|
"composefile_git_ref": "v0.9.6.1",
|
2023-03-07 13:14:24 +01:00
|
|
|
"docker_tag": "v0.9.6.1",
|
2023-11-22 13:54:12 -06:00
|
|
|
"mysql_tag": "5.7",
|
|
|
|
},
|
|
|
|
"v2.0.0": {
|
|
|
|
"composefile_git_ref": "v2.0.1",
|
|
|
|
"docker_tag": "v2.0.0",
|
2024-04-01 15:01:09 -05:00
|
|
|
"mysql_tag": "8.2",
|
2023-11-22 13:54:12 -06:00
|
|
|
},
|
|
|
|
"v1.0.0": {
|
|
|
|
"composefile_git_ref": "v1.0.0",
|
|
|
|
"docker_tag": "v1.0.0",
|
2024-04-01 15:01:09 -05:00
|
|
|
"mysql_tag": "8.2",
|
2023-03-07 13:14:24 +01:00
|
|
|
},
|
|
|
|
"stable": {
|
|
|
|
"composefile_git_ref": "v1.0.1",
|
|
|
|
"docker_tag": "latest",
|
2024-04-01 15:01:09 -05:00
|
|
|
"mysql_tag": "8.2",
|
2023-03-07 13:14:24 +01:00
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
def test_quickstart_version_config():
|
|
|
|
execution_plan = example_version_mapper.get_quickstart_execution_plan("v1.0.0")
|
|
|
|
expected = QuickstartExecutionPlan(
|
|
|
|
docker_tag="v1.0.0",
|
|
|
|
composefile_git_ref="v1.0.0",
|
2024-04-01 15:01:09 -05:00
|
|
|
mysql_tag="8.2",
|
2023-03-07 13:14:24 +01:00
|
|
|
)
|
|
|
|
assert execution_plan == expected
|
|
|
|
|
|
|
|
|
|
|
|
def test_quickstart_version_config_default():
|
|
|
|
execution_plan = example_version_mapper.get_quickstart_execution_plan("v2.0.0")
|
|
|
|
expected = QuickstartExecutionPlan(
|
|
|
|
docker_tag="v2.0.0",
|
|
|
|
composefile_git_ref="v2.0.1",
|
2024-04-01 15:01:09 -05:00
|
|
|
mysql_tag="8.2",
|
2023-03-07 13:14:24 +01:00
|
|
|
)
|
|
|
|
assert execution_plan == expected
|
|
|
|
|
|
|
|
|
|
|
|
def test_quickstart_version_config_stable():
|
|
|
|
execution_plan = example_version_mapper.get_quickstart_execution_plan("stable")
|
|
|
|
expected = QuickstartExecutionPlan(
|
2024-04-01 15:01:09 -05:00
|
|
|
docker_tag="latest", composefile_git_ref="v1.0.1", mysql_tag="8.2"
|
2023-03-07 13:14:24 +01:00
|
|
|
)
|
|
|
|
assert execution_plan == expected
|
|
|
|
|
|
|
|
|
|
|
|
def test_quickstart_forced_stable():
|
|
|
|
example_version_mapper.quickstart_version_map["default"] = QuickstartExecutionPlan(
|
2023-11-22 13:54:12 -06:00
|
|
|
composefile_git_ref="v1.0.1",
|
|
|
|
docker_tag="latest",
|
2024-04-01 15:01:09 -05:00
|
|
|
mysql_tag="8.2",
|
2023-03-07 13:14:24 +01:00
|
|
|
)
|
|
|
|
execution_plan = example_version_mapper.get_quickstart_execution_plan(None)
|
|
|
|
expected = QuickstartExecutionPlan(
|
|
|
|
docker_tag="latest",
|
|
|
|
composefile_git_ref="v1.0.1",
|
2024-04-01 15:01:09 -05:00
|
|
|
mysql_tag="8.2",
|
2023-03-07 13:14:24 +01:00
|
|
|
)
|
|
|
|
assert execution_plan == expected
|
|
|
|
|
|
|
|
|
|
|
|
def test_quickstart_forced_not_a_version_tag():
|
|
|
|
"""
|
|
|
|
If the user specifies a version that is not in the version mapping, we should still use the default version for checking.
|
|
|
|
|
|
|
|
This is because the user may be using a version of datahub that is not in the version mapping. Which is most likely
|
|
|
|
a recent change, otherwise it should be on an older version of datahub.
|
|
|
|
"""
|
|
|
|
execution_plan = example_version_mapper.get_quickstart_execution_plan(
|
|
|
|
"NOT A VERSION"
|
|
|
|
)
|
|
|
|
expected = QuickstartExecutionPlan(
|
|
|
|
docker_tag="NOT A VERSION",
|
|
|
|
composefile_git_ref="NOT A VERSION",
|
2024-04-01 15:01:09 -05:00
|
|
|
mysql_tag="8.2",
|
2023-03-07 13:14:24 +01:00
|
|
|
)
|
|
|
|
assert execution_plan == expected
|
|
|
|
|
|
|
|
|
|
|
|
def test_quickstart_get_older_version():
|
|
|
|
execution_plan = example_version_mapper.get_quickstart_execution_plan("v0.9.6")
|
|
|
|
expected = QuickstartExecutionPlan(
|
|
|
|
docker_tag="v0.9.6.1",
|
2023-05-19 19:43:39 +05:30
|
|
|
composefile_git_ref="v0.9.6.1",
|
2023-11-22 13:54:12 -06:00
|
|
|
mysql_tag="5.7",
|
2023-03-07 13:14:24 +01:00
|
|
|
)
|
|
|
|
assert execution_plan == expected
|