parent
0dce935c40
commit
03d4445a02
3 changed files with 206 additions and 9 deletions
135
test/test_notifications.py
Normal file
135
test/test_notifications.py
Normal file
|
@ -0,0 +1,135 @@
|
|||
import unittest
|
||||
|
||||
from endpoints.notificationevent import BuildSuccessEvent
|
||||
from util.morecollections import AttrDict
|
||||
|
||||
class TestShouldPerform(unittest.TestCase):
|
||||
def test_build_nofilter(self):
|
||||
notification_data = AttrDict({
|
||||
'event_config_json': '{}',
|
||||
})
|
||||
|
||||
# No build data at all.
|
||||
self.assertTrue(BuildSuccessEvent().should_perform({}, notification_data))
|
||||
|
||||
# With trigger metadata but no ref.
|
||||
self.assertTrue(BuildSuccessEvent().should_perform({
|
||||
'trigger_metadata': {},
|
||||
}, notification_data))
|
||||
|
||||
# With trigger metadata and a ref.
|
||||
self.assertTrue(BuildSuccessEvent().should_perform({
|
||||
'trigger_metadata': {
|
||||
'ref': 'refs/heads/somebranch',
|
||||
},
|
||||
}, notification_data))
|
||||
|
||||
|
||||
def test_build_emptyfilter(self):
|
||||
notification_data = AttrDict({
|
||||
'event_config_json': '{"ref-regex": ""}',
|
||||
})
|
||||
|
||||
# No build data at all.
|
||||
self.assertTrue(BuildSuccessEvent().should_perform({}, notification_data))
|
||||
|
||||
# With trigger metadata but no ref.
|
||||
self.assertTrue(BuildSuccessEvent().should_perform({
|
||||
'trigger_metadata': {},
|
||||
}, notification_data))
|
||||
|
||||
# With trigger metadata and a ref.
|
||||
self.assertTrue(BuildSuccessEvent().should_perform({
|
||||
'trigger_metadata': {
|
||||
'ref': 'refs/heads/somebranch',
|
||||
},
|
||||
}, notification_data))
|
||||
|
||||
|
||||
def test_build_invalidfilter(self):
|
||||
notification_data = AttrDict({
|
||||
'event_config_json': '{"ref-regex": "]["}',
|
||||
})
|
||||
|
||||
# No build data at all.
|
||||
self.assertFalse(BuildSuccessEvent().should_perform({}, notification_data))
|
||||
|
||||
# With trigger metadata but no ref.
|
||||
self.assertFalse(BuildSuccessEvent().should_perform({
|
||||
'trigger_metadata': {},
|
||||
}, notification_data))
|
||||
|
||||
# With trigger metadata and a ref.
|
||||
self.assertFalse(BuildSuccessEvent().should_perform({
|
||||
'trigger_metadata': {
|
||||
'ref': 'refs/heads/somebranch',
|
||||
},
|
||||
}, notification_data))
|
||||
|
||||
|
||||
def test_build_withfilter(self):
|
||||
notification_data = AttrDict({
|
||||
'event_config_json': '{"ref-regex": "refs/heads/master"}',
|
||||
})
|
||||
|
||||
# No build data at all.
|
||||
self.assertFalse(BuildSuccessEvent().should_perform({}, notification_data))
|
||||
|
||||
# With trigger metadata but no ref.
|
||||
self.assertFalse(BuildSuccessEvent().should_perform({
|
||||
'trigger_metadata': {},
|
||||
}, notification_data))
|
||||
|
||||
# With trigger metadata and a not-matching ref.
|
||||
self.assertFalse(BuildSuccessEvent().should_perform({
|
||||
'trigger_metadata': {
|
||||
'ref': 'refs/heads/somebranch',
|
||||
},
|
||||
}, notification_data))
|
||||
|
||||
# With trigger metadata and a matching ref.
|
||||
self.assertTrue(BuildSuccessEvent().should_perform({
|
||||
'trigger_metadata': {
|
||||
'ref': 'refs/heads/master',
|
||||
},
|
||||
}, notification_data))
|
||||
|
||||
|
||||
def test_build_withwildcardfilter(self):
|
||||
notification_data = AttrDict({
|
||||
'event_config_json': '{"ref-regex": "refs/heads/.+"}',
|
||||
})
|
||||
|
||||
# No build data at all.
|
||||
self.assertFalse(BuildSuccessEvent().should_perform({}, notification_data))
|
||||
|
||||
# With trigger metadata but no ref.
|
||||
self.assertFalse(BuildSuccessEvent().should_perform({
|
||||
'trigger_metadata': {},
|
||||
}, notification_data))
|
||||
|
||||
# With trigger metadata and a not-matching ref.
|
||||
self.assertFalse(BuildSuccessEvent().should_perform({
|
||||
'trigger_metadata': {
|
||||
'ref': 'refs/tags/sometag',
|
||||
},
|
||||
}, notification_data))
|
||||
|
||||
# With trigger metadata and a matching ref.
|
||||
self.assertTrue(BuildSuccessEvent().should_perform({
|
||||
'trigger_metadata': {
|
||||
'ref': 'refs/heads/master',
|
||||
},
|
||||
}, notification_data))
|
||||
|
||||
# With trigger metadata and another matching ref.
|
||||
self.assertTrue(BuildSuccessEvent().should_perform({
|
||||
'trigger_metadata': {
|
||||
'ref': 'refs/heads/somebranch',
|
||||
},
|
||||
}, notification_data))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
Reference in a new issue