def start_tests(request): ts = get_object_or_404(TestSuite, slug=request.POST.get('name', None)) url = request.POST.get('url') or ts.default_url token_is_valid = False if request.POST.get('token', None): if Token.is_valid(request.POST['token'], ts): token_is_valid = True if not token_is_valid: raise InvalidToken('Invalid or expired token sent to start_tests. ' 'Contact an administrator.') work.views.collect_garbage() # TODO(kumar) don't start a test suite if it's already running. test = TestRun(test_suite=ts, url=url) test.save() workers = [] qs = Worker.objects.filter(is_alive=True) browsers = request.POST.get('browsers', None) if not browsers: raise ValueError("No browsers were specified in GET request") for worker in get_workers(qs, browsers): # TODO(kumar) add options to ignore workers for # unwanted browsers perhaps? worker.run_test(test) workers.append(worker) return {'test_run_id': test.id, 'workers': [{'worker_id': w.id, 'user_agent': w.user_agent} for w in workers]}
def start_tests(request): ts = get_object_or_404(TestSuite, slug=request.POST.get('name', None)) url = request.POST.get('url') or ts.default_url token_is_valid = False if request.POST.get('token', None): if Token.is_valid(request.POST['token'], ts): token_is_valid = True if not token_is_valid: raise InvalidToken('Invalid or expired token sent to start_tests. ' 'Contact an administrator.') work.views.collect_garbage() # TODO(kumar) don't start a test suite if it's already running. test = TestRun(test_suite=ts, url=url) test.save() workers = [] qs = Worker.objects.filter(is_alive=True) browsers = request.POST.get('browsers', None) if not browsers: raise ValueError("No browsers were specified in GET request") for worker in get_workers(qs, browsers): # TODO(kumar) add options to ignore workers for # unwanted browsers perhaps? worker.run_test(test) workers.append(worker) return {'test_run_id': test.id, 'workers': [{'worker_id': w.id, 'user_agent': w.user_agent} for w in workers]}