From 326e6df6132b33e62d68f10178fbc06c595262b8 Mon Sep 17 00:00:00 2001 From: Pierre-Yves David <pierre-yves.david@ens-lyon.org> Date: Fri, 24 May 2024 21:36:52 +0200 Subject: [PATCH] enum-cleanup: use ModelObject type for "objects" strategy in test_hypothesis_strategies object_dicts still need to be migrated. --- swh/model/tests/test_hypothesis_strategies.py | 46 +++++++++++-------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/swh/model/tests/test_hypothesis_strategies.py b/swh/model/tests/test_hypothesis_strategies.py index d93f37f8..d67eeded 100644 --- a/swh/model/tests/test_hypothesis_strategies.py +++ b/swh/model/tests/test_hypothesis_strategies.py @@ -20,20 +20,12 @@ from swh.model.hypothesis_strategies import ( skipped_contents, snapshots, ) -from swh.model.model import SnapshotTargetType +from swh.model.model import ModelObjectType, SnapshotTargetType target_types = ("content", "directory", "revision", "release", "snapshot", "alias") -all_but_skipped_content = ( - "origin", - "origin_visit", - "origin_visit_status", - "snapshot", - "release", - "revision", - "directory", - "content", - "raw_extrinsic_metadata", -) +all_but_skipped_content = { + o_t for o_t in ModelObjectType if o_t != ModelObjectType.SKIPPED_CONTENT +} @given(objects(blacklist_types=())) @@ -45,18 +37,28 @@ def test_generation(obj_type_and_obj): @given(objects(split_content=False)) def test_generation_merged_content(obj_type_and_obj): # we should never generate a "skipped_content" here - assert obj_type_and_obj[0] != "skipped_content" + assert obj_type_and_obj[0] != ModelObjectType.SKIPPED_CONTENT @given(objects(split_content=True, blacklist_types=all_but_skipped_content)) def test_generation_split_content(obj_type_and_obj): # we should only generate "skipped_content" - assert obj_type_and_obj[0] == "skipped_content" + assert obj_type_and_obj[0] == ModelObjectType.SKIPPED_CONTENT -@given(objects(blacklist_types=("origin_visit", "directory"))) +@given( + objects( + blacklist_types={ + ModelObjectType.DIRECTORY, + ModelObjectType.ORIGIN_VISIT, + } + ) +) def test_generation_blacklist(obj_type_and_obj): - assert obj_type_and_obj[0] not in ("origin_visit", "directory") + assert obj_type_and_obj[0] not in { + ModelObjectType.DIRECTORY, + ModelObjectType.ORIGIN_VISIT, + } def assert_nested_dict(obj): @@ -110,7 +112,11 @@ def test_dicts_generation_merged_content(obj_type_and_obj): assert obj_type_and_obj[0] != "skipped_content" -@given(object_dicts(split_content=True, blacklist_types=all_but_skipped_content)) +@given( + object_dicts( + split_content=True, blacklist_types={e.value for e in all_but_skipped_content} + ) +) def test_dicts_generation_split_content(obj_type_and_obj): # we should only generate "skipped_content" assert obj_type_and_obj[0] == "skipped_content" @@ -127,7 +133,7 @@ def test_model_to_dicts(obj_type_and_obj): object_type = object_.object_type obj_dict = object_.to_dict() assert_nested_dict(obj_dict) - if object_type in ("content", "skipped_content"): + if object_type in {ModelObjectType.CONTENT, ModelObjectType.SKIPPED_CONTENT}: COMMON_KEYS = set(DEFAULT_ALGORITHMS) | {"length", "status"} if object_.ctime is not None: COMMON_KEYS |= {"ctime"} @@ -140,9 +146,9 @@ def test_model_to_dicts(obj_type_and_obj): assert set(obj_dict) == COMMON_KEYS | {"data"} else: assert False, obj_dict - elif object_type == "release": + elif object_type == ModelObjectType.RELEASE: assert obj_dict["target_type"] in target_types - elif object_type == "snapshot": + elif object_type == ModelObjectType.RELEASE: for branch in obj_dict["branches"].values(): assert branch is None or branch["target_type"] in target_types -- GitLab