import unittest import re from endpoints.trigger import matches_ref class TestRegex(unittest.TestCase): def assertDoesNotMatch(self, ref, filt): self.assertFalse(matches_ref(ref, re.compile(filt))) def assertMatches(self, ref, filt): self.assertTrue(matches_ref(ref, re.compile(filt))) def test_matches_ref(self): self.assertMatches('ref/heads/master', '.+') self.assertMatches('ref/heads/master', 'heads/.+') self.assertMatches('ref/heads/master', 'heads/master') self.assertDoesNotMatch('ref/heads/foobar', 'heads/master') self.assertDoesNotMatch('ref/heads/master', 'tags/master') self.assertMatches('ref/heads/master', '(((heads/alpha)|(heads/beta))|(heads/gamma))|(heads/master)') self.assertMatches('ref/heads/alpha', '(((heads/alpha)|(heads/beta))|(heads/gamma))|(heads/master)') self.assertMatches('ref/heads/beta', '(((heads/alpha)|(heads/beta))|(heads/gamma))|(heads/master)') self.assertMatches('ref/heads/gamma', '(((heads/alpha)|(heads/beta))|(heads/gamma))|(heads/master)') self.assertDoesNotMatch('ref/heads/delta', '(((heads/alpha)|(heads/beta))|(heads/gamma))|(heads/master)') if __name__ == '__main__': unittest.main()