diff --git a/koji/policy.py b/koji/policy.py index 8a570575..7fc07b1e 100644 --- a/koji/policy.py +++ b/koji/policy.py @@ -135,8 +135,12 @@ class MatchTest(BaseSimpleTest): field = self.field if field not in data: return False + value = data[field] + if value is None: + # None does not match any pattern + return False for pattern in args: - if fnmatch.fnmatch(data[field], pattern): + if fnmatch.fnmatch(value, pattern): return True return False diff --git a/kojihub/kojihub.py b/kojihub/kojihub.py index 4358b33d..b7e6b8f1 100644 --- a/kojihub/kojihub.py +++ b/kojihub/kojihub.py @@ -10150,7 +10150,8 @@ def policy_data_from_task_args(method, arglist): target = tinfo['name'] policy_data['target'] = target - t_opts = params.get('opts', {}) + # we may have param['opts'] that is explicitly None + t_opts = params.get('opts') or {} policy_data['scratch'] = t_opts.get('scratch', False) return policy_data