Ejemplo n.º 1
0
    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)