diff --git a/clockwork_frontend_test/conftest.py b/clockwork_frontend_test/conftest.py index 1ef8bbcb..06d90863 100644 --- a/clockwork_frontend_test/conftest.py +++ b/clockwork_frontend_test/conftest.py @@ -1,2 +1,3 @@ """Import fixture fake data so that we can use it in tests from this module.""" + from test_common.fake_data import fake_data diff --git a/clockwork_frontend_test/test_dashboard.py b/clockwork_frontend_test/test_dashboard.py index 69620e14..d0e63588 100644 --- a/clockwork_frontend_test/test_dashboard.py +++ b/clockwork_frontend_test/test_dashboard.py @@ -28,7 +28,7 @@ job["slurm"]["job_state"].lower(), get_default_display_date(job["slurm"]["submit_time"]), get_default_display_date(job["slurm"]["start_time"]), - get_default_display_date(job["slurm"]["end_time"]) + get_default_display_date(job["slurm"]["end_time"]), # Then, there is the "Links" column: we don't add content yet, # but here is a placeholder for future testing ] diff --git a/clockwork_frontend_test/test_jobs_search.py b/clockwork_frontend_test/test_jobs_search.py index 9150b259..1a7a57e4 100644 --- a/clockwork_frontend_test/test_jobs_search.py +++ b/clockwork_frontend_test/test_jobs_search.py @@ -20,9 +20,11 @@ JOBS_SEARCH_DEFAULT_TABLE.append( [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] ) @@ -30,9 +32,11 @@ ALL_JOBS = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted_jobs @@ -125,9 +129,11 @@ def test_filter_by_user_only_me(page: Page): expected_results = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted_jobs @@ -186,9 +192,11 @@ def test_filter_by_user_other_user(page: Page): expected_results = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted_jobs @@ -241,9 +249,11 @@ def test_filter_by_cluster_except_one(page: Page): expected_results = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted_jobs @@ -304,9 +314,11 @@ def test_filter_by_cluster_except_two(page: Page): expected_results = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted_jobs @@ -366,9 +378,11 @@ def test_filter_by_status_except_one(page: Page): expected_results = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted_jobs @@ -429,9 +443,11 @@ def test_filter_by_status_except_two(page: Page): expected_results = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted_jobs @@ -499,9 +515,11 @@ def test_multiple_filters(page: Page): expected_results = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted_jobs @@ -548,9 +566,11 @@ def test_filter_by_job_array(page: Page): expected_results = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted_jobs @@ -600,9 +620,11 @@ def test_filter_by_job_user_props(page: Page): expected_results = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted_jobs @@ -680,9 +702,11 @@ def test_special_user_props(page: Page, prop_name: str, title: str): expected_results = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted_jobs @@ -732,9 +756,11 @@ def test_jobs_table_sorting_by_cluster(page: Page): expected_content = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted( @@ -749,9 +775,11 @@ def test_jobs_table_sorting_by_job_id(page: Page): expected_content = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted( @@ -769,9 +797,11 @@ def test_jobs_table_sorting_by_job_id_ascending(page: Page): expected_content = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted(fake_data["jobs"], key=lambda j: j["slurm"]["job_id"]) @@ -786,9 +816,11 @@ def test_jobs_table_sorting_by_end_time(page: Page): expected_content = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted( diff --git a/clockwork_frontend_test/test_jobs_search_for_student06.py b/clockwork_frontend_test/test_jobs_search_for_student06.py index d34c5bee..03b974e5 100644 --- a/clockwork_frontend_test/test_jobs_search_for_student06.py +++ b/clockwork_frontend_test/test_jobs_search_for_student06.py @@ -26,9 +26,11 @@ MILA_JOBS.append( [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] ) @@ -273,9 +275,11 @@ def test_filter_by_status_except_one(page: Page): expected_results = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted_mila_jobs @@ -335,9 +339,11 @@ def test_filter_by_status_except_two(page: Page): expected_results = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted_mila_jobs @@ -404,9 +410,11 @@ def test_multiple_filters(page: Page): expected_results = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted_jobs @@ -478,9 +486,11 @@ def test_jobs_table_sorting_by_end_time(page: Page): expected_results = [ [ job["slurm"]["cluster_name"], - job["cw"]["mila_email_username"].replace("@", " @") - if job["cw"]["mila_email_username"] is not None - else "", + ( + job["cw"]["mila_email_username"].replace("@", " @") + if job["cw"]["mila_email_username"] is not None + else "" + ), job["slurm"]["job_id"], ] for job in sorted( diff --git a/clockwork_tools/clockwork_tools/client.py b/clockwork_tools/clockwork_tools/client.py index a5511f3a..4d150392 100644 --- a/clockwork_tools/clockwork_tools/client.py +++ b/clockwork_tools/clockwork_tools/client.py @@ -127,7 +127,7 @@ def jobs_list( """ endpoint = "api/v1/clusters/jobs/list" params = {} - for (k, a) in [ + for k, a in [ ("username", username), ("relative_time", relative_time), ("cluster_name", cluster_name), @@ -154,7 +154,7 @@ def jobs_one(self, job_id: str = None, cluster_name: str = None) -> dict[str, an """ endpoint = "api/v1/clusters/jobs/one" params = {} - for (k, a) in [ + for k, a in [ ("job_id", job_id), ("cluster_name", cluster_name), ]: @@ -231,7 +231,7 @@ def nodes_list(self, cluster_name: str = None) -> list[dict[str, any]]: """ endpoint = "api/v1/clusters/nodes/list" params = {} - for (k, a) in [ + for k, a in [ ("cluster_name", cluster_name), ]: if a is not None: @@ -258,7 +258,7 @@ def nodes_one( """ endpoint = "api/v1/clusters/nodes/one" params = {} - for (k, a) in [ + for k, a in [ ("node_name", node_name), ("cluster_name", cluster_name), ]: @@ -337,7 +337,7 @@ def _create_params_for_request(self, target_self: bool, **kwargs): preparing arguments to pass to a request in the parent class. """ params = {} - for (k, a) in kwargs.items(): + for k, a in kwargs.items(): if a is not None: params[k] = a elif target_self and k in self.this_specific_slurm_job_params: diff --git a/clockwork_tools_test/conftest.py b/clockwork_tools_test/conftest.py index 162068f7..7ab22c3c 100644 --- a/clockwork_tools_test/conftest.py +++ b/clockwork_tools_test/conftest.py @@ -20,7 +20,7 @@ def config(): "email": os.environ["clockwork_tools_test_EMAIL"], "clockwork_api_key": os.environ["clockwork_tools_test_CLOCKWORK_API_KEY"], } - for (k, v) in config.items(): + for k, v in config.items(): assert v, f"Missing value in environment for clockwork_tools configuration {k}." return config diff --git a/clockwork_tools_test/test_mt_nodes.py b/clockwork_tools_test/test_mt_nodes.py index 0f29c541..cc872b8b 100644 --- a/clockwork_tools_test/test_mt_nodes.py +++ b/clockwork_tools_test/test_mt_nodes.py @@ -79,7 +79,7 @@ def test_get_nodes_with_filter(mtclient, fake_data, cluster_name): ) # compare all the dicts one by one - for (D_node, D_original_node) in zip(LD_nodes, LD_original_nodes): + for D_node, D_original_node in zip(LD_nodes, LD_original_nodes): for k1 in D_original_node: assert k1 in ["slurm", "cw"] assert k1 in D_node, f"{D_node.keys()}" diff --git a/clockwork_web/browser_routes/clusters.py b/clockwork_web/browser_routes/clusters.py index 06e227d8..6d80cfe4 100644 --- a/clockwork_web/browser_routes/clusters.py +++ b/clockwork_web/browser_routes/clusters.py @@ -1,6 +1,7 @@ """ Browser routes dealing with the "cluster" entity """ + import logging from flask import Blueprint, request diff --git a/clockwork_web/browser_routes/status.py b/clockwork_web/browser_routes/status.py index b6ffa24a..55518de2 100644 --- a/clockwork_web/browser_routes/status.py +++ b/clockwork_web/browser_routes/status.py @@ -1,6 +1,7 @@ """ Browser routes dealing with the "cluster" entity """ + import logging from flask import Blueprint, request diff --git a/clockwork_web/core/clusters_helper.py b/clockwork_web/core/clusters_helper.py index 3398315a..a6c705d8 100644 --- a/clockwork_web/core/clusters_helper.py +++ b/clockwork_web/core/clusters_helper.py @@ -1,6 +1,7 @@ """ Helper function regarding the clusters. """ + # Import the functions from clockwork_web.config from clockwork_web.config import get_config, register_config diff --git a/clockwork_web/core/job_user_props_helper.py b/clockwork_web/core/job_user_props_helper.py index 6089678c..a4a1e50e 100644 --- a/clockwork_web/core/job_user_props_helper.py +++ b/clockwork_web/core/job_user_props_helper.py @@ -1,4 +1,5 @@ """Internal functions to manage job-user props.""" + from ..db import get_db import json diff --git a/clockwork_web/core/users_helper.py b/clockwork_web/core/users_helper.py index 05a519f4..303fdc1f 100644 --- a/clockwork_web/core/users_helper.py +++ b/clockwork_web/core/users_helper.py @@ -591,6 +591,7 @@ def render_template_with_user_settings(template_name_or_list, **context): ) # Get cluster status (if jobs are old and cluster has error). + """ for cluster_name in context["clusters"]: # Cluster error cannot yet be checked, so # cluster_has_error is always False for now. @@ -599,6 +600,7 @@ def render_template_with_user_settings(template_name_or_list, **context): "jobs_are_old": _jobs_are_old(cluster_name), "cluster_has_error": cluster_has_error, } + """ return render_template(template_name_or_list, **context) diff --git a/clockwork_web/server_app.py b/clockwork_web/server_app.py index 6f396898..7255b2cc 100644 --- a/clockwork_web/server_app.py +++ b/clockwork_web/server_app.py @@ -3,7 +3,6 @@ in the right place. """ - # export FLASK_RUN_PORT=5555 # export FLASK_DEBUG=1 # export FLASK_APP=main.py @@ -62,7 +61,7 @@ def create_app(extra_config: dict): app = Flask(__name__) app.secret_key = get_config("flask.secret_key") - for (k, v) in extra_config.items(): + for k, v in extra_config.items(): app.config[k] = v app.register_blueprint(nodes_routes_flask_api, url_prefix="/nodes") diff --git a/clockwork_web/templates/base.html b/clockwork_web/templates/base.html index 9303a210..ce3f6e20 100644 --- a/clockwork_web/templates/base.html +++ b/clockwork_web/templates/base.html @@ -231,24 +231,28 @@