Example #1
0
    def request_fake_pushdata(self):
        first_push = self.make_push_dict(self.push_data[0])
        first_request = self.make_request_dict(self.request_data[0])
        first_request["tags"] = "buildbot"
        second_request = self.make_request_dict(self.request_data[1])

        # Prepare pushdata the way PushServlet accepts. This is the
        # format API also replies to pushdata requests.
        pushinfo = util.push_to_jsonable(first_push)
        requests = {
            first_request["state"]: [util.request_to_jsonable(first_request)],
            "all": [util.request_to_jsonable(first_request)],
        }
        available_requests = [util.request_to_jsonable(second_request)]

        pushdata = [pushinfo, requests, available_requests]

        with contextlib.nested(
            mock.patch.object(PushServlet, "get_current_user", return_value="testuser"),
            mock.patch.object(PushServlet, "async_api_call", side_effect=self.mocked_api_call),
            mock.patch.object(self, "api_response", return_value=json.dumps(pushdata)),
        ):
            self.fetch("/push?id=%d" % first_push["id"])
            response = self.wait()
            yield pushdata, response
Example #2
0
    def request_fake_pushdata(self):
        first_push = self.make_push_dict(self.push_data[0])
        first_request = self.make_request_dict(self.request_data[0])
        first_request['tags'] = "buildbot"
        second_request = self.make_request_dict(self.request_data[1])

        # Prepare pushdata the way PushServlet accepts. This is the
        # format API also replies to pushdata requests.
        pushinfo = util.push_to_jsonable(first_push)
        requests = {
            first_request['state']: [util.request_to_jsonable(first_request)],
            'all': [util.request_to_jsonable(first_request)]
        }
        available_requests = [util.request_to_jsonable(second_request)]

        pushdata = [pushinfo, requests, available_requests]

        with contextlib.nested(
                mock.patch.object(PushServlet,
                                  "get_current_user",
                                  return_value="testuser"),
                mock.patch.object(PushServlet,
                                  "async_api_call",
                                  side_effect=self.mocked_api_call),
                mock.patch.object(self,
                                  "api_response",
                                  return_value=json.dumps(pushdata))):
            self.fetch("/push?id=%d" % first_push['id'])
            response = self.wait()
            yield pushdata, response
Example #3
0
    def _on_PUSHES_db_response(self, success, db_results):
        self.check_db_results(success, db_results)

        push_results, last_push_results = db_results
        push_results = [
            util.push_to_jsonable(result) for result in push_results
        ]
        return self._xjson([push_results, last_push_results.first()[0]])
Example #4
0
    def _on_PUSH_db_response(self, success, db_results):
        if not success:
            return self.send_error(500)

        push = db_results.first()
        if not push:
            return self.send_error(404)
        else:
            return self._xjson(util.push_to_jsonable(push))
Example #5
0
    def _on_PUSH_db_response(self, success, db_results):
        if not success:
            return self.send_error(500)

        push = db_results.first()
        if not push:
            return self.send_error(404)
        else:
            return self._xjson(util.push_to_jsonable(push))
Example #6
0
    def _on_PUSHES_db_response(self, success, db_results):
        self.check_db_results(success, db_results)

        push_results, last_push_results = db_results

        def accepting_first(current, previous):
            # swap only if current push is accepting and previous push not accepting
            if current['state'] == 'accepting' and previous['state'] != 'accepting':
                return -1
            return 0

        push_results = sorted([util.push_to_jsonable(result) for result in push_results], cmp=accepting_first)
        return self._xjson([push_results, last_push_results.first()[0]])
Example #7
0
    def _on_PUSHES_db_response(self, success, db_results):
        self.check_db_results(success, db_results)

        push_results, last_push_results = db_results

        def accepting_first(current, previous):
            # swap only if current push is accepting and previous push not accepting
            if current['state'] == 'accepting' and previous[
                    'state'] != 'accepting':
                return -1
            return 0

        push_results = sorted(
            [util.push_to_jsonable(result) for result in push_results],
            cmp=accepting_first)
        return self._xjson([push_results, last_push_results.first()[0]])
Example #8
0
    def _on_PUSHDATA_db_response(self, success, db_results):
        self.check_db_results(success, db_results)

        push_info, push_contents, available_requests = db_results
        push_info = push_info.first()
        if not push_info:
            return self.send_error(404)
        push_info = util.push_to_jsonable(push_info)

        available_requests = [util.request_to_jsonable(r) for r in available_requests.fetchall()]
        push_requests = {}
        for request in push_contents:
            request = util.request_to_jsonable(request)
            push_requests.setdefault(request['state'], []).append(request)
            push_requests.setdefault('all', []).append(request)

        return self._xjson([push_info, push_requests, available_requests])
Example #9
0
    def _on_PUSHDATA_db_response(self, success, db_results):
        self.check_db_results(success, db_results)

        push_info, push_contents, available_requests = db_results
        push_info = push_info.first()
        if not push_info:
            return self.send_error(404)
        push_info = util.push_to_jsonable(push_info)

        available_requests = [
            util.request_to_jsonable(r) for r in available_requests.fetchall()
        ]
        push_requests = {}
        for request in push_contents:
            request = util.request_to_jsonable(request)
            push_requests.setdefault(request['state'], []).append(request)
            push_requests.setdefault('all', []).append(request)

        return self._xjson([push_info, push_requests, available_requests])
Example #10
0
    def _on_PUSHBYREQUEST_db_response(self, success, db_results):
        self.check_db_results(success, db_results)

        push = db_results.first()
        return self._xjson(util.push_to_jsonable(push))
Example #11
0
    def _on_PUSHBYREQUEST_db_response(self, success, db_results):
        self.check_db_results(success, db_results)

        push = db_results.first()
        return self._xjson(util.push_to_jsonable(push))
Example #12
0
    def _on_PUSHES_db_response(self, success, db_results):
        self.check_db_results(success, db_results)

        push_results, last_push_results = db_results
        push_results = [util.push_to_jsonable(result) for result in push_results]
        return self._xjson([push_results, last_push_results.first()[0]])