@@ -115,3 +115,94 @@ def test_list_object_files(
115115def test_invalid_namespace (tmpdir , bad_ns ):
116116 with pytest .raises (ramble .repository .InvalidNamespaceError ):
117117 ramble .repository .create_repo (str (tmpdir .join ("bad_repo" )), namespace = bad_ns )
118+
119+
120+ @pytest .mark .parametrize (
121+ "input_type,expected_enum" ,
122+ [
123+ ("applications" , ramble .repository .ObjectTypes .applications ),
124+ ("application" , ramble .repository .ObjectTypes .applications ),
125+ ("app" , ramble .repository .ObjectTypes .applications ),
126+ ("apps" , ramble .repository .ObjectTypes .applications ),
127+ ("modifiers" , ramble .repository .ObjectTypes .modifiers ),
128+ ("modifier" , ramble .repository .ObjectTypes .modifiers ),
129+ ("mod" , ramble .repository .ObjectTypes .modifiers ),
130+ ("package_managers" , ramble .repository .ObjectTypes .package_managers ),
131+ ("package_manager" , ramble .repository .ObjectTypes .package_managers ),
132+ ("package-manager" , ramble .repository .ObjectTypes .package_managers ),
133+ ("package manager" , ramble .repository .ObjectTypes .package_managers ),
134+ ("pkg_man" , ramble .repository .ObjectTypes .package_managers ),
135+ ("pkg" , ramble .repository .ObjectTypes .package_managers ),
136+ ("package" , ramble .repository .ObjectTypes .package_managers ),
137+ ("workflow_managers" , ramble .repository .ObjectTypes .workflow_managers ),
138+ ("workflow_manager" , ramble .repository .ObjectTypes .workflow_managers ),
139+ ("workflow-manager" , ramble .repository .ObjectTypes .workflow_managers ),
140+ ("workflow manager" , ramble .repository .ObjectTypes .workflow_managers ),
141+ ("wm" , ramble .repository .ObjectTypes .workflow_managers ),
142+ ("workflow" , ramble .repository .ObjectTypes .workflow_managers ),
143+ ("systems" , ramble .repository .ObjectTypes .systems ),
144+ ("system" , ramble .repository .ObjectTypes .systems ),
145+ ("sys" , ramble .repository .ObjectTypes .systems ),
146+ ("platforms" , ramble .repository .ObjectTypes .platforms ),
147+ ("platform" , ramble .repository .ObjectTypes .platforms ),
148+ ("plat" , ramble .repository .ObjectTypes .platforms ),
149+ ("base_classes" , ramble .repository .ObjectTypes .base_classes ),
150+ ("base_class" , ramble .repository .ObjectTypes .base_classes ),
151+ ("base-class" , ramble .repository .ObjectTypes .base_classes ),
152+ ("base class" , ramble .repository .ObjectTypes .base_classes ),
153+ ("base_cls" , ramble .repository .ObjectTypes .base_classes ),
154+ ("base" , ramble .repository .ObjectTypes .base_classes ),
155+ ("base_applications" , ramble .repository .ObjectTypes .base_applications ),
156+ ("base_application" , ramble .repository .ObjectTypes .base_applications ),
157+ ("base-application" , ramble .repository .ObjectTypes .base_applications ),
158+ ("base application" , ramble .repository .ObjectTypes .base_applications ),
159+ ("base_app" , ramble .repository .ObjectTypes .base_applications ),
160+ ("base_modifiers" , ramble .repository .ObjectTypes .base_modifiers ),
161+ ("base_modifier" , ramble .repository .ObjectTypes .base_modifiers ),
162+ ("base-modifier" , ramble .repository .ObjectTypes .base_modifiers ),
163+ ("base modifier" , ramble .repository .ObjectTypes .base_modifiers ),
164+ ("base_mod" , ramble .repository .ObjectTypes .base_modifiers ),
165+ ("base_package_managers" , ramble .repository .ObjectTypes .base_package_managers ),
166+ ("base_package_manager" , ramble .repository .ObjectTypes .base_package_managers ),
167+ ("base-package-manager" , ramble .repository .ObjectTypes .base_package_managers ),
168+ ("base package manager" , ramble .repository .ObjectTypes .base_package_managers ),
169+ ("base_pkg_man" , ramble .repository .ObjectTypes .base_package_managers ),
170+ ("base_pkg" , ramble .repository .ObjectTypes .base_package_managers ),
171+ ("base_workflow_managers" , ramble .repository .ObjectTypes .base_workflow_managers ),
172+ ("base_workflow_manager" , ramble .repository .ObjectTypes .base_workflow_managers ),
173+ ("base-workflow-manager" , ramble .repository .ObjectTypes .base_workflow_managers ),
174+ ("base workflow manager" , ramble .repository .ObjectTypes .base_workflow_managers ),
175+ ("base_wm" , ramble .repository .ObjectTypes .base_workflow_managers ),
176+ ("base_systems" , ramble .repository .ObjectTypes .base_systems ),
177+ ("base_system" , ramble .repository .ObjectTypes .base_systems ),
178+ ("base-system" , ramble .repository .ObjectTypes .base_systems ),
179+ ("base system" , ramble .repository .ObjectTypes .base_systems ),
180+ ("base_sys" , ramble .repository .ObjectTypes .base_systems ),
181+ ("base_platforms" , ramble .repository .ObjectTypes .base_platforms ),
182+ ("base_platform" , ramble .repository .ObjectTypes .base_platforms ),
183+ ("base-platform" , ramble .repository .ObjectTypes .base_platforms ),
184+ ("base platform" , ramble .repository .ObjectTypes .base_platforms ),
185+ ("base_plat" , ramble .repository .ObjectTypes .base_platforms ),
186+ ("utilities" , ramble .repository .ObjectTypes .utilities ),
187+ ("utility" , ramble .repository .ObjectTypes .utilities ),
188+ ("base_utilities" , ramble .repository .ObjectTypes .base_utilities ),
189+ ("base_utility" , ramble .repository .ObjectTypes .base_utilities ),
190+ ("base-utility" , ramble .repository .ObjectTypes .base_utilities ),
191+ ("base utility" , ramble .repository .ObjectTypes .base_utilities ),
192+ ],
193+ )
194+ def test_simplify_object_type (input_type , expected_enum ):
195+ assert ramble .repository .simplify_object_type (input_type ) == expected_enum
196+ assert ramble .repository .simplify_object_type (input_type .upper ()) == expected_enum
197+ assert ramble .repository .get_object_type (input_type ) == expected_enum
198+
199+
200+ def test_simplify_object_type_enum_passthrough ():
201+ for obj_type in ramble .repository .ObjectTypes :
202+ assert ramble .repository .simplify_object_type (obj_type ) == obj_type
203+
204+
205+ @pytest .mark .parametrize ("invalid_type" , ["not_a_type" , "foo_bar" , "123" , "" , None ])
206+ def test_simplify_object_type_invalid (invalid_type ):
207+ with pytest .raises (ramble .repository .UnknownObjectTypeError ):
208+ ramble .repository .simplify_object_type (invalid_type )
0 commit comments