Add missing bitbucket test
This commit is contained in:
parent
497c90e7ea
commit
84b298f36b
2 changed files with 82 additions and 13 deletions
|
@ -1,6 +1,11 @@
|
|||
import json
|
||||
import pytest
|
||||
|
||||
from buildtrigger.test.bitbucketmock import get_bitbucket_trigger
|
||||
from buildtrigger.triggerutil import (SkipRequestException, ValidationRequestException,
|
||||
InvalidPayloadException)
|
||||
from endpoints.building import PreparedBuild
|
||||
from util.morecollections import AttrDict
|
||||
|
||||
@pytest.fixture
|
||||
def bitbucket_trigger():
|
||||
|
@ -20,3 +25,67 @@ def test_load_dockerfile_contents(subdir, contents):
|
|||
trigger = get_bitbucket_trigger(subdir)
|
||||
assert trigger.load_dockerfile_contents() == contents
|
||||
|
||||
|
||||
@pytest.mark.parametrize('payload, expected_error, expected_message', [
|
||||
('{}', InvalidPayloadException, "'push' is a required property"),
|
||||
|
||||
# Valid payload:
|
||||
('''{
|
||||
"push": {
|
||||
"changes": [{
|
||||
"new": {
|
||||
"name": "somechange",
|
||||
"target": {
|
||||
"hash": "aaaaaaa",
|
||||
"message": "foo",
|
||||
"date": "now",
|
||||
"links": {
|
||||
"html": {
|
||||
"href": "somelink"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}]
|
||||
},
|
||||
"repository": {
|
||||
"full_name": "foo/bar"
|
||||
}
|
||||
}''', None, None),
|
||||
|
||||
# Skip message:
|
||||
('''{
|
||||
"push": {
|
||||
"changes": [{
|
||||
"new": {
|
||||
"name": "somechange",
|
||||
"target": {
|
||||
"hash": "aaaaaaa",
|
||||
"message": "[skip build] foo",
|
||||
"date": "now",
|
||||
"links": {
|
||||
"html": {
|
||||
"href": "somelink"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}]
|
||||
},
|
||||
"repository": {
|
||||
"full_name": "foo/bar"
|
||||
}
|
||||
}''', SkipRequestException, ''),
|
||||
])
|
||||
def test_handle_trigger_request(bitbucket_trigger, payload, expected_error, expected_message):
|
||||
def get_payload():
|
||||
return json.loads(payload)
|
||||
|
||||
request = AttrDict(dict(get_json=get_payload))
|
||||
|
||||
if expected_error is not None:
|
||||
with pytest.raises(expected_error) as ipe:
|
||||
bitbucket_trigger.handle_trigger_request(request)
|
||||
assert ipe.value.message == expected_message
|
||||
else:
|
||||
assert isinstance(bitbucket_trigger.handle_trigger_request(request), PreparedBuild)
|
||||
|
|
Reference in a new issue