def test_filter_all(self): pipelines = gocd.Pipelines(self.pipeline_groups) rule_filter = pipelines.any() self.assertTrue(rule_filter(dict(pipeline='b-build'))) self.assertTrue(rule_filter(dict(pipeline='b-test'))) self.assertTrue(rule_filter(dict(pipeline='b-test-release-x'))) self.assertTrue(rule_filter(dict(pipeline='a-test')))
def test_filter_in_group_which_does_not_exist(self): pipelines = gocd.Pipelines(self.pipeline_groups) rule_filter = pipelines.in_group(group='betaxxx') self.assertFalse(rule_filter(dict(pipeline='b-build'))) self.assertFalse(rule_filter(dict(pipeline='b-test'))) self.assertFalse(rule_filter(dict(pipeline='b-test-release-x'))) self.assertFalse(rule_filter(dict(pipeline='a-test')))
def test_filter_in_group(self): pipelines = gocd.Pipelines(self.pipeline_groups) rule_filter = pipelines.in_group(group='beta') self.assertTrue(rule_filter(dict(pipeline='b-build'))) self.assertTrue(rule_filter(dict(pipeline='b-test'))) self.assertFalse(rule_filter(dict(pipeline='b-test-release-x'))) self.assertFalse(rule_filter(dict(pipeline='a-test')))
def test_filter_name_like_in_group(self): pipelines = gocd.Pipelines(self.pipeline_groups) rule_filter = pipelines.name_like_in_group( re_pattern=r'(.+)-release.*', group='beta') self.assertFalse(rule_filter(dict(pipeline='b-build'))) self.assertFalse(rule_filter(dict(pipeline='b-test'))) self.assertTrue(rule_filter(dict(pipeline='b-test-release-x'))) self.assertFalse(rule_filter(dict(pipeline='a-test')))
def test_check_no_event_in_rule(self): msg = dict(event=gocd.Event.BREAKS, pipeline='p1') conf = dict(filter=dict(function='pipelines.in_group', args=['g1']), actions=['mailto:[email protected]']) pipelines = gocd.Pipelines([{ 'name': 'g1', 'pipelines': [{ 'name': 'p1' }] }]) rule = gocd.GocdRule(conf) rcpts = rule.check(msg, dict(pipelines=pipelines)) self.assertEqual(rcpts, conf['actions'])
def test_check_no_event(self): msg = dict(event=None, pipeline='p2') conf = dict(filter=dict(events=['FAILS', 'BREAKS'], function='pipelines.in_group', args=['g1']), actions=['mailto:[email protected]']) pipelines = gocd.Pipelines([{ 'name': 'g1', 'pipelines': [{ 'name': 'p1' }] }]) rule = gocd.GocdRule(conf) rcpts = rule.check(msg, dict(pipelines=pipelines)) self.assertEqual(rcpts, [])