예제 #1
0
    def post(self, team, project_name):
        base_url = self.get_argument("base_url").strip()
        branch = self.get_argument("branch", strip=True, default=None)
        simple = self.get_argument("simple", "false") == "true"

        if not base_url or not URL_RE.match(base_url):
            self.set_status(400)
            self.finish()
            return

        project = [project for project in team.projects if project.name.lower().strip() == project_name.lower().strip()] or None
        if not project:
            self.set_status(404)
            self.finish()
            return

        project = project[0]

        test = LoadTest(
            status="Scheduled",
            base_url=base_url,
            team=team,
            created_by=self.current_user,
            project_name=project.name,
            simple=simple
        )

        if branch:
            test.git_branch = branch

        test.save()

        self.application.resq.enqueue(WorkerJob, str(test.uuid))

        self.set_status(200)
        self.write("OK")
        self.finish()