def test_filter_change_filt_list(self): self.setfilter(repository=["vc://a", "vc://b"]) self.yes(Change(repository="vc://a"), "matching REPOSITORY vc://a returns True") self.yes(Change(repository="vc://b"), "matching REPOSITORY vc://b returns True") self.no(Change(repository="vc://c"), "non-matching REPOSITORY returns False") self.no(Change(repository=None), "None for REPOSITORY returns False") self.check()
def test_filter_change_combination_filter_fn(self): self.setfilter(project='p', repository='r', branch='b', category='c', filter_fn=lambda c: c.ff) self.no( Change(project='x', repository='x', branch='x', category='x', ff=False), "none match and fn returns False -> False") self.no( Change(project='p', repository='r', branch='b', category='c', ff=False), "all match and fn returns False -> False") self.no( Change(project='x', repository='x', branch='x', category='x', ff=True), "none match and fn returns True -> False") self.yes( Change(project='p', repository='r', branch='b', category='c', ff=True), "all match and fn returns True -> False") self.check()
def test_filter_change_branch_re(self): # regression - see #927 self.setfilter(branch_re="^t.*") self.yes(Change(branch="trunk"), "matching BRANCH returns True") self.no(Change(branch="development"), "non-matching BRANCH returns False") self.no(Change(branch=None), "branch=None returns False") self.check()
def test_filter_change_branch_re(self): # regression - see #927 self.setfilter(branch=re.compile('^t.*')) self.yes(Change(branch='trunk'), 'matching BRANCH returns True') self.no(Change(branch='development'), 'non-matching BRANCH returns False') self.no(Change(branch=None), 'branch=None returns False') self.check()
def test_filter_change_filt_re_compiled(self): self.setfilter(category=re.compile('^b.*', re.I)) self.no(Change(category='albert'), 'non-matching CATEGORY returns False') self.yes(Change(category='boris'), 'matching CATEGORY returns True') self.yes(Change(category='Bruce'), 'matching CATEGORY returns True, using re.I') self.check()
def test_filter_change_filt_re_compiled(self): self.setfilter(category_re=re.compile("^b.*", re.I)) self.no(Change(category="albert"), "non-matching CATEGORY returns False") self.yes(Change(category="boris"), "matching CATEGORY returns True") self.yes(Change(category="Bruce"), "matching CATEGORY returns True, using re.I") self.check()
def test_filter_props(self): self.setfilter() self.filt.checks.update( self.filt.createChecks( ("ref-updated", None, None, "prop:event.type"), )) self.yes(Change(properties={'event.type': 'ref-updated'}), "matching property") self.no(Change(properties={'event.type': 'patch-uploaded'}), "non matching property") self.no(Change(properties={}), "no property") self.check()
def test_filter_props(self): self.setfilter(properties={ 'event.type': 'ref-updated' }) self.yes(Change(properties={'event.type': 'ref-updated'}), 'matching property') self.no(Change(properties={'event.type': 'patch-uploaded'}), 'non matching property') self.no(Change(properties={}), 'no property') self.check()
def test_filter_props_fn(self): self.setfilter(properties={ 'event.type': lambda v: v.startswith('ref') }) self.yes(Change(properties={'event.type': 'ref-updated'}), 'matching property') self.no(Change(properties={'event.type': 'patch-uploaded'}), 'non matching property') self.no(Change(properties={}), 'no property') self.check()
def test_filter_change_combination(self): self.setfilter(project='p', repository='r', branch='b', category='c', codebase='cb') self.no(Change(project='x', repository='x', branch='x', category='x'), "none match -> False") self.no(Change(project='p', repository='r', branch='b', category='x'), "three match -> False") self.no(Change(project='p', repository='r', branch='b', category='c', codebase='x'), "four match -> False") self.yes(Change(project='p', repository='r', branch='b', category='c', codebase='cb'), "all match -> True") self.check()
def test_basic(self): ch = Change(**TestGerritChangeSource.expected_change) f = gerritchangesource.GerritChangeFilter( branch=["br"], eventtype=["patchset-created"]) self.assertTrue(f.filter_change(ch)) f = gerritchangesource.GerritChangeFilter( branch="br2", eventtype=["patchset-created"]) self.assertFalse(f.filter_change(ch)) f = gerritchangesource.GerritChangeFilter( branch="br", eventtype="ref-updated") self.assertFalse(f.filter_change(ch)) self.assertEqual( repr(f), '<GerritChangeFilter on prop:event.change.branch == br and prop:event.type == ref-updated>')
def test_basic(self): props = { 'event.type': 'patchset-created', 'event.change.branch': 'master', } ch = Change(**TestGerritChangeSource.expected_change_patchset_created, properties=props) f = gerritchangesource.GerritChangeFilter( branch=["master"], eventtype=["patchset-created"]) self.assertTrue(f.filter_change(ch)) f = gerritchangesource.GerritChangeFilter( branch="master2", eventtype=["patchset-created"]) self.assertFalse(f.filter_change(ch)) f = gerritchangesource.GerritChangeFilter(branch="master", eventtype="ref-updated") self.assertFalse(f.filter_change(ch)) self.assertEqual( repr(f), '<GerritChangeFilter on prop:event.change.branch == master and ' 'prop:event.type == ref-updated>')
def test_filter_change_filt_re(self): self.setfilter(category_re="^a.*") self.yes(Change(category="albert"), "matching CATEGORY returns True") self.no(Change(category="boris"), "non-matching CATEGORY returns False") self.check()
def test_filter_change_filt_list_None(self): self.setfilter(branch=["mybr", None]) self.yes(Change(branch="mybr"), "matching BRANCH mybr returns True") self.yes(Change(branch=None), "matching BRANCH None returns True") self.no(Change(branch="misc"), "non-matching BRANCH returns False") self.check()
def test_filter_change_filt_str(self): self.setfilter(project="myproj") self.no(Change(project="yourproj"), "non-matching PROJECT returns False") self.yes(Change(project="myproj"), "matching PROJECT returns True") self.check()
def test_filter_change_filter_fn(self): self.setfilter(filter_fn=lambda ch: ch.x > 3) self.no(Change(x=2), "filter_fn returns False") self.yes(Change(x=4), "filter_fn returns True") self.check()
def test_filter_change_filt_re(self): self.setfilter(category=re.compile('^a.*')) self.yes(Change(category='albert'), 'matching CATEGORY returns True') self.no(Change(category='boris'), 'non-matching CATEGORY returns False') self.check()