def _prepare_request(event, payload, _secret=None, headers=None): if headers is None: headers = dict() request = FakeRequest() request.uri = "/change_hook/github" request.method = "GET" request.received_headers = { _HEADER_EVENT: event } if isinstance(payload, str): request.content = StringIO(payload) request.received_headers[_HEADER_CT] = _CT_JSON if _secret is not None: signature = hmac.new(_secret, msg=payload, digestmod=sha1) request.received_headers[_HEADER_SIGNATURE] = \ 'sha1=%s' % (signature.hexdigest(),) else: request.args['payload'] = payload request.received_headers[_HEADER_CT] = _CT_ENCODED request.received_headers.update(headers) # print request.received_headers return request
def FakeRequestMR(content): request = FakeRequest(content=content) request.uri = b"/change_hook/gitlab" request.args = {b'codebase': [b'MyCodebase']} request.received_headers[_HEADER_EVENT] = b"Merge Request Hook" request.method = b"POST" return request
def testMercurialWithChange(self): change_dict = {b'payload': [mercurialJsonPayload]} request = FakeRequest(change_dict) request.received_headers[_HEADER_EVENT] = b"repo:push" request.uri = b'/change_hook/bitbucket' request.method = b'POST' yield request.test_render(self.change_hook) self.assertEqual( len(self.change_hook.master.data.updates.changesAdded), 1) commit = self.change_hook.master.data.updates.changesAdded[0] self.assertEqual(commit['files'], ['somefile.py']) self.assertEqual(commit['repository'], 'https://bitbucket.org/marcus/project-x/') self.assertEqual(commit['when_timestamp'], 1338350336) self.assertEqual(commit['author'], 'Marcus Bertrand <*****@*****.**>') self.assertEqual(commit['revision'], '620ade18607ac42d872b568bb92acaa9a28620e9') self.assertEqual(commit['comments'], 'Added some more things to somefile.py') self.assertEqual(commit['branch'], 'master') self.assertEqual( commit['revlink'], 'https://bitbucket.org/marcus/project-x/commits/' '620ade18607ac42d872b568bb92acaa9a28620e9') self.assertEqual(commit['properties']['event'], 'repo:push')
def testMercurialWithChange(self): change_dict = {'payload': [mercurialJsonPayload]} request = FakeRequest(change_dict) request.uri = '/change_hook/bitbucket' request.method = 'POST' yield request.test_render(self.change_hook) self.assertEqual(len(self.change_hook.master.addedChanges), 1) commit = self.change_hook.master.addedChanges[0] self.assertEqual(commit['files'], ['somefile.py']) self.assertEqual(commit['repository'], 'https://bitbucket.org/marcus/project-x/') self.assertEqual( calendar.timegm(commit['when_timestamp'].utctimetuple()), 1338350336) self.assertEqual(commit['author'], 'Marcus Bertrand <*****@*****.**>') self.assertEqual(commit['revision'], '620ade18607ac42d872b568bb92acaa9a28620e9') self.assertEqual(commit['comments'], 'Added some more things to somefile.py') self.assertEqual(commit['branch'], 'master') self.assertEqual( commit['revlink'], 'https://bitbucket.org/marcus/project-x/commits/' '620ade18607ac42d872b568bb92acaa9a28620e9')
def testMercurialWithChange(self): change_dict = {'payload': [mercurialJsonPayload]} request = FakeRequest(change_dict) request.uri = '/change_hook/bitbucket' request.method = 'POST' yield request.test_render(self.change_hook) self.assertEqual(len(request.addedChanges), 1) commit = request.addedChanges[0] self.assertEqual(commit['files'], ['somefile.py']) self.assertEqual( commit['repository'], 'https://bitbucket.org/marcus/project-x/') self.assertEqual( calendar.timegm(commit['when_timestamp'].utctimetuple()), 1338350336 ) self.assertEqual( commit['author'], 'Marcus Bertrand <*****@*****.**>') self.assertEqual( commit['revision'], '620ade18607ac42d872b568bb92acaa9a28620e9') self.assertEqual( commit['comments'], 'Added some more things to somefile.py') self.assertEqual(commit['branch'], 'master') self.assertEqual( commit['revlink'], 'https://bitbucket.org/marcus/project-x/commits/' '620ade18607ac42d872b568bb92acaa9a28620e9' )
def _prepare_request(event, payload, _secret=None, headers=None): if headers is None: headers = dict() request = FakeRequest() request.uri = b"/change_hook/github" request.method = b"GET" request.received_headers = { _HEADER_EVENT: event } assert isinstance(payload, (bytes, list)), \ "payload can only be bytes or list, not {}".format(type(payload)) if isinstance(payload, bytes): request.content = BytesIO(payload) request.received_headers[_HEADER_CT] = _CT_JSON if _secret is not None: signature = hmac.new(unicode2bytes(_secret), msg=unicode2bytes(payload), digestmod=sha1) request.received_headers[_HEADER_SIGNATURE] = \ 'sha1={}'.format(signature.hexdigest()) else: request.args[b'payload'] = payload request.received_headers[_HEADER_CT] = _CT_ENCODED request.received_headers.update(headers) # print request.received_headers return request
def testGitWithChange(self): change_dict = {b'payload': [gitJsonPayload]} request = FakeRequest(change_dict) request.received_headers[_HEADER_EVENT] = b"repo:push" request.uri = b'/change_hook/bitbucket' request.method = b'POST' yield request.test_render(self.change_hook) self.assertEqual(len(self.change_hook.master.addedChanges), 1) commit = self.change_hook.master.addedChanges[0] self.assertEqual(commit['files'], ['somefile.py']) self.assertEqual( commit['repository'], 'https://bitbucket.org/marcus/project-x/') self.assertEqual( calendar.timegm(commit['when_timestamp'].utctimetuple()), 1338350336 ) self.assertEqual( commit['author'], 'Marcus Bertrand <*****@*****.**>') self.assertEqual( commit['revision'], '620ade18607ac42d872b568bb92acaa9a28620e9') self.assertEqual( commit['comments'], 'Added some more things to somefile.py') self.assertEqual(commit['branch'], 'master') self.assertEqual( commit['revlink'], 'https://bitbucket.org/marcus/project-x/commits/' '620ade18607ac42d872b568bb92acaa9a28620e9' ) self.assertEqual( commit['properties']['event'], 'repo:push')
def _prepare_request(payload, headers=None, change_dict=None): headers = headers or {} request = FakeRequest(change_dict) request.uri = "/change_hook/bitbucketserver" request.method = "POST" request.content = StringIO(payload) request.received_headers['Content-Type'] = _CT_JSON request.received_headers.update(headers) return request
def getRequest(self): req = FakeRequest() req.method = "GET" req.uri = "/projects/Example%20Project/builders/runtests/builds/39/steps/Test%20IL2Cpp%20Unit%20Tests/logs/TestReport.html?_branch=" req.clientproto = "HTTP/1.1" req.args = {} req.prepath = "" return req
def prepare_request(self, **kwargs): payload = {"update_id": 12345} payload.update(kwargs) content = unicode2bytes(json.dumps(payload)) request = FakeRequest(content=content) request.uri = b"/bot12345:secret" request.method = b"POST" request.received_headers[b'Content-Type'] = b"application/json" return request
def testWithNoJson(self): request = FakeRequest() request.uri = "/change_hook/bitbucket" request.method = "POST" yield request.test_render(self.change_hook) self.assertEqual(len(request.addedChanges), 0) self.assertEqual(request.written, "Error processing changes.") request.setResponseCode.assert_called_with(500, "Error processing changes.") self.assertEqual(len(self.flushLoggedErrors()), 1)
def _prepare_request(payload, headers=None, change_dict=None): headers = headers or {} request = FakeRequest(change_dict) request.uri = b"/change_hook/bitbucketcloud" request.method = b"POST" if isinstance(payload, text_type): payload = unicode2bytes(payload) request.content = BytesIO(payload) request.received_headers[b'Content-Type'] = _CT_JSON request.received_headers.update(headers) return request
def testMercurialWithNoCommitsPayload(self): change_dict = {'payload': [mercurialJsonNoCommitsPayload]} request = FakeRequest(change_dict) request.uri = '/change_hook/bitbucket' request.method = 'POST' yield request.test_render(self.change_hook) self.assertEqual(len(request.addedChanges), 0) self.assertEqual(request.written, 'no changes found')
def testMercurialWithNoCommitsPayload(self): change_dict = {'payload': [mercurialJsonNoCommitsPayload]} request = FakeRequest(change_dict) request.uri = '/change_hook/bitbucket' request.method = 'POST' yield request.test_render(self.change_hook) self.assertEqual(len(self.change_hook.master.addedChanges), 0) self.assertEqual(request.written, 'no changes found')
def testWithNoJson(self): request = FakeRequest() request.uri = '/change_hook/bitbucket' request.method = 'POST' yield request.test_render(self.change_hook) self.assertEqual(len(self.change_hook.master.addedChanges), 0) self.assertEqual(request.written, b'Error processing changes.') request.setResponseCode.assert_called_with( 500, b'Error processing changes.') self.assertEqual(len(self.flushLoggedErrors()), 1)
def testGitWithNoCommitsPayload(self): change_dict = {b'payload': [gitJsonNoCommitsPayload]} request = FakeRequest(change_dict) request.uri = b'/change_hook/bitbucket' request.method = b'POST' yield request.test_render(self.change_hook) self.assertEqual(len(self.change_hook.master.addedChanges), 0) self.assertEqual(request.written, b'no change found')
def testMercurialWithNoCommitsPayload(self): change_dict = {b'payload': [mercurialJsonNoCommitsPayload]} request = FakeRequest(change_dict) request.uri = b'/change_hook/bitbucket' request.method = b'POST' yield request.test_render(self.change_hook) self.assertEqual(len(self.change_hook.master.data.updates.changesAdded), 0) self.assertEqual(request.written, b'no change found')
def testWithNoJson(self): request = FakeRequest() request.uri = '/change_hook/bitbucket' request.method = 'POST' yield request.test_render(self.change_hook) self.assertEqual(len(self.change_hook.master.addedChanges), 0) self.assertEqual(request.written, 'Error processing changes.') request.setResponseCode.assert_called_with( 500, 'Error processing changes.') self.assertEqual(len(self.flushLoggedErrors()), 1)
def testGitWithNoCommitsPayload(self): change_dict = {b'payload': [gitJsonNoCommitsPayload]} request = FakeRequest(change_dict) request.uri = b'/change_hook/bitbucket' request.method = b'POST' yield request.test_render(self.change_hook) self.assertEqual(len(self.change_hook.master.data.updates.changesAdded), 0) self.assertEqual(request.written, b'no change found')
def testGitWithNoCommitsPayload(self): change_dict = {"payload": [gitJsonNoCommitsPayload]} request = FakeRequest(change_dict) request.uri = "/change_hook/bitbucket" request.method = "POST" yield request.test_render(self.change_hook) self.assertEqual(len(request.addedChanges), 0) self.assertEqual(request.written, "no changes found")
def testGitWithChangeAndProject(self): change_dict = {"payload": [gitJsonPayload], "project": ["project-name"]} request = FakeRequest(change_dict) request.uri = "/change_hook/bitbucket" request.method = "POST" yield request.test_render(self.change_hook) self.assertEqual(len(request.addedChanges), 1) commit = request.addedChanges[0] self.assertEqual(commit["project"], "project-name")
def testGitWithChangeAndProject(self): change_dict = { b'payload': [gitJsonPayload], b'project': [b'project-name']} request = FakeRequest(change_dict) request.uri = b'/change_hook/bitbucket' request.method = b'POST' yield request.test_render(self.change_hook) self.assertEqual(len(self.change_hook.master.data.updates.changesAdded), 1) commit = self.change_hook.master.data.updates.changesAdded[0] self.assertEqual(commit['project'], 'project-name')
def testGitWithChangeAndProject(self): change_dict = { 'payload': [gitJsonPayload], 'project': ['project-name']} request = FakeRequest(change_dict) request.uri = '/change_hook/bitbucket' request.method = 'POST' yield request.test_render(self.change_hook) self.assertEqual(len(request.addedChanges), 1) commit = request.addedChanges[0] self.assertEqual(commit['project'], 'project-name')
def _prepare_request(payload, headers=None): if headers is None: headers = { b"Content-type": b"application/x-www-form-urlencoded", b"Accept": b"text/plain"} else: headers = {} if b'comments' not in payload: payload[b'comments'] = b'test_www_hook_base submission' # Required field request = FakeRequest() request.uri = b"/change_hook/base" request.method = b"POST" request.args = payload request.received_headers.update(headers) return request
def _prepare_request(payload, headers=None): if headers is None: headers = { "Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"} else: headers = {} if 'comments' not in payload: payload['comments'] = 'test_www_hook_base submission' # Required field request = FakeRequest() request.uri = "/change_hook/base" request.method = "POST" request.args = payload request.received_headers.update(headers) return request
def testMercurialWithChange(self): change_dict = {"payload": [mercurialJsonPayload]} request = FakeRequest(change_dict) request.uri = "/change_hook/bitbucket" request.method = "POST" yield request.test_render(self.change_hook) self.assertEqual(len(request.addedChanges), 1) commit = request.addedChanges[0] self.assertEqual(commit["files"], ["somefile.py"]) self.assertEqual(commit["repository"], "https://bitbucket.org/marcus/project-x/") self.assertEqual(calendar.timegm(commit["when_timestamp"].utctimetuple()), 1338350336) self.assertEqual(commit["author"], "Marcus Bertrand <*****@*****.**>") self.assertEqual(commit["revision"], "620ade18607ac42d872b568bb92acaa9a28620e9") self.assertEqual(commit["comments"], "Added some more things to somefile.py") self.assertEqual(commit["branch"], "master") self.assertEqual( commit["revlink"], "https://bitbucket.org/marcus/project-x/" "620ade18607ac42d872b568bb92acaa9a28620e9" )