Skia has proposed merging ~hyask/autopkgtest-cloud:skia/improve_debugging into autopkgtest-cloud:master.
Requested reviews: Canonical's Ubuntu QA (canonical-ubuntu-qa) For more details, see: https://code.launchpad.net/~hyask/autopkgtest-cloud/+git/autopkgtest-cloud/+merge/461711 -- Your team Canonical's Ubuntu QA is requested to review the proposed merge of ~hyask/autopkgtest-cloud:skia/improve_debugging into autopkgtest-cloud:master.
diff --git a/charms/focal/autopkgtest-web/webcontrol/README.md b/charms/focal/autopkgtest-web/webcontrol/README.md index e489c2a..158b1f1 100644 --- a/charms/focal/autopkgtest-web/webcontrol/README.md +++ b/charms/focal/autopkgtest-web/webcontrol/README.md @@ -5,6 +5,10 @@ Install the dependencies: `sudo apt install python3-flask python3-distro-info libjs-jquery libjs-bootstrap` +*Optional*: `python3 -m pip install --user --break-system-packages flask-debugtoolbar` +This will automatically activate the Falsk DebugToolbar that brings valuable +information for developers. + Then simply run `./browse-test-py`, it will launch the flask application locally with some mocked data. As the import of `browse.cgi` is done trough `importlib`, changes in that file diff --git a/charms/focal/autopkgtest-web/webcontrol/browse-test.py b/charms/focal/autopkgtest-web/webcontrol/browse-test.py index a5c5b4e..30bbca2 100755 --- a/charms/focal/autopkgtest-web/webcontrol/browse-test.py +++ b/charms/focal/autopkgtest-web/webcontrol/browse-test.py @@ -1,9 +1,17 @@ #!/usr/bin/env python3 """Run browse app in local debug mode for testing.""" +import argparse import importlib from pathlib import Path +try: + from flask_debugtoolbar import DebugToolbarExtension + + activate_debugtoolbar = True +except ImportError: + activate_debugtoolbar = False + from helpers import tests, utils # import browse.cgi @@ -14,14 +22,58 @@ browse = importlib.util.module_from_spec(spec) loader.exec_module(browse) +def parse_args(): + parser = argparse.ArgumentParser(description="Run a local browse.cgi") + parser.add_argument( + "--database", + dest="database", + type=str, + ) + parser.add_argument( + "--running", + dest="running", + type=str, + ) + parser.add_argument( + "--queue", + dest="queue", + type=str, + ) + + return parser.parse_args() + + if __name__ == "__main__": - browse.db_con = utils.init_db(":memory:", check_same_thread=False) - with browse.db_con: - tests.populate_dummy_db(browse.db_con) + args = parse_args() + if args.database: + browse.db_con = utils.init_db( + args.database, + check_same_thread=False, + ) + else: + browse.db_con = utils.init_db( + ":memory:", + check_same_thread=False, + ) + with browse.db_con: + tests.populate_dummy_db(browse.db_con) + + if args.queue: + browse.AMQP_QUEUE_CACHE = Path(args.queue) + else: + browse.AMQP_QUEUE_CACHE = Path("/dev/shm/queue.json") + tests.populate_dummy_amqp_cache(browse.AMQP_QUEUE_CACHE) + + if args.running: + browse.RUNNING_CACHE = Path(args.running) + else: + browse.RUNNING_CACHE = Path("/dev/shm/running.json") + tests.populate_dummy_running_cache(browse.RUNNING_CACHE) + browse.swift_container_url = "swift-%s" - browse.AMQP_QUEUE_CACHE = Path("/dev/shm/queue.json") - tests.populate_dummy_amqp_cache(browse.AMQP_QUEUE_CACHE) - browse.RUNNING_CACHE = Path("/dev/shm/running.json") - tests.populate_dummy_running_cache(browse.RUNNING_CACHE) + if activate_debugtoolbar: + browse.app.debug = True + browse.app.config["SECRET_KEY"] = "AutopkgtestCloudSecretK3y" + toolbar = DebugToolbarExtension(browse.app) browse.app.run(host="0.0.0.0", debug=True)
-- Mailing list: https://launchpad.net/~canonical-ubuntu-qa Post to : canonical-ubuntu-qa@lists.launchpad.net Unsubscribe : https://launchpad.net/~canonical-ubuntu-qa More help : https://help.launchpad.net/ListHelp