Coverage for portality / view / testdrive.py: 47%
34 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-04 09:41 +0100
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-04 09:41 +0100
1from flask import Blueprint, make_response, abort, url_for, request, render_template
2from flask_login import current_user, login_required
3from doajtest.testdrive.factory import TestFactory
4from portality import util
5from portality.core import app
6import json
7from urllib import parse
9# ~~Testdrive:Blueprint->$Testdrive:Feature~~
10blueprint = Blueprint('testdrive', __name__)
12@blueprint.route('/<test_id>')
13@util.jsonp
14@login_required
15def testdrive(test_id):
16 # if not app.config.get("DEBUG", False):
17 # abort(404)
18 test = TestFactory.get(test_id)
19 if not test:
20 abort(404)
21 params = test.setup()
22 teardown = app.config.get("BASE_URL") + url_for("testdrive.teardown", test_id=test_id) + "?d=" + parse.quote_plus(json.dumps(params))
23 params["teardown"] = teardown
25 if request.values.get("json"):
26 resp = make_response(json.dumps(params))
27 resp.mimetype = "application/json"
28 return resp
30 return render_template("dev/testdrive/testdrive.html", params=params, name=test_id)
33@blueprint.route("/<test_id>/teardown")
34@util.jsonp
35@login_required
36def teardown(test_id):
37 test = TestFactory.get(test_id)
38 if not test:
39 abort(404)
40 result = test.teardown(json.loads(request.values.get("d")))
41 resp = make_response(json.dumps(result))
42 resp.mimetype = "application/json"
43 return resp