def test_match_module_by_dict_type_rule(self): rule_def = { 'id': 'Match module by name', 'type': 'module', 'rule': { 'dependencies': { 'buildrequires': { 'platform': r'^.*$' }, 'requires': { 'platform': r'^(?P<platform>f\d+)$' } }, }, 'description': 'Match module build by development.', 'destinations': r'\g<platform>-modular-ursamajor', } modulemd = { 'data': { 'dependencies': [{ 'buildrequires': { 'platform': ['f28'] }, 'requires': { 'platform': ['f28'] }, }] } } match = tagging_service.RuleDef(rule_def).match(modulemd) assert match assert 'f28-modular-ursamajor' == match.dest_tag
def test_match_development_module_build(self): rule_def = { 'id': 'Simple match by development', 'type': 'module', 'rule': {'development': True}, 'description': 'Match module build by development.', 'destinations': 'modular-fallback-tag' } modulemd = {'data': {'development': True}} match = tagging_service.RuleDef(rule_def).match(modulemd) assert match assert ['modular-fallback-tag'] == match.dest_tags modulemd = {'data': {'development': False}} assert not tagging_service.RuleDef(rule_def).match(modulemd) modulemd = {'data': {}} assert not tagging_service.RuleDef(rule_def).match(modulemd)
def test_simple_rule_definition(self): rule_def = { 'id': 'Simple match any module', 'type': 'module', 'description': 'Match any module build.', 'destinations': 'modular-fallback-tag' } match = tagging_service.RuleDef(rule_def).match(Mock()) assert match assert ['modular-fallback-tag'] == match.dest_tags
def test_match_module_by_list_of_regex(self): rule_def = { 'id': 'Match module by list of regular expressions', 'type': 'module', 'rule': { 'name': [r'^javapackages-tools$', r'-ursamajor$'] }, 'description': 'Match module build by development.', 'destinations': r'\g<platform>-modular-ursamajor', } modulemd = {'data': {'name': 'javapackages-tools'}} match = tagging_service.RuleDef(rule_def).match(modulemd) assert match assert [r'\g<platform>-modular-ursamajor'] == match.dest_tags modulemd = {'data': {'name': 'module-a-ursamajor'}} assert tagging_service.RuleDef(rule_def).match(modulemd) modulemd = {'data': {'name': 'module-b'}} assert not tagging_service.RuleDef(rule_def).match(modulemd)