Пример #1
0
 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()
Пример #2
0
 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()
Пример #3
0
 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()
Пример #4
0
 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()
Пример #5
0
 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()
Пример #6
0
 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()
Пример #7
0
 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()
Пример #8
0
 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()
Пример #9
0
 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()
Пример #10
0
 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()
Пример #11
0
    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>')
Пример #12
0
    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>')
Пример #13
0
 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()
Пример #14
0
 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()
Пример #15
0
 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()
Пример #16
0
 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()
Пример #17
0
 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()