From 6457b05bfbe101efc15b92f963fa90cc8602679a Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Thu, 3 Sep 2026 15:32:14 -0400 Subject: [PATCH 01/18] update --- coverage.json | 4350 ++++++++++++++++- package.json | 2 +- resources/personal.js | 14 +- src/ims/sso/browser/login.py | 1 - .../templates/usergroups_usersoverview.pt | 40 +- .../profiles/default/registry/settings.xml | 2 +- 6 files changed, 4381 insertions(+), 28 deletions(-) diff --git a/coverage.json b/coverage.json index 95e8885..cc2622f 100644 --- a/coverage.json +++ b/coverage.json @@ -1 +1,4349 @@ -{"meta": {"format": 3, "version": "7.14.0", "timestamp": "2026-06-24T16:19:05.265852", "branch_coverage": false, "show_contexts": false}, "files": {"src\\ims\\sso\\__init__.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"initialize": {"executed_lines": [9, 10], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 8}, "": {"executed_lines": [1, 3, 5, 8], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\browser\\__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\browser\\cron.py": {"executed_lines": [1, 2, 3, 4, 6, 9, 16, 17, 18, 19, 20, 21, 22, 23], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"PeriodicTasks.__call__": {"executed_lines": [17, 18, 19, 20, 21, 22, 23], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 16}, "": {"executed_lines": [1, 2, 3, 4, 6, 9, 16], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PeriodicTasks": {"executed_lines": [17, 18, 19, 20, 21, 22, 23], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 9}, "": {"executed_lines": [1, 2, 3, 4, 6, 9, 16], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\browser\\login.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 19, 22, 23, 24, 27, 28, 29, 30, 32, 33, 34, 35, 42, 45, 46, 47, 48, 49, 51, 52, 53, 55, 56, 58, 59, 60, 61, 62, 63, 64, 65, 67, 68, 69, 71, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 87, 88, 89, 90, 91, 92, 93, 95, 97, 98, 100, 101, 103, 104, 105, 106, 114, 116, 119, 120, 121, 122, 123, 124, 129, 132, 133, 134, 135, 136, 137, 140, 141, 142, 145, 146, 148, 150, 151, 157, 158, 164, 171, 172, 173, 174, 176, 177, 178, 180, 181, 182, 186, 187, 188, 189, 191, 192, 193, 200, 201, 207, 213, 214, 217, 218, 219, 220, 222, 223, 224, 226, 227, 228, 229, 230, 231, 236, 237, 238, 239, 240, 241, 243, 246, 247, 249, 257], "summary": {"covered_lines": 150, "num_statements": 150, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"RedirectLogin.__call__": {"executed_lines": [23, 24], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 22}, "SsoLogout.sso": {"executed_lines": [30], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 29}, "SsoLogout.__call__": {"executed_lines": [33, 34, 35, 42], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 32}, "SsoLinkaccount.__init__": {"executed_lines": [48, 49], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 47}, "SsoLinkaccount.publishTraverse": {"executed_lines": [52, 53], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 51}, "SsoLinkaccount.__call__": {"executed_lines": [56, 58, 59, 60, 61, 62, 63, 64, 65, 67, 68, 69, 71, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 87, 88, 89, 90, 91, 92, 93, 95], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 55}, "SsoLinkaccount.disallowed": {"executed_lines": [98], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 97}, "SsoLinkaccount.success": {"executed_lines": [101], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 100}, "SsoLinkaccount.invalid_key": {"executed_lines": [104, 105, 106, 114, 116], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 103}, "LoginUrl.__call__": {"executed_lines": [121, 122, 123, 124, 129], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 120}, "LoginCondition.__call__": {"executed_lines": [134, 135, 136, 137], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 133}, "LogoutUrl.__call__": {"executed_lines": [142], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 141}, "RequireLoginView.__call__": {"executed_lines": [148, 150, 151, 157, 158, 164], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 146}, "RequestReactivation.render": {"executed_lines": [173, 174, 176, 177, 178, 180, 181, 182, 186, 187, 188, 189, 191, 192, 193, 200, 201, 207, 213, 214], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 172}, "ReactivateUserAccount.__init__": {"executed_lines": [219, 220], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 218}, "ReactivateUserAccount.publishTraverse": {"executed_lines": [223, 224], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 222}, "ReactivateUserAccount.__call__": {"executed_lines": [227, 228, 229, 230, 231, 236, 237, 238, 239, 240, 241, 243, 246, 247, 249, 257], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 226}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 19, 22, 27, 28, 29, 32, 45, 46, 47, 51, 55, 97, 100, 103, 119, 120, 132, 133, 140, 141, 145, 146, 171, 172, 217, 218, 222, 226], "summary": {"covered_lines": 43, "num_statements": 43, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"RedirectLogin": {"executed_lines": [23, 24], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 19}, "SsoLogout": {"executed_lines": [30, 33, 34, 35, 42], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 27}, "SsoLinkaccount": {"executed_lines": [48, 49, 52, 53, 56, 58, 59, 60, 61, 62, 63, 64, 65, 67, 68, 69, 71, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 87, 88, 89, 90, 91, 92, 93, 95, 98, 101, 104, 105, 106, 114, 116], "summary": {"covered_lines": 44, "num_statements": 44, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 46}, "LoginUrl": {"executed_lines": [121, 122, 123, 124, 129], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 119}, "LoginCondition": {"executed_lines": [134, 135, 136, 137], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 132}, "LogoutUrl": {"executed_lines": [142], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 140}, "RequireLoginView": {"executed_lines": [148, 150, 151, 157, 158, 164], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 145}, "RequestReactivation": {"executed_lines": [173, 174, 176, 177, 178, 180, 181, 182, 186, 187, 188, 189, 191, 192, 193, 200, 201, 207, 213, 214], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 171}, "ReactivateUserAccount": {"executed_lines": [219, 220, 223, 224, 227, 228, 229, 230, 231, 236, 237, 238, 239, 240, 241, 243, 246, 247, 249, 257], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 217}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 19, 22, 27, 28, 29, 32, 45, 46, 47, 51, 55, 97, 100, 103, 119, 120, 132, 133, 140, 141, 145, 146, 171, 172, 217, 218, 222, 226], "summary": {"covered_lines": 43, "num_statements": 43, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\browser\\password.py": {"executed_lines": [1, 2, 5, 6, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"ChangePassword.__call__": {"executed_lines": [9], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 8}, "": {"executed_lines": [1, 2, 5, 6, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ChangePassword": {"executed_lines": [9], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 5}, "": {"executed_lines": [1, 2, 5, 6, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\browser\\register.py": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 17, 18, 19, 20, 21, 23, 24, 25, 27, 28, 30, 32, 33, 34, 39, 40, 41, 42, 43, 44, 45, 47, 48, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 64, 66, 67, 68, 69, 70, 71, 73, 78, 79, 81, 82, 83, 84, 85, 86, 88, 89, 95, 101, 102, 103, 104, 105, 107, 108, 111, 113, 115, 119, 120, 121, 123, 124, 126, 128, 129, 131, 133, 135, 138, 139, 140, 144, 146, 147, 148, 149, 151, 155, 156, 158, 159, 160, 161], "summary": {"covered_lines": 100, "num_statements": 108, "percent_covered": 92.5925925925926, "percent_covered_display": "93", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 92.5925925925926, "percent_statements_covered_display": "93"}, "missing_lines": [116, 117, 125, 136, 150, 152, 153, 154], "excluded_lines": [], "functions": {"AddUserForm.sso": {"executed_lines": [25], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 24}, "AddUserForm.sso_configured": {"executed_lines": [28], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 27}, "AddUserForm.updateFields": {"executed_lines": [32, 33, 34, 39, 40, 41, 42, 43, 44, 45], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 30}, "AddUserForm.updateWidgets": {"executed_lines": [48, 52, 53, 54, 55], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 47}, "AddUserForm.updateActions": {"executed_lines": [58, 59, 60, 61, 62], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 57}, "AddUserForm.generate_user_id": {"executed_lines": [66, 67, 68, 69, 70, 71], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 64}, "AddUserForm.handle_join_success": {"executed_lines": [78, 79, 81, 82, 83, 84, 85, 86, 88, 89], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 73}, "AddUserForm.applyProperties": {"executed_lines": [101, 102, 103, 104, 105], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 95}, "AddUserForm.action_join": {"executed_lines": [111, 113, 115, 119, 120, 121, 123, 128, 129, 131, 133, 135, 138, 139, 140, 144, 146, 147, 148, 149, 151, 155, 156], "summary": {"covered_lines": 23, "num_statements": 30, "percent_covered": 76.66666666666667, "percent_covered_display": "77", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 76.66666666666667, "percent_statements_covered_display": "77"}, "missing_lines": [116, 117, 136, 150, 152, 153, 154], "excluded_lines": [], "start_line": 108}, "AddUserForm.action_join.wrap_name": {"executed_lines": [124, 126], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [125], "excluded_lines": [], "start_line": 123}, "AddUserForm.handleCancel": {"executed_lines": [160, 161], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 159}, "": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 17, 18, 19, 20, 21, 23, 24, 27, 30, 47, 57, 64, 73, 95, 107, 108, 158, 159], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"AddUserForm": {"executed_lines": [25, 28, 32, 33, 34, 39, 40, 41, 42, 43, 44, 45, 48, 52, 53, 54, 55, 58, 59, 60, 61, 62, 66, 67, 68, 69, 70, 71, 78, 79, 81, 82, 83, 84, 85, 86, 88, 89, 101, 102, 103, 104, 105, 111, 113, 115, 119, 120, 121, 123, 124, 126, 128, 129, 131, 133, 135, 138, 139, 140, 144, 146, 147, 148, 149, 151, 155, 156, 160, 161], "summary": {"covered_lines": 70, "num_statements": 78, "percent_covered": 89.74358974358974, "percent_covered_display": "90", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 89.74358974358974, "percent_statements_covered_display": "90"}, "missing_lines": [116, 117, 125, 136, 150, 152, 153, 154], "excluded_lines": [], "start_line": 17}, "": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 17, 18, 19, 20, 21, 23, 24, 27, 30, 47, 57, 64, 73, 95, 107, 108, 158, 159], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\browser\\unauthorized.py": {"executed_lines": [1, 2, 5, 6, 7], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"Unauthorized.email_from_address": {"executed_lines": [7], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 6}, "": {"executed_lines": [1, 2, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"Unauthorized": {"executed_lines": [7], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 5}, "": {"executed_lines": [1, 2, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\browser\\usergroups_usersoverview.py": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 18, 25, 26, 27, 28, 31, 32, 33, 34, 36, 37, 38, 40, 41, 43, 44, 46, 47, 49, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 65, 66, 68, 70, 72, 73, 74, 75, 76, 77, 78, 80, 82, 84, 85, 86, 87, 88, 90, 91, 92, 94, 95, 96, 97, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, 113, 115, 116, 117, 118, 121, 123, 124, 125, 127, 130, 131, 136, 140, 143, 144, 145, 146, 148, 150, 151, 152, 153, 154, 155, 156, 157, 158, 163, 164, 166, 170, 172, 173, 174, 175, 177, 178, 180, 182, 183, 184, 186, 188, 189, 191, 192, 193, 196, 198, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 214, 215, 218, 219, 221, 222, 223, 224, 225, 226, 227, 235, 237, 239, 240, 242, 243, 251, 252, 258, 259, 260, 261, 262, 270, 272, 274, 275, 276, 277, 278, 279, 280, 282, 283, 285, 286, 288, 289, 291, 292, 293, 294, 295, 297, 298, 304, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], "summary": {"covered_lines": 198, "num_statements": 199, "percent_covered": 99.49748743718592, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 2, "percent_statements_covered": 99.49748743718592, "percent_statements_covered_display": "99"}, "missing_lines": [108], "excluded_lines": [62, 63], "functions": {"UsersOverviewControlPanel.sso": {"executed_lines": [34], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 33}, "UsersOverviewControlPanel.submitted": {"executed_lines": [38], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 37}, "UsersOverviewControlPanel.can_change_roles": {"executed_lines": [41], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 40}, "UsersOverviewControlPanel.uses_expiry": {"executed_lines": [44], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 43}, "UsersOverviewControlPanel.expiry_days": {"executed_lines": [47], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 46}, "UsersOverviewControlPanel.emails": {"executed_lines": [50, 51, 52, 53, 54, 55], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 49}, "UsersOverviewControlPanel.portal_roles": {"executed_lines": [59, 60, 61, 65, 66], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [62, 63], "start_line": 58}, "UsersOverviewControlPanel.print_expiry": {"executed_lines": [70, 72, 73, 74, 75, 76, 77, 78, 80], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 68}, "UsersOverviewControlPanel.doSearch": {"executed_lines": [84, 85, 86, 87, 88, 90, 91, 92, 94, 95, 96, 97, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, 113, 115, 116, 117, 118, 121, 123, 124, 125, 127, 130, 131, 136, 140, 143, 144, 145, 146, 148], "summary": {"covered_lines": 44, "num_statements": 45, "percent_covered": 97.77777777777777, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.77777777777777, "percent_statements_covered_display": "98"}, "missing_lines": [108], "excluded_lines": [], "start_line": 82}, "UsersOverviewControlPanel.validate_emails": {"executed_lines": [151, 152, 153, 154, 155, 156, 157, 158, 163, 164], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 150}, "UsersOverviewControlPanel.manageUser": {"executed_lines": [170, 172, 173, 174, 175, 177, 178, 180, 182, 183, 184, 186, 188, 189, 191, 192, 193, 196, 198, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 214, 215, 218, 219, 221, 222, 223, 224, 225, 226, 227, 235, 237, 239, 240, 242, 243, 251, 252, 258, 259, 260, 261, 262, 270], "summary": {"covered_lines": 54, "num_statements": 54, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 166}, "UsersOverviewControlPanel.deleteMembers": {"executed_lines": [274, 275, 276, 277, 278, 279, 280], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 272}, "UsersOverviewControlPanel.active_status": {"executed_lines": [283], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 282}, "UsersOverviewControlPanel.not_active": {"executed_lines": [286], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 285}, "UsersOverviewControlPanel.active_options": {"executed_lines": [289], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 288}, "UsersOverviewControlPanel.active_search_options": {"executed_lines": [292, 293, 294, 295, 297, 298, 304], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 291}, "UsersOverviewControlPanel.datatables": {"executed_lines": [307, 308, 309, 310, 311, 312, 313, 314, 315], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 306}, "": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 18, 25, 26, 27, 28, 31, 32, 33, 36, 37, 40, 43, 46, 49, 57, 58, 68, 82, 150, 166, 272, 282, 285, 288, 291, 306], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"UsersOverviewControlPanel": {"executed_lines": [34, 38, 41, 44, 47, 50, 51, 52, 53, 54, 55, 59, 60, 61, 65, 66, 70, 72, 73, 74, 75, 76, 77, 78, 80, 84, 85, 86, 87, 88, 90, 91, 92, 94, 95, 96, 97, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, 113, 115, 116, 117, 118, 121, 123, 124, 125, 127, 130, 131, 136, 140, 143, 144, 145, 146, 148, 151, 152, 153, 154, 155, 156, 157, 158, 163, 164, 170, 172, 173, 174, 175, 177, 178, 180, 182, 183, 184, 186, 188, 189, 191, 192, 193, 196, 198, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 214, 215, 218, 219, 221, 222, 223, 224, 225, 226, 227, 235, 237, 239, 240, 242, 243, 251, 252, 258, 259, 260, 261, 262, 270, 274, 275, 276, 277, 278, 279, 280, 283, 286, 289, 292, 293, 294, 295, 297, 298, 304, 307, 308, 309, 310, 311, 312, 313, 314, 315], "summary": {"covered_lines": 159, "num_statements": 160, "percent_covered": 99.375, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 2, "percent_statements_covered": 99.375, "percent_statements_covered_display": "99"}, "missing_lines": [108], "excluded_lines": [62, 63], "start_line": 31}, "": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 18, 25, 26, 27, 28, 31, 32, 33, 36, 37, 40, 43, 46, 49, 57, 58, 68, 82, 150, 166, 272, 282, 285, 288, 291, 306], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\browser\\viewlets.py": {"executed_lines": [1, 2, 3, 4, 6, 9, 12, 14, 15, 16, 18, 19, 21, 22, 24, 26, 28, 30, 32, 34, 36, 39, 40, 41, 42, 43, 45, 47, 48, 49, 50, 51, 52, 53], "summary": {"covered_lines": 34, "num_statements": 36, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 94.44444444444444, "percent_statements_covered_display": "94"}, "missing_lines": [44, 55], "excluded_lines": [], "functions": {"SsoWarningsViewlet.sso": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "SsoWarningsViewlet.status": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "SsoWarningsViewlet.reactivation_url": {"executed_lines": [22], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 21}, "SsoWarningsViewlet.show_warning": {"executed_lines": [26], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 24}, "SsoWarningsViewlet.is_inactive": {"executed_lines": [30], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 28}, "SsoWarningsViewlet.is_disabled": {"executed_lines": [34], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 32}, "SsoWarningsViewlet.show_alert": {"executed_lines": [39, 40, 41, 42, 43, 45], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [44], "excluded_lines": [], "start_line": 36}, "SsoWarningsViewlet.login_info": {"executed_lines": [48, 49, 50, 51, 52, 53], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [55], "excluded_lines": [], "start_line": 47}, "": {"executed_lines": [1, 2, 3, 4, 6, 9, 12, 14, 15, 18, 21, 24, 28, 32, 36, 47], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"SsoWarningsViewlet": {"executed_lines": [16, 19, 22, 26, 30, 34, 39, 40, 41, 42, 43, 45, 48, 49, 50, 51, 52, 53], "summary": {"covered_lines": 18, "num_statements": 20, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 90.0, "percent_statements_covered_display": "90"}, "missing_lines": [44, 55], "excluded_lines": [], "start_line": 9}, "": {"executed_lines": [1, 2, 3, 4, 6, 9, 12, 14, 15, 18, 21, 24, 28, 32, 36, 47], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\configs.py": {"executed_lines": [1, 3, 5, 8, 9, 10, 11, 14, 16, 18], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10, 11, 14, 16, 18], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [1, 3, 5, 8, 9, 10, 11, 14, 16, 18], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\controlpanels\\__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\controlpanels\\sso.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 16, 17, 18, 19, 22], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 16, 17, 18, 19, 22], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"SettingsEditForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 10}, "ControlPanel": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 16}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 16, 17, 18, 19, 22], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\errors.py": {"executed_lines": [1, 5], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 5], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"IMSSSOException": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}, "NoSSOMailTemplatesException": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 5}, "": {"executed_lines": [1, 5], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\events.py": {"executed_lines": [1, 3, 4, 5, 6, 9, 13, 14, 18, 22, 23, 27, 29, 30, 31], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"user_relinked": {"executed_lines": [29, 30, 31], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 27}, "": {"executed_lines": [1, 3, 4, 5, 6, 9, 13, 14, 18, 22, 23, 27], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"IUserRelinkedEvent": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 9}, "UserRelinkedEvent": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 14}, "IUserIdpUpdated": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "UserIdpUpdated": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 23}, "": {"executed_lines": [1, 3, 4, 5, 6, 9, 13, 14, 18, 22, 23, 27, 29, 30, 31], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\interfaces.py": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 10, 13, 17, 18, 19, 24, 25, 30, 31, 36, 37, 38, 39, 40, 41, 47, 48, 53, 54, 59, 60, 64, 65, 69, 70, 76, 77, 82, 83, 88, 89, 96, 97, 114, 115, 120, 121, 126, 127, 133, 141, 145, 149, 153, 157, 160, 163, 167], "summary": {"covered_lines": 55, "num_statements": 55, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [161, 164], "functions": {"IMailTemplates.registered_notify": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [161], "start_line": 160}, "IMailTemplates.mail_relink": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [164], "start_line": 163}, "": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 10, 13, 17, 18, 19, 24, 25, 30, 31, 36, 37, 38, 39, 40, 41, 47, 48, 53, 54, 59, 60, 64, 65, 69, 70, 76, 77, 82, 83, 88, 89, 96, 97, 114, 115, 120, 121, 126, 127, 133, 141, 145, 149, 153, 157, 160, 163, 167], "summary": {"covered_lines": 55, "num_statements": 55, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"IBrowserLayer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 13}, "ISSOSettings": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 17}, "ISingleSignonUtility": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 141}, "IMassRelink": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 145}, "IMailTemplatesUtility": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 149}, "IReactivationUtility": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 153}, "IMailTemplates": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [161, 164], "start_line": 157}, "IUserExpiryUtility": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 167}, "": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 10, 13, 17, 18, 19, 24, 25, 30, 31, 36, 37, 38, 39, 40, 41, 47, 48, 53, 54, 59, 60, 64, 65, 69, 70, 76, 77, 82, 83, 88, 89, 96, 97, 114, 115, 120, 121, 126, 127, 133, 141, 145, 149, 153, 157, 160, 163, 167], "summary": {"covered_lines": 55, "num_statements": 55, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\mailing\\__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\mailing\\mailers.py": {"executed_lines": [1, 2, 4, 5, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"NoSSOMailTemplates.registered_notify": {"executed_lines": [5], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 4}, "NoSSOMailTemplates.mail_relink": {"executed_lines": [10], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 9}, "": {"executed_lines": [1, 2, 4, 9], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"NoSSOMailTemplates": {"executed_lines": [5, 10], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}, "": {"executed_lines": [1, 2, 4, 9], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\mailing\\notify.py": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 27, 28, 30, 34, 35, 38, 39, 41, 53, 56, 57, 59, 60, 61, 62, 63, 65, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 82, 86, 87, 89, 101], "summary": {"covered_lines": 54, "num_statements": 54, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"RegisteredNotify.__call__": {"executed_lines": [17, 18, 19, 20, 21, 22, 23, 25, 27, 28, 30, 34, 35, 38, 39, 41, 53], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 16}, "MailRelink.encoded_mail_sender": {"executed_lines": [59, 60, 61, 62, 63], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 57}, "MailRelink.encode_mail_header": {"executed_lines": [67], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 65}, "MailRelink.__call__": {"executed_lines": [70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 82, 86, 87, 89, 101], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 69}, "": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 15, 16, 56, 57, 65, 69], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"RegisteredNotify": {"executed_lines": [17, 18, 19, 20, 21, 22, 23, 25, 27, 28, 30, 34, 35, 38, 39, 41, 53], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "MailRelink": {"executed_lines": [59, 60, 61, 62, 63, 67, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 82, 86, 87, 89, 101], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 56}, "": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 15, 16, 56, 57, 65, 69], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\mailing\\relink.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 16, 21, 22, 23, 25, 26, 27, 28, 29, 31, 32, 34, 36, 37, 38, 40, 41, 42, 43, 45, 46, 48, 49, 51, 63, 65, 66, 74, 79, 81, 83, 84, 85, 86, 87, 88, 89, 91, 93, 94, 95, 96, 97, 98, 99, 101, 103], "summary": {"covered_lines": 59, "num_statements": 59, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"MassRelink.email_unlinked": {"executed_lines": [27, 28, 29, 31, 32, 34, 36, 37, 38, 40, 41, 42, 43, 45, 46, 48, 49, 51, 63, 65, 66, 74, 79], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 26}, "MassRelink.duplicates": {"executed_lines": [83, 84, 85, 86, 87, 88, 89], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 81}, "MassRelink.unlinked_user_data": {"executed_lines": [93, 94, 95, 96, 97, 98, 99], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 91}, "MassRelink.unlinked_users": {"executed_lines": [103], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 101}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 16, 21, 22, 23, 25, 26, 81, 91, 101], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"MassRelink": {"executed_lines": [27, 28, 29, 31, 32, 34, 36, 37, 38, 40, 41, 42, 43, 45, 46, 48, 49, 51, 63, 65, 66, 74, 79, 83, 84, 85, 86, 87, 88, 89, 93, 94, 95, 96, 97, 98, 99, 103], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 16}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 16, 21, 22, 23, 25, 26, 81, 91, 101], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\plugin.py": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 16, 17, 18, 19, 20, 22, 27, 28, 30, 33, 34, 35, 36, 37, 38, 39, 42, 43, 44, 45, 47, 49, 50, 52, 53, 54, 56, 57, 58, 60, 61, 63, 64, 65, 66, 70, 73, 74, 75, 77, 79, 80, 81, 82, 84, 85, 86, 87, 88, 89, 91, 92, 93, 94, 102, 107, 109, 111, 112, 113, 114, 116, 117, 120, 127, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, 147, 149, 150, 152, 153, 154, 156, 157, 158, 160, 161, 162, 164, 165, 166, 168, 169, 170, 171, 173, 174, 175, 184, 186, 189, 191, 192, 194], "summary": {"covered_lines": 119, "num_statements": 122, "percent_covered": 97.54098360655738, "percent_covered_display": "98", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 97.54098360655738, "percent_statements_covered_display": "98"}, "missing_lines": [62, 68, 195], "excluded_lines": [], "functions": {"ImsSsoPlugin.__init__": {"executed_lines": [49, 50], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 47}, "ImsSsoPlugin.login_url": {"executed_lines": [54], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 53}, "ImsSsoPlugin.sso": {"executed_lines": [58], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 57}, "ImsSsoPlugin.challenge": {"executed_lines": [61, 63, 64, 65, 66], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [62, 68], "excluded_lines": [], "start_line": 60}, "ImsSsoPlugin.authenticateCredentials": {"executed_lines": [73, 74, 75, 77, 79, 80, 81, 82, 84, 85, 86, 87, 88, 89, 91, 92, 93, 94, 102, 107], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 70}, "ImsSsoPlugin.update_user": {"executed_lines": [111, 112, 113, 114, 116, 117, 120, 127, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, 147, 149, 150], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 109}, "ImsSsoPlugin.shib_header_first_name": {"executed_lines": [154], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 153}, "ImsSsoPlugin.shib_header_last_name": {"executed_lines": [158], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 157}, "ImsSsoPlugin.shib_header_email": {"executed_lines": [162], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 161}, "ImsSsoPlugin.shib_header_idp": {"executed_lines": [166], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 165}, "ImsSsoPlugin.extractCredentials": {"executed_lines": [169, 170, 171, 173, 174, 175], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 168}, "manage_addImsSso": {"executed_lines": [191, 192, 194], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [195], "excluded_lines": [], "start_line": 189}, "": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 16, 17, 18, 19, 20, 22, 27, 28, 30, 33, 34, 35, 36, 37, 38, 39, 42, 43, 44, 45, 47, 52, 53, 56, 57, 60, 70, 109, 152, 153, 156, 157, 160, 161, 164, 165, 168, 184, 186, 189], "summary": {"covered_lines": 50, "num_statements": 50, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"Credentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 33}, "ImsSsoPlugin": {"executed_lines": [49, 50, 54, 58, 61, 63, 64, 65, 66, 73, 74, 75, 77, 79, 80, 81, 82, 84, 85, 86, 87, 88, 89, 91, 92, 93, 94, 102, 107, 111, 112, 113, 114, 116, 117, 120, 127, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, 147, 149, 150, 154, 158, 162, 166, 169, 170, 171, 173, 174, 175], "summary": {"covered_lines": 66, "num_statements": 68, "percent_covered": 97.05882352941177, "percent_covered_display": "97", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 97.05882352941177, "percent_statements_covered_display": "97"}, "missing_lines": [62, 68], "excluded_lines": [], "start_line": 43}, "": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 16, 17, 18, 19, 20, 22, 27, 28, 30, 33, 34, 35, 36, 37, 38, 39, 42, 43, 44, 45, 47, 52, 53, 56, 57, 60, 70, 109, 152, 153, 156, 157, 160, 161, 164, 165, 168, 184, 186, 189, 191, 192, 194], "summary": {"covered_lines": 53, "num_statements": 54, "percent_covered": 98.14814814814815, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 98.14814814814815, "percent_statements_covered_display": "98"}, "missing_lines": [195], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\setuphandlers.py": {"executed_lines": [1, 2, 3, 4, 5, 10, 11, 12, 13, 15, 16, 19, 20, 21, 22, 24, 26, 27, 30, 31, 32, 33, 34, 35, 40, 41, 44, 46, 47, 49, 50, 57, 59, 60, 61, 62, 63, 65, 66, 67, 71, 72, 75, 76, 138, 139], "summary": {"covered_lines": 46, "num_statements": 49, "percent_covered": 93.87755102040816, "percent_covered_display": "94", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 93.87755102040816, "percent_statements_covered_display": "94"}, "missing_lines": [68, 69, 70], "excluded_lines": [], "functions": {"configure_plugin": {"executed_lines": [20, 21, 22, 24, 26, 27, 30, 31, 32, 33, 34, 35, 40, 41], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 19}, "install": {"executed_lines": [46, 47, 49, 50], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 44}, "add_user_field": {"executed_lines": [59, 60, 61, 62, 63, 65, 66, 67, 71, 72], "summary": {"covered_lines": 10, "num_statements": 13, "percent_covered": 76.92307692307692, "percent_covered_display": "77", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 76.92307692307692, "percent_statements_covered_display": "77"}, "missing_lines": [68, 69, 70], "excluded_lines": [], "start_line": 57}, "setup_user_schema": {"executed_lines": [76, 138, 139], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 75}, "": {"executed_lines": [1, 2, 3, 4, 5, 10, 11, 12, 13, 15, 16, 19, 44, 57, 75], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 10, 11, 12, 13, 15, 16, 19, 20, 21, 22, 24, 26, 27, 30, 31, 32, 33, 34, 35, 40, 41, 44, 46, 47, 49, 50, 57, 59, 60, 61, 62, 63, 65, 66, 67, 71, 72, 75, 76, 138, 139], "summary": {"covered_lines": 46, "num_statements": 49, "percent_covered": 93.87755102040816, "percent_covered_display": "94", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 93.87755102040816, "percent_statements_covered_display": "94"}, "missing_lines": [68, 69, 70], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\testing.py": {"executed_lines": [1, 2, 3, 4, 12, 15, 16, 18, 23, 24, 26, 27, 28, 31, 33, 38, 43, 48], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"UsersSiteLayer.setUpZope": {"executed_lines": [23, 24], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "UsersSiteLayer.setUpPloneSite": {"executed_lines": [27, 28], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 26}, "": {"executed_lines": [1, 2, 3, 4, 12, 15, 16, 18, 26, 31, 33, 38, 43, 48], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"UsersSiteLayer": {"executed_lines": [23, 24, 27, 28], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "": {"executed_lines": [1, 2, 3, 4, 12, 15, 16, 18, 26, 31, 33, 38, 43, 48], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\upgrades.py": {"executed_lines": [1, 3], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [1, 3], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src\\ims\\sso\\utility.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 26, 27, 29, 35, 38, 41, 43, 46, 49, 50, 52, 54, 56, 58, 62, 63, 64, 66, 67, 68, 70, 75, 76, 78, 80, 81, 82, 83, 84, 85, 86, 92, 93, 95, 96, 97, 98, 99, 100, 101, 103, 105, 106, 107, 108, 109, 111, 113, 117, 118, 121, 123, 125, 126, 127, 128, 132, 134, 136, 138, 139, 141, 143, 145, 147, 149, 151, 153, 154, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 174, 176, 177, 178, 179, 180, 181, 182, 187, 188, 189, 190, 198, 200, 201, 203, 204, 205, 209, 210, 212, 213, 214, 215, 216, 218, 219, 220, 221, 229, 231, 232, 234, 244, 245, 246, 248, 249, 250, 252, 253, 254, 257, 258, 259, 260, 261, 263, 264, 265, 268, 269, 270, 272, 274, 282, 289, 291, 292, 293, 295, 297, 299, 300, 302, 304, 305, 307, 308, 311, 325, 327, 328, 329, 331, 332, 334, 335, 336, 337, 338, 339, 341, 343, 344, 346, 347, 348, 350, 352, 353, 357, 363, 364, 365, 368, 369, 370, 371, 372, 374, 376, 378, 379, 380, 381, 382, 386, 388, 390, 392, 393, 394, 395, 397, 399, 400, 402, 403, 406, 407, 408, 410, 412, 413, 414, 415, 416, 418, 419, 420, 421, 422, 423, 427, 428, 430, 432, 433, 434, 435, 436, 437, 440, 442, 443, 444, 445, 446, 461, 463, 464, 465, 466, 467, 468], "summary": {"covered_lines": 252, "num_statements": 274, "percent_covered": 91.97080291970804, "percent_covered_display": "92", "missing_lines": 22, "excluded_lines": 3, "percent_statements_covered": 91.97080291970804, "percent_statements_covered_display": "92"}, "missing_lines": [114, 115, 129, 130, 206, 207, 208, 354, 355, 366, 367, 377, 391, 424, 425, 426, 447, 448, 449, 450, 451, 452], "excluded_lines": [88, 89, 90], "functions": {"registration_subject": {"executed_lines": [43], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 41}, "SingleSignonUtility.get_setting": {"executed_lines": [52], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 50}, "SingleSignonUtility.is_plone_authenticated": {"executed_lines": [56], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 54}, "SingleSignonUtility.is_shibboleth_authenticated": {"executed_lines": [62, 63, 64], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 58}, "SingleSignonUtility.pas": {"executed_lines": [68], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 67}, "SingleSignonUtility.initialize_login": {"executed_lines": [75, 76], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 70}, "SingleSignonUtility.get_login_from_request": {"executed_lines": [80, 81, 82, 83, 84, 85, 86], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 78}, "SingleSignonUtility.loginname_from_request": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [89, 90], "start_line": 88}, "SingleSignonUtility.idp_info": {"executed_lines": [95, 96, 97, 98, 99, 100, 101], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 93}, "SingleSignonUtility.get_idp_domain_from_login": {"executed_lines": [105, 106, 107, 108, 109, 111], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 103}, "SingleSignonUtility.extract_idp_login": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [114, 115], "excluded_lines": [], "start_line": 113}, "SingleSignonUtility.generate_password": {"executed_lines": [121], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 118}, "SingleSignonUtility.get_url_logout": {"executed_lines": [125, 126, 127, 128, 132, 134], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [129, 130], "excluded_lines": [], "start_line": 123}, "SingleSignonUtility.get_url_linkaccount": {"executed_lines": [138, 139], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 136}, "SingleSignonUtility.get_url_registration": {"executed_lines": [143], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 141}, "SingleSignonUtility.get_idp_from_domain": {"executed_lines": [147], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 145}, "SingleSignonUtility.set_login_name": {"executed_lines": [151], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 149}, "SingleSignonUtility.send_portal_link": {"executed_lines": [156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 154}, "SingleSignonUtility.notify_relinked": {"executed_lines": [176, 177, 178, 179, 180, 181, 182, 187, 188, 189, 190], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 174}, "SingleSignonUtility.purge_unlinked": {"executed_lines": [200, 201, 203, 204, 205, 209, 210, 212, 213, 214, 215, 216, 218, 219, 220, 221, 229, 231, 232], "summary": {"covered_lines": 19, "num_statements": 22, "percent_covered": 86.36363636363636, "percent_covered_display": "86", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 86.36363636363636, "percent_statements_covered_display": "86"}, "missing_lines": [206, 207, 208], "excluded_lines": [], "start_line": 198}, "SingleSignonUtility.disable_user_accounts": {"executed_lines": [244, 245, 246, 248, 249, 250, 252, 253, 254, 257, 258, 259, 260, 261], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 234}, "SingleSignonUtility.has_user_header": {"executed_lines": [264, 265], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 263}, "MailTemplatesUtility.get_setting": {"executed_lines": [272], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 270}, "MailTemplatesUtility.get_mailer": {"executed_lines": [291, 292, 293, 295], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 289}, "MailTemplatesUtility.registered_notify": {"executed_lines": [299, 300], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 297}, "MailTemplatesUtility.mail_relink": {"executed_lines": [304, 305], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 302}, "MailTemplatesUtility.mail_form": {"executed_lines": [308], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 307}, "ReactivationUtility.portal": {"executed_lines": [329], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 328}, "ReactivationUtility.user_id": {"executed_lines": [334, 335, 336, 337, 338, 339], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 332}, "ReactivationUtility.request_reactivation": {"executed_lines": [343, 344, 346, 347, 348], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 341}, "ReactivationUtility._expired": {"executed_lines": [352, 353], "summary": {"covered_lines": 2, "num_statements": 4, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 50.0, "percent_statements_covered_display": "50"}, "missing_lines": [354, 355], "excluded_lines": [], "start_line": 350}, "ReactivationUtility._validate": {"executed_lines": [363, 364, 365, 368, 369, 370, 371, 372], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [366, 367], "excluded_lines": [], "start_line": 357}, "ReactivationUtility.set_activation_key": {"executed_lines": [376, 378, 379, 380, 381, 382, 386], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 87.5, "percent_statements_covered_display": "88"}, "missing_lines": [377], "excluded_lines": [], "start_line": 374}, "ReactivationUtility.get_activation_key": {"executed_lines": [390, 392, 393, 394, 395], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [391], "excluded_lines": [], "start_line": 388}, "ReactivationUtility.reactivate_user": {"executed_lines": [399, 400, 402, 403, 406, 407, 408], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 397}, "ReactivationUtility.purge_activation_keys": {"executed_lines": [412, 413, 414, 415, 416, 418, 419, 420, 421, 422, 423, 427, 428], "summary": {"covered_lines": 13, "num_statements": 16, "percent_covered": 81.25, "percent_covered_display": "81", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 81.25, "percent_statements_covered_display": "81"}, "missing_lines": [424, 425, 426], "excluded_lines": [], "start_line": 410}, "ReactivationUtility.current_user_status": {"executed_lines": [432, 433, 434, 435, 436, 437], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 430}, "notify_activated": {"executed_lines": [442, 443, 444, 445, 446], "summary": {"covered_lines": 5, "num_statements": 11, "percent_covered": 45.45454545454545, "percent_covered_display": "45", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 45.45454545454545, "percent_statements_covered_display": "45"}, "missing_lines": [447, 448, 449, 450, 451, 452], "excluded_lines": [], "start_line": 440}, "is_null": {"executed_lines": [463, 464, 465, 466, 467, 468], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 461}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 26, 27, 29, 35, 38, 41, 46, 49, 50, 54, 58, 66, 67, 70, 78, 92, 93, 103, 113, 117, 118, 123, 136, 141, 145, 149, 153, 154, 174, 198, 234, 263, 268, 269, 270, 274, 282, 289, 297, 302, 307, 311, 325, 327, 328, 331, 332, 341, 350, 357, 374, 388, 397, 410, 430, 440, 461], "summary": {"covered_lines": 73, "num_statements": 73, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [88], "start_line": 1}}, "classes": {"SingleSignonUtility": {"executed_lines": [52, 56, 62, 63, 64, 68, 75, 76, 80, 81, 82, 83, 84, 85, 86, 95, 96, 97, 98, 99, 100, 101, 105, 106, 107, 108, 109, 111, 121, 125, 126, 127, 128, 132, 134, 138, 139, 143, 147, 151, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 176, 177, 178, 179, 180, 181, 182, 187, 188, 189, 190, 200, 201, 203, 204, 205, 209, 210, 212, 213, 214, 215, 216, 218, 219, 220, 221, 229, 231, 232, 244, 245, 246, 248, 249, 250, 252, 253, 254, 257, 258, 259, 260, 261, 264, 265], "summary": {"covered_lines": 97, "num_statements": 104, "percent_covered": 93.26923076923077, "percent_covered_display": "93", "missing_lines": 7, "excluded_lines": 2, "percent_statements_covered": 93.26923076923077, "percent_statements_covered_display": "93"}, "missing_lines": [114, 115, 129, 130, 206, 207, 208], "excluded_lines": [89, 90], "start_line": 46}, "MailTemplatesUtility": {"executed_lines": [272, 291, 292, 293, 295, 299, 300, 304, 305, 308], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 268}, "ReactivationUtility": {"executed_lines": [329, 334, 335, 336, 337, 338, 339, 343, 344, 346, 347, 348, 352, 353, 363, 364, 365, 368, 369, 370, 371, 372, 376, 378, 379, 380, 381, 382, 386, 390, 392, 393, 394, 395, 399, 400, 402, 403, 406, 407, 408, 412, 413, 414, 415, 416, 418, 419, 420, 421, 422, 423, 427, 428, 432, 433, 434, 435, 436, 437], "summary": {"covered_lines": 60, "num_statements": 69, "percent_covered": 86.95652173913044, "percent_covered_display": "87", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 86.95652173913044, "percent_statements_covered_display": "87"}, "missing_lines": [354, 355, 366, 367, 377, 391, 424, 425, 426], "excluded_lines": [], "start_line": 311}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 26, 27, 29, 35, 38, 41, 43, 46, 49, 50, 54, 58, 66, 67, 70, 78, 92, 93, 103, 113, 117, 118, 123, 136, 141, 145, 149, 153, 154, 174, 198, 234, 263, 268, 269, 270, 274, 282, 289, 297, 302, 307, 311, 325, 327, 328, 331, 332, 341, 350, 357, 374, 388, 397, 410, 430, 440, 442, 443, 444, 445, 446, 461, 463, 464, 465, 466, 467, 468], "summary": {"covered_lines": 85, "num_statements": 91, "percent_covered": 93.4065934065934, "percent_covered_display": "93", "missing_lines": 6, "excluded_lines": 1, "percent_statements_covered": 93.4065934065934, "percent_statements_covered_display": "93"}, "missing_lines": [447, 448, 449, 450, 451, 452], "excluded_lines": [88], "start_line": 1}}}, "src\\ims\\sso\\vocabulary.py": {"executed_lines": [1, 2, 3, 4, 6, 7, 10, 11, 12, 13, 16, 17, 18], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"mail_idps": {"executed_lines": [12, 13], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "active_status": {"executed_lines": [18], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 17}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 10, 11, 16, 17], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 7, 10, 11, 12, 13, 16, 17, 18], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}}, "totals": {"covered_lines": 1179, "num_statements": 1218, "percent_covered": 96.79802955665025, "percent_covered_display": "97", "missing_lines": 39, "excluded_lines": 7, "percent_statements_covered": 96.79802955665025, "percent_statements_covered_display": "97"}} \ No newline at end of file +{ + "meta": { + "format": 3, + "version": "7.14.0", + "timestamp": "2026-06-24T16:19:05.265852", + "branch_coverage": false, + "show_contexts": false + }, + "files": { + "src\\ims\\sso\\__init__.py": { + "executed_lines": [1, 3, 5, 8, 9, 10], + "summary": { + "covered_lines": 6, + "num_statements": 6, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "initialize": { + "executed_lines": [9, 10], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 8 + }, + "": { + "executed_lines": [1, 3, 5, 8], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "": { + "executed_lines": [1, 3, 5, 8, 9, 10], + "summary": { + "covered_lines": 6, + "num_statements": 6, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\browser\\__init__.py": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\browser\\cron.py": { + "executed_lines": [ + 1, 2, 3, 4, 6, 9, 16, 17, 18, 19, 20, 21, 22, 23 + ], + "summary": { + "covered_lines": 14, + "num_statements": 14, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "PeriodicTasks.__call__": { + "executed_lines": [17, 18, 19, 20, 21, 22, 23], + "summary": { + "covered_lines": 7, + "num_statements": 7, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 16 + }, + "": { + "executed_lines": [1, 2, 3, 4, 6, 9, 16], + "summary": { + "covered_lines": 7, + "num_statements": 7, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "PeriodicTasks": { + "executed_lines": [17, 18, 19, 20, 21, 22, 23], + "summary": { + "covered_lines": 7, + "num_statements": 7, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 9 + }, + "": { + "executed_lines": [1, 2, 3, 4, 6, 9, 16], + "summary": { + "covered_lines": 7, + "num_statements": 7, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\browser\\login.py": { + "executed_lines": [ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 19, 22, 23, + 24, 27, 28, 29, 30, 32, 33, 34, 35, 42, 45, 46, 47, 48, 49, 51, + 52, 53, 55, 56, 58, 59, 60, 61, 62, 63, 64, 65, 67, 68, 69, 71, + 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 87, 88, 89, 90, + 91, 92, 93, 95, 97, 98, 100, 101, 103, 104, 105, 106, 114, 116, + 119, 120, 121, 122, 123, 124, 129, 132, 133, 134, 135, 136, 137, + 140, 141, 142, 145, 146, 148, 150, 151, 157, 158, 164, 171, 172, + 173, 174, 176, 177, 178, 180, 181, 182, 186, 187, 188, 189, 191, + 192, 193, 200, 201, 207, 213, 214, 217, 218, 219, 220, 222, 223, + 224, 226, 227, 228, 229, 230, 231, 236, 237, 238, 239, 240, 241, + 243, 246, 247, 249, 257 + ], + "summary": { + "covered_lines": 150, + "num_statements": 150, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "RedirectLogin.__call__": { + "executed_lines": [23, 24], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 22 + }, + "SsoLogout.sso": { + "executed_lines": [30], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 29 + }, + "SsoLogout.__call__": { + "executed_lines": [33, 34, 35, 42], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 32 + }, + "SsoLinkaccount.__init__": { + "executed_lines": [48, 49], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 47 + }, + "SsoLinkaccount.publishTraverse": { + "executed_lines": [52, 53], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 51 + }, + "SsoLinkaccount.__call__": { + "executed_lines": [ + 56, 58, 59, 60, 61, 62, 63, 64, 65, 67, 68, 69, 71, 73, + 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 87, 88, 89, + 90, 91, 92, 93, 95 + ], + "summary": { + "covered_lines": 33, + "num_statements": 33, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 55 + }, + "SsoLinkaccount.disallowed": { + "executed_lines": [98], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 97 + }, + "SsoLinkaccount.success": { + "executed_lines": [101], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 100 + }, + "SsoLinkaccount.invalid_key": { + "executed_lines": [104, 105, 106, 114, 116], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 103 + }, + "LoginUrl.__call__": { + "executed_lines": [121, 122, 123, 124, 129], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 120 + }, + "LoginCondition.__call__": { + "executed_lines": [134, 135, 136, 137], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 133 + }, + "LogoutUrl.__call__": { + "executed_lines": [142], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 141 + }, + "RequireLoginView.__call__": { + "executed_lines": [148, 150, 151, 157, 158, 164], + "summary": { + "covered_lines": 6, + "num_statements": 6, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 146 + }, + "RequestReactivation.render": { + "executed_lines": [ + 173, 174, 176, 177, 178, 180, 181, 182, 186, 187, 188, + 189, 191, 192, 193, 200, 201, 207, 213, 214 + ], + "summary": { + "covered_lines": 20, + "num_statements": 20, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 172 + }, + "ReactivateUserAccount.__init__": { + "executed_lines": [219, 220], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 218 + }, + "ReactivateUserAccount.publishTraverse": { + "executed_lines": [223, 224], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 222 + }, + "ReactivateUserAccount.__call__": { + "executed_lines": [ + 227, 228, 229, 230, 231, 236, 237, 238, 239, 240, 241, + 243, 246, 247, 249, 257 + ], + "summary": { + "covered_lines": 16, + "num_statements": 16, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 226 + }, + "": { + "executed_lines": [ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 19, + 22, 27, 28, 29, 32, 45, 46, 47, 51, 55, 97, 100, 103, + 119, 120, 132, 133, 140, 141, 145, 146, 171, 172, 217, + 218, 222, 226 + ], + "summary": { + "covered_lines": 43, + "num_statements": 43, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "RedirectLogin": { + "executed_lines": [23, 24], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 19 + }, + "SsoLogout": { + "executed_lines": [30, 33, 34, 35, 42], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 27 + }, + "SsoLinkaccount": { + "executed_lines": [ + 48, 49, 52, 53, 56, 58, 59, 60, 61, 62, 63, 64, 65, 67, + 68, 69, 71, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, + 85, 87, 88, 89, 90, 91, 92, 93, 95, 98, 101, 104, 105, + 106, 114, 116 + ], + "summary": { + "covered_lines": 44, + "num_statements": 44, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 46 + }, + "LoginUrl": { + "executed_lines": [121, 122, 123, 124, 129], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 119 + }, + "LoginCondition": { + "executed_lines": [134, 135, 136, 137], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 132 + }, + "LogoutUrl": { + "executed_lines": [142], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 140 + }, + "RequireLoginView": { + "executed_lines": [148, 150, 151, 157, 158, 164], + "summary": { + "covered_lines": 6, + "num_statements": 6, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 145 + }, + "RequestReactivation": { + "executed_lines": [ + 173, 174, 176, 177, 178, 180, 181, 182, 186, 187, 188, + 189, 191, 192, 193, 200, 201, 207, 213, 214 + ], + "summary": { + "covered_lines": 20, + "num_statements": 20, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 171 + }, + "ReactivateUserAccount": { + "executed_lines": [ + 219, 220, 223, 224, 227, 228, 229, 230, 231, 236, 237, + 238, 239, 240, 241, 243, 246, 247, 249, 257 + ], + "summary": { + "covered_lines": 20, + "num_statements": 20, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 217 + }, + "": { + "executed_lines": [ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 19, + 22, 27, 28, 29, 32, 45, 46, 47, 51, 55, 97, 100, 103, + 119, 120, 132, 133, 140, 141, 145, 146, 171, 172, 217, + 218, 222, 226 + ], + "summary": { + "covered_lines": 43, + "num_statements": 43, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\browser\\password.py": { + "executed_lines": [1, 2, 5, 6, 8, 9], + "summary": { + "covered_lines": 6, + "num_statements": 6, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "ChangePassword.__call__": { + "executed_lines": [9], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 8 + }, + "": { + "executed_lines": [1, 2, 5, 6, 8], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "ChangePassword": { + "executed_lines": [9], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 5 + }, + "": { + "executed_lines": [1, 2, 5, 6, 8], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\browser\\register.py": { + "executed_lines": [ + 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 17, 18, 19, 20, 21, 23, + 24, 25, 27, 28, 30, 32, 33, 34, 39, 40, 41, 42, 43, 44, 45, 47, + 48, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 64, 66, 67, 68, 69, + 70, 71, 73, 78, 79, 81, 82, 83, 84, 85, 86, 88, 89, 95, 101, + 102, 103, 104, 105, 107, 108, 111, 113, 115, 119, 120, 121, 123, + 124, 126, 128, 129, 131, 133, 135, 138, 139, 140, 144, 146, 147, + 148, 149, 151, 155, 156, 158, 159, 160, 161 + ], + "summary": { + "covered_lines": 100, + "num_statements": 108, + "percent_covered": 92.5925925925926, + "percent_covered_display": "93", + "missing_lines": 8, + "excluded_lines": 0, + "percent_statements_covered": 92.5925925925926, + "percent_statements_covered_display": "93" + }, + "missing_lines": [116, 117, 125, 136, 150, 152, 153, 154], + "excluded_lines": [], + "functions": { + "AddUserForm.sso": { + "executed_lines": [25], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 24 + }, + "AddUserForm.sso_configured": { + "executed_lines": [28], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 27 + }, + "AddUserForm.updateFields": { + "executed_lines": [32, 33, 34, 39, 40, 41, 42, 43, 44, 45], + "summary": { + "covered_lines": 10, + "num_statements": 10, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 30 + }, + "AddUserForm.updateWidgets": { + "executed_lines": [48, 52, 53, 54, 55], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 47 + }, + "AddUserForm.updateActions": { + "executed_lines": [58, 59, 60, 61, 62], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 57 + }, + "AddUserForm.generate_user_id": { + "executed_lines": [66, 67, 68, 69, 70, 71], + "summary": { + "covered_lines": 6, + "num_statements": 6, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 64 + }, + "AddUserForm.handle_join_success": { + "executed_lines": [78, 79, 81, 82, 83, 84, 85, 86, 88, 89], + "summary": { + "covered_lines": 10, + "num_statements": 10, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 73 + }, + "AddUserForm.applyProperties": { + "executed_lines": [101, 102, 103, 104, 105], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 95 + }, + "AddUserForm.action_join": { + "executed_lines": [ + 111, 113, 115, 119, 120, 121, 123, 128, 129, 131, 133, + 135, 138, 139, 140, 144, 146, 147, 148, 149, 151, 155, + 156 + ], + "summary": { + "covered_lines": 23, + "num_statements": 30, + "percent_covered": 76.66666666666667, + "percent_covered_display": "77", + "missing_lines": 7, + "excluded_lines": 0, + "percent_statements_covered": 76.66666666666667, + "percent_statements_covered_display": "77" + }, + "missing_lines": [116, 117, 136, 150, 152, 153, 154], + "excluded_lines": [], + "start_line": 108 + }, + "AddUserForm.action_join.wrap_name": { + "executed_lines": [124, 126], + "summary": { + "covered_lines": 2, + "num_statements": 3, + "percent_covered": 66.66666666666667, + "percent_covered_display": "67", + "missing_lines": 1, + "excluded_lines": 0, + "percent_statements_covered": 66.66666666666667, + "percent_statements_covered_display": "67" + }, + "missing_lines": [125], + "excluded_lines": [], + "start_line": 123 + }, + "AddUserForm.handleCancel": { + "executed_lines": [160, 161], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 159 + }, + "": { + "executed_lines": [ + 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 17, 18, 19, 20, + 21, 23, 24, 27, 30, 47, 57, 64, 73, 95, 107, 108, 158, + 159 + ], + "summary": { + "covered_lines": 30, + "num_statements": 30, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "AddUserForm": { + "executed_lines": [ + 25, 28, 32, 33, 34, 39, 40, 41, 42, 43, 44, 45, 48, 52, + 53, 54, 55, 58, 59, 60, 61, 62, 66, 67, 68, 69, 70, 71, + 78, 79, 81, 82, 83, 84, 85, 86, 88, 89, 101, 102, 103, + 104, 105, 111, 113, 115, 119, 120, 121, 123, 124, 126, + 128, 129, 131, 133, 135, 138, 139, 140, 144, 146, 147, + 148, 149, 151, 155, 156, 160, 161 + ], + "summary": { + "covered_lines": 70, + "num_statements": 78, + "percent_covered": 89.74358974358974, + "percent_covered_display": "90", + "missing_lines": 8, + "excluded_lines": 0, + "percent_statements_covered": 89.74358974358974, + "percent_statements_covered_display": "90" + }, + "missing_lines": [116, 117, 125, 136, 150, 152, 153, 154], + "excluded_lines": [], + "start_line": 17 + }, + "": { + "executed_lines": [ + 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 17, 18, 19, 20, + 21, 23, 24, 27, 30, 47, 57, 64, 73, 95, 107, 108, 158, + 159 + ], + "summary": { + "covered_lines": 30, + "num_statements": 30, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\browser\\unauthorized.py": { + "executed_lines": [1, 2, 5, 6, 7], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "Unauthorized.email_from_address": { + "executed_lines": [7], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 6 + }, + "": { + "executed_lines": [1, 2, 5, 6], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "Unauthorized": { + "executed_lines": [7], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 5 + }, + "": { + "executed_lines": [1, 2, 5, 6], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\browser\\usergroups_usersoverview.py": { + "executed_lines": [ + 1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 18, 25, 26, 27, 28, + 31, 32, 33, 34, 36, 37, 38, 40, 41, 43, 44, 46, 47, 49, 50, 51, + 52, 53, 54, 55, 57, 58, 59, 60, 61, 65, 66, 68, 70, 72, 73, 74, + 75, 76, 77, 78, 80, 82, 84, 85, 86, 87, 88, 90, 91, 92, 94, 95, + 96, 97, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, + 111, 112, 113, 115, 116, 117, 118, 121, 123, 124, 125, 127, 130, + 131, 136, 140, 143, 144, 145, 146, 148, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 163, 164, 166, 170, 172, 173, 174, 175, 177, + 178, 180, 182, 183, 184, 186, 188, 189, 191, 192, 193, 196, 198, + 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 214, 215, 218, + 219, 221, 222, 223, 224, 225, 226, 227, 235, 237, 239, 240, 242, + 243, 251, 252, 258, 259, 260, 261, 262, 270, 272, 274, 275, 276, + 277, 278, 279, 280, 282, 283, 285, 286, 288, 289, 291, 292, 293, + 294, 295, 297, 298, 304, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315 + ], + "summary": { + "covered_lines": 198, + "num_statements": 199, + "percent_covered": 99.49748743718592, + "percent_covered_display": "99", + "missing_lines": 1, + "excluded_lines": 2, + "percent_statements_covered": 99.49748743718592, + "percent_statements_covered_display": "99" + }, + "missing_lines": [108], + "excluded_lines": [62, 63], + "functions": { + "UsersOverviewControlPanel.sso": { + "executed_lines": [34], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 33 + }, + "UsersOverviewControlPanel.submitted": { + "executed_lines": [38], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 37 + }, + "UsersOverviewControlPanel.can_change_roles": { + "executed_lines": [41], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 40 + }, + "UsersOverviewControlPanel.uses_expiry": { + "executed_lines": [44], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 43 + }, + "UsersOverviewControlPanel.expiry_days": { + "executed_lines": [47], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 46 + }, + "UsersOverviewControlPanel.emails": { + "executed_lines": [50, 51, 52, 53, 54, 55], + "summary": { + "covered_lines": 6, + "num_statements": 6, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 49 + }, + "UsersOverviewControlPanel.portal_roles": { + "executed_lines": [59, 60, 61, 65, 66], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 2, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [62, 63], + "start_line": 58 + }, + "UsersOverviewControlPanel.print_expiry": { + "executed_lines": [70, 72, 73, 74, 75, 76, 77, 78, 80], + "summary": { + "covered_lines": 9, + "num_statements": 9, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 68 + }, + "UsersOverviewControlPanel.doSearch": { + "executed_lines": [ + 84, 85, 86, 87, 88, 90, 91, 92, 94, 95, 96, 97, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, + 113, 115, 116, 117, 118, 121, 123, 124, 125, 127, 130, + 131, 136, 140, 143, 144, 145, 146, 148 + ], + "summary": { + "covered_lines": 44, + "num_statements": 45, + "percent_covered": 97.77777777777777, + "percent_covered_display": "98", + "missing_lines": 1, + "excluded_lines": 0, + "percent_statements_covered": 97.77777777777777, + "percent_statements_covered_display": "98" + }, + "missing_lines": [108], + "excluded_lines": [], + "start_line": 82 + }, + "UsersOverviewControlPanel.validate_emails": { + "executed_lines": [ + 151, 152, 153, 154, 155, 156, 157, 158, 163, 164 + ], + "summary": { + "covered_lines": 10, + "num_statements": 10, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 150 + }, + "UsersOverviewControlPanel.manageUser": { + "executed_lines": [ + 170, 172, 173, 174, 175, 177, 178, 180, 182, 183, 184, + 186, 188, 189, 191, 192, 193, 196, 198, 201, 202, 203, + 204, 205, 206, 207, 208, 210, 211, 214, 215, 218, 219, + 221, 222, 223, 224, 225, 226, 227, 235, 237, 239, 240, + 242, 243, 251, 252, 258, 259, 260, 261, 262, 270 + ], + "summary": { + "covered_lines": 54, + "num_statements": 54, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 166 + }, + "UsersOverviewControlPanel.deleteMembers": { + "executed_lines": [274, 275, 276, 277, 278, 279, 280], + "summary": { + "covered_lines": 7, + "num_statements": 7, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 272 + }, + "UsersOverviewControlPanel.active_status": { + "executed_lines": [283], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 282 + }, + "UsersOverviewControlPanel.not_active": { + "executed_lines": [286], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 285 + }, + "UsersOverviewControlPanel.active_options": { + "executed_lines": [289], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 288 + }, + "UsersOverviewControlPanel.active_search_options": { + "executed_lines": [292, 293, 294, 295, 297, 298, 304], + "summary": { + "covered_lines": 7, + "num_statements": 7, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 291 + }, + "UsersOverviewControlPanel.datatables": { + "executed_lines": [ + 307, 308, 309, 310, 311, 312, 313, 314, 315 + ], + "summary": { + "covered_lines": 9, + "num_statements": 9, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 306 + }, + "": { + "executed_lines": [ + 1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 18, 25, 26, + 27, 28, 31, 32, 33, 36, 37, 40, 43, 46, 49, 57, 58, 68, + 82, 150, 166, 272, 282, 285, 288, 291, 306 + ], + "summary": { + "covered_lines": 39, + "num_statements": 39, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "UsersOverviewControlPanel": { + "executed_lines": [ + 34, 38, 41, 44, 47, 50, 51, 52, 53, 54, 55, 59, 60, 61, + 65, 66, 70, 72, 73, 74, 75, 76, 77, 78, 80, 84, 85, 86, + 87, 88, 90, 91, 92, 94, 95, 96, 97, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 109, 110, 111, 112, 113, 115, + 116, 117, 118, 121, 123, 124, 125, 127, 130, 131, 136, + 140, 143, 144, 145, 146, 148, 151, 152, 153, 154, 155, + 156, 157, 158, 163, 164, 170, 172, 173, 174, 175, 177, + 178, 180, 182, 183, 184, 186, 188, 189, 191, 192, 193, + 196, 198, 201, 202, 203, 204, 205, 206, 207, 208, 210, + 211, 214, 215, 218, 219, 221, 222, 223, 224, 225, 226, + 227, 235, 237, 239, 240, 242, 243, 251, 252, 258, 259, + 260, 261, 262, 270, 274, 275, 276, 277, 278, 279, 280, + 283, 286, 289, 292, 293, 294, 295, 297, 298, 304, 307, + 308, 309, 310, 311, 312, 313, 314, 315 + ], + "summary": { + "covered_lines": 159, + "num_statements": 160, + "percent_covered": 99.375, + "percent_covered_display": "99", + "missing_lines": 1, + "excluded_lines": 2, + "percent_statements_covered": 99.375, + "percent_statements_covered_display": "99" + }, + "missing_lines": [108], + "excluded_lines": [62, 63], + "start_line": 31 + }, + "": { + "executed_lines": [ + 1, 2, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 18, 25, 26, + 27, 28, 31, 32, 33, 36, 37, 40, 43, 46, 49, 57, 58, 68, + 82, 150, 166, 272, 282, 285, 288, 291, 306 + ], + "summary": { + "covered_lines": 39, + "num_statements": 39, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\browser\\viewlets.py": { + "executed_lines": [ + 1, 2, 3, 4, 6, 9, 12, 14, 15, 16, 18, 19, 21, 22, 24, 26, 28, + 30, 32, 34, 36, 39, 40, 41, 42, 43, 45, 47, 48, 49, 50, 51, 52, + 53 + ], + "summary": { + "covered_lines": 34, + "num_statements": 36, + "percent_covered": 94.44444444444444, + "percent_covered_display": "94", + "missing_lines": 2, + "excluded_lines": 0, + "percent_statements_covered": 94.44444444444444, + "percent_statements_covered_display": "94" + }, + "missing_lines": [44, 55], + "excluded_lines": [], + "functions": { + "SsoWarningsViewlet.sso": { + "executed_lines": [16], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 15 + }, + "SsoWarningsViewlet.status": { + "executed_lines": [19], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 18 + }, + "SsoWarningsViewlet.reactivation_url": { + "executed_lines": [22], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 21 + }, + "SsoWarningsViewlet.show_warning": { + "executed_lines": [26], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 24 + }, + "SsoWarningsViewlet.is_inactive": { + "executed_lines": [30], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 28 + }, + "SsoWarningsViewlet.is_disabled": { + "executed_lines": [34], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 32 + }, + "SsoWarningsViewlet.show_alert": { + "executed_lines": [39, 40, 41, 42, 43, 45], + "summary": { + "covered_lines": 6, + "num_statements": 7, + "percent_covered": 85.71428571428571, + "percent_covered_display": "86", + "missing_lines": 1, + "excluded_lines": 0, + "percent_statements_covered": 85.71428571428571, + "percent_statements_covered_display": "86" + }, + "missing_lines": [44], + "excluded_lines": [], + "start_line": 36 + }, + "SsoWarningsViewlet.login_info": { + "executed_lines": [48, 49, 50, 51, 52, 53], + "summary": { + "covered_lines": 6, + "num_statements": 7, + "percent_covered": 85.71428571428571, + "percent_covered_display": "86", + "missing_lines": 1, + "excluded_lines": 0, + "percent_statements_covered": 85.71428571428571, + "percent_statements_covered_display": "86" + }, + "missing_lines": [55], + "excluded_lines": [], + "start_line": 47 + }, + "": { + "executed_lines": [ + 1, 2, 3, 4, 6, 9, 12, 14, 15, 18, 21, 24, 28, 32, 36, 47 + ], + "summary": { + "covered_lines": 16, + "num_statements": 16, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "SsoWarningsViewlet": { + "executed_lines": [ + 16, 19, 22, 26, 30, 34, 39, 40, 41, 42, 43, 45, 48, 49, + 50, 51, 52, 53 + ], + "summary": { + "covered_lines": 18, + "num_statements": 20, + "percent_covered": 90.0, + "percent_covered_display": "90", + "missing_lines": 2, + "excluded_lines": 0, + "percent_statements_covered": 90.0, + "percent_statements_covered_display": "90" + }, + "missing_lines": [44, 55], + "excluded_lines": [], + "start_line": 9 + }, + "": { + "executed_lines": [ + 1, 2, 3, 4, 6, 9, 12, 14, 15, 18, 21, 24, 28, 32, 36, 47 + ], + "summary": { + "covered_lines": 16, + "num_statements": 16, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\configs.py": { + "executed_lines": [1, 3, 5, 8, 9, 10, 11, 14, 16, 18], + "summary": { + "covered_lines": 10, + "num_statements": 10, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "": { + "executed_lines": [1, 3, 5, 8, 9, 10, 11, 14, 16, 18], + "summary": { + "covered_lines": 10, + "num_statements": 10, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "": { + "executed_lines": [1, 3, 5, 8, 9, 10, 11, 14, 16, 18], + "summary": { + "covered_lines": 10, + "num_statements": 10, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\controlpanels\\__init__.py": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\controlpanels\\sso.py": { + "executed_lines": [ + 1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 16, 17, 18, 19, 22 + ], + "summary": { + "covered_lines": 15, + "num_statements": 15, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "": { + "executed_lines": [ + 1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 16, 17, 18, 19, 22 + ], + "summary": { + "covered_lines": 15, + "num_statements": 15, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "SettingsEditForm": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 10 + }, + "ControlPanel": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 16 + }, + "": { + "executed_lines": [ + 1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 16, 17, 18, 19, 22 + ], + "summary": { + "covered_lines": 15, + "num_statements": 15, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\errors.py": { + "executed_lines": [1, 5], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "": { + "executed_lines": [1, 5], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "IMSSSOException": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + }, + "NoSSOMailTemplatesException": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 5 + }, + "": { + "executed_lines": [1, 5], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\events.py": { + "executed_lines": [ + 1, 3, 4, 5, 6, 9, 13, 14, 18, 22, 23, 27, 29, 30, 31 + ], + "summary": { + "covered_lines": 15, + "num_statements": 15, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "user_relinked": { + "executed_lines": [29, 30, 31], + "summary": { + "covered_lines": 3, + "num_statements": 3, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 27 + }, + "": { + "executed_lines": [ + 1, 3, 4, 5, 6, 9, 13, 14, 18, 22, 23, 27 + ], + "summary": { + "covered_lines": 12, + "num_statements": 12, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "IUserRelinkedEvent": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 9 + }, + "UserRelinkedEvent": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 14 + }, + "IUserIdpUpdated": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 18 + }, + "UserIdpUpdated": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 23 + }, + "": { + "executed_lines": [ + 1, 3, 4, 5, 6, 9, 13, 14, 18, 22, 23, 27, 29, 30, 31 + ], + "summary": { + "covered_lines": 15, + "num_statements": 15, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\interfaces.py": { + "executed_lines": [ + 1, 3, 4, 5, 6, 7, 8, 10, 13, 17, 18, 19, 24, 25, 30, 31, 36, 37, + 38, 39, 40, 41, 47, 48, 53, 54, 59, 60, 64, 65, 69, 70, 76, 77, + 82, 83, 88, 89, 96, 97, 114, 115, 120, 121, 126, 127, 133, 141, + 145, 149, 153, 157, 160, 163, 167 + ], + "summary": { + "covered_lines": 55, + "num_statements": 55, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 2, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [161, 164], + "functions": { + "IMailTemplates.registered_notify": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 1, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [161], + "start_line": 160 + }, + "IMailTemplates.mail_relink": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 1, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [164], + "start_line": 163 + }, + "": { + "executed_lines": [ + 1, 3, 4, 5, 6, 7, 8, 10, 13, 17, 18, 19, 24, 25, 30, 31, + 36, 37, 38, 39, 40, 41, 47, 48, 53, 54, 59, 60, 64, 65, + 69, 70, 76, 77, 82, 83, 88, 89, 96, 97, 114, 115, 120, + 121, 126, 127, 133, 141, 145, 149, 153, 157, 160, 163, + 167 + ], + "summary": { + "covered_lines": 55, + "num_statements": 55, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "IBrowserLayer": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 13 + }, + "ISSOSettings": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 17 + }, + "ISingleSignonUtility": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 141 + }, + "IMassRelink": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 145 + }, + "IMailTemplatesUtility": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 149 + }, + "IReactivationUtility": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 153 + }, + "IMailTemplates": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 2, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [161, 164], + "start_line": 157 + }, + "IUserExpiryUtility": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 167 + }, + "": { + "executed_lines": [ + 1, 3, 4, 5, 6, 7, 8, 10, 13, 17, 18, 19, 24, 25, 30, 31, + 36, 37, 38, 39, 40, 41, 47, 48, 53, 54, 59, 60, 64, 65, + 69, 70, 76, 77, 82, 83, 88, 89, 96, 97, 114, 115, 120, + 121, 126, 127, 133, 141, 145, 149, 153, 157, 160, 163, + 167 + ], + "summary": { + "covered_lines": 55, + "num_statements": 55, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\mailing\\__init__.py": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\mailing\\mailers.py": { + "executed_lines": [1, 2, 4, 5, 9, 10], + "summary": { + "covered_lines": 6, + "num_statements": 6, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "NoSSOMailTemplates.registered_notify": { + "executed_lines": [5], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 4 + }, + "NoSSOMailTemplates.mail_relink": { + "executed_lines": [10], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 9 + }, + "": { + "executed_lines": [1, 2, 4, 9], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "NoSSOMailTemplates": { + "executed_lines": [5, 10], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + }, + "": { + "executed_lines": [1, 2, 4, 9], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\mailing\\notify.py": { + "executed_lines": [ + 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 25, 27, 28, 30, 34, 35, 38, 39, 41, 53, 56, 57, 59, 60, 61, + 62, 63, 65, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 82, + 86, 87, 89, 101 + ], + "summary": { + "covered_lines": 54, + "num_statements": 54, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "RegisteredNotify.__call__": { + "executed_lines": [ + 17, 18, 19, 20, 21, 22, 23, 25, 27, 28, 30, 34, 35, 38, + 39, 41, 53 + ], + "summary": { + "covered_lines": 17, + "num_statements": 17, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 16 + }, + "MailRelink.encoded_mail_sender": { + "executed_lines": [59, 60, 61, 62, 63], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 57 + }, + "MailRelink.encode_mail_header": { + "executed_lines": [67], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 65 + }, + "MailRelink.__call__": { + "executed_lines": [ + 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 82, 86, 87, 89, + 101 + ], + "summary": { + "covered_lines": 15, + "num_statements": 15, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 69 + }, + "": { + "executed_lines": [ + 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 15, 16, 56, 57, 65, 69 + ], + "summary": { + "covered_lines": 16, + "num_statements": 16, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "RegisteredNotify": { + "executed_lines": [ + 17, 18, 19, 20, 21, 22, 23, 25, 27, 28, 30, 34, 35, 38, + 39, 41, 53 + ], + "summary": { + "covered_lines": 17, + "num_statements": 17, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 15 + }, + "MailRelink": { + "executed_lines": [ + 59, 60, 61, 62, 63, 67, 70, 71, 72, 73, 74, 75, 76, 77, + 79, 80, 82, 86, 87, 89, 101 + ], + "summary": { + "covered_lines": 21, + "num_statements": 21, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 56 + }, + "": { + "executed_lines": [ + 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 15, 16, 56, 57, 65, 69 + ], + "summary": { + "covered_lines": 16, + "num_statements": 16, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\mailing\\relink.py": { + "executed_lines": [ + 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 16, 21, 22, 23, 25, 26, + 27, 28, 29, 31, 32, 34, 36, 37, 38, 40, 41, 42, 43, 45, 46, 48, + 49, 51, 63, 65, 66, 74, 79, 81, 83, 84, 85, 86, 87, 88, 89, 91, + 93, 94, 95, 96, 97, 98, 99, 101, 103 + ], + "summary": { + "covered_lines": 59, + "num_statements": 59, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "MassRelink.email_unlinked": { + "executed_lines": [ + 27, 28, 29, 31, 32, 34, 36, 37, 38, 40, 41, 42, 43, 45, + 46, 48, 49, 51, 63, 65, 66, 74, 79 + ], + "summary": { + "covered_lines": 23, + "num_statements": 23, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 26 + }, + "MassRelink.duplicates": { + "executed_lines": [83, 84, 85, 86, 87, 88, 89], + "summary": { + "covered_lines": 7, + "num_statements": 7, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 81 + }, + "MassRelink.unlinked_user_data": { + "executed_lines": [93, 94, 95, 96, 97, 98, 99], + "summary": { + "covered_lines": 7, + "num_statements": 7, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 91 + }, + "MassRelink.unlinked_users": { + "executed_lines": [103], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 101 + }, + "": { + "executed_lines": [ + 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 16, 21, 22, 23, + 25, 26, 81, 91, 101 + ], + "summary": { + "covered_lines": 21, + "num_statements": 21, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "MassRelink": { + "executed_lines": [ + 27, 28, 29, 31, 32, 34, 36, 37, 38, 40, 41, 42, 43, 45, + 46, 48, 49, 51, 63, 65, 66, 74, 79, 83, 84, 85, 86, 87, + 88, 89, 93, 94, 95, 96, 97, 98, 99, 103 + ], + "summary": { + "covered_lines": 38, + "num_statements": 38, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 16 + }, + "": { + "executed_lines": [ + 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 16, 21, 22, 23, + 25, 26, 81, 91, 101 + ], + "summary": { + "covered_lines": 21, + "num_statements": 21, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\plugin.py": { + "executed_lines": [ + 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 16, 17, 18, 19, 20, 22, 27, 28, + 30, 33, 34, 35, 36, 37, 38, 39, 42, 43, 44, 45, 47, 49, 50, 52, + 53, 54, 56, 57, 58, 60, 61, 63, 64, 65, 66, 70, 73, 74, 75, 77, + 79, 80, 81, 82, 84, 85, 86, 87, 88, 89, 91, 92, 93, 94, 102, + 107, 109, 111, 112, 113, 114, 116, 117, 120, 127, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, + 147, 149, 150, 152, 153, 154, 156, 157, 158, 160, 161, 162, 164, + 165, 166, 168, 169, 170, 171, 173, 174, 175, 184, 186, 189, 191, + 192, 194 + ], + "summary": { + "covered_lines": 119, + "num_statements": 122, + "percent_covered": 97.54098360655738, + "percent_covered_display": "98", + "missing_lines": 3, + "excluded_lines": 0, + "percent_statements_covered": 97.54098360655738, + "percent_statements_covered_display": "98" + }, + "missing_lines": [62, 68, 195], + "excluded_lines": [], + "functions": { + "ImsSsoPlugin.__init__": { + "executed_lines": [49, 50], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 47 + }, + "ImsSsoPlugin.login_url": { + "executed_lines": [54], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 53 + }, + "ImsSsoPlugin.sso": { + "executed_lines": [58], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 57 + }, + "ImsSsoPlugin.challenge": { + "executed_lines": [61, 63, 64, 65, 66], + "summary": { + "covered_lines": 5, + "num_statements": 7, + "percent_covered": 71.42857142857143, + "percent_covered_display": "71", + "missing_lines": 2, + "excluded_lines": 0, + "percent_statements_covered": 71.42857142857143, + "percent_statements_covered_display": "71" + }, + "missing_lines": [62, 68], + "excluded_lines": [], + "start_line": 60 + }, + "ImsSsoPlugin.authenticateCredentials": { + "executed_lines": [ + 73, 74, 75, 77, 79, 80, 81, 82, 84, 85, 86, 87, 88, 89, + 91, 92, 93, 94, 102, 107 + ], + "summary": { + "covered_lines": 20, + "num_statements": 20, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 70 + }, + "ImsSsoPlugin.update_user": { + "executed_lines": [ + 111, 112, 113, 114, 116, 117, 120, 127, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 146, 147, 149, 150 + ], + "summary": { + "covered_lines": 27, + "num_statements": 27, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 109 + }, + "ImsSsoPlugin.shib_header_first_name": { + "executed_lines": [154], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 153 + }, + "ImsSsoPlugin.shib_header_last_name": { + "executed_lines": [158], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 157 + }, + "ImsSsoPlugin.shib_header_email": { + "executed_lines": [162], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 161 + }, + "ImsSsoPlugin.shib_header_idp": { + "executed_lines": [166], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 165 + }, + "ImsSsoPlugin.extractCredentials": { + "executed_lines": [169, 170, 171, 173, 174, 175], + "summary": { + "covered_lines": 6, + "num_statements": 6, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 168 + }, + "manage_addImsSso": { + "executed_lines": [191, 192, 194], + "summary": { + "covered_lines": 3, + "num_statements": 4, + "percent_covered": 75.0, + "percent_covered_display": "75", + "missing_lines": 1, + "excluded_lines": 0, + "percent_statements_covered": 75.0, + "percent_statements_covered_display": "75" + }, + "missing_lines": [195], + "excluded_lines": [], + "start_line": 189 + }, + "": { + "executed_lines": [ + 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 16, 17, 18, 19, 20, 22, + 27, 28, 30, 33, 34, 35, 36, 37, 38, 39, 42, 43, 44, 45, + 47, 52, 53, 56, 57, 60, 70, 109, 152, 153, 156, 157, + 160, 161, 164, 165, 168, 184, 186, 189 + ], + "summary": { + "covered_lines": 50, + "num_statements": 50, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "Credentials": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 33 + }, + "ImsSsoPlugin": { + "executed_lines": [ + 49, 50, 54, 58, 61, 63, 64, 65, 66, 73, 74, 75, 77, 79, + 80, 81, 82, 84, 85, 86, 87, 88, 89, 91, 92, 93, 94, 102, + 107, 111, 112, 113, 114, 116, 117, 120, 127, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 146, 147, 149, 150, 154, 158, 162, 166, 169, + 170, 171, 173, 174, 175 + ], + "summary": { + "covered_lines": 66, + "num_statements": 68, + "percent_covered": 97.05882352941177, + "percent_covered_display": "97", + "missing_lines": 2, + "excluded_lines": 0, + "percent_statements_covered": 97.05882352941177, + "percent_statements_covered_display": "97" + }, + "missing_lines": [62, 68], + "excluded_lines": [], + "start_line": 43 + }, + "": { + "executed_lines": [ + 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 16, 17, 18, 19, 20, 22, + 27, 28, 30, 33, 34, 35, 36, 37, 38, 39, 42, 43, 44, 45, + 47, 52, 53, 56, 57, 60, 70, 109, 152, 153, 156, 157, + 160, 161, 164, 165, 168, 184, 186, 189, 191, 192, 194 + ], + "summary": { + "covered_lines": 53, + "num_statements": 54, + "percent_covered": 98.14814814814815, + "percent_covered_display": "98", + "missing_lines": 1, + "excluded_lines": 0, + "percent_statements_covered": 98.14814814814815, + "percent_statements_covered_display": "98" + }, + "missing_lines": [195], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\setuphandlers.py": { + "executed_lines": [ + 1, 2, 3, 4, 5, 10, 11, 12, 13, 15, 16, 19, 20, 21, 22, 24, 26, + 27, 30, 31, 32, 33, 34, 35, 40, 41, 44, 46, 47, 49, 50, 57, 59, + 60, 61, 62, 63, 65, 66, 67, 71, 72, 75, 76, 138, 139 + ], + "summary": { + "covered_lines": 46, + "num_statements": 49, + "percent_covered": 93.87755102040816, + "percent_covered_display": "94", + "missing_lines": 3, + "excluded_lines": 0, + "percent_statements_covered": 93.87755102040816, + "percent_statements_covered_display": "94" + }, + "missing_lines": [68, 69, 70], + "excluded_lines": [], + "functions": { + "configure_plugin": { + "executed_lines": [ + 20, 21, 22, 24, 26, 27, 30, 31, 32, 33, 34, 35, 40, 41 + ], + "summary": { + "covered_lines": 14, + "num_statements": 14, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 19 + }, + "install": { + "executed_lines": [46, 47, 49, 50], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 44 + }, + "add_user_field": { + "executed_lines": [59, 60, 61, 62, 63, 65, 66, 67, 71, 72], + "summary": { + "covered_lines": 10, + "num_statements": 13, + "percent_covered": 76.92307692307692, + "percent_covered_display": "77", + "missing_lines": 3, + "excluded_lines": 0, + "percent_statements_covered": 76.92307692307692, + "percent_statements_covered_display": "77" + }, + "missing_lines": [68, 69, 70], + "excluded_lines": [], + "start_line": 57 + }, + "setup_user_schema": { + "executed_lines": [76, 138, 139], + "summary": { + "covered_lines": 3, + "num_statements": 3, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 75 + }, + "": { + "executed_lines": [ + 1, 2, 3, 4, 5, 10, 11, 12, 13, 15, 16, 19, 44, 57, 75 + ], + "summary": { + "covered_lines": 15, + "num_statements": 15, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "": { + "executed_lines": [ + 1, 2, 3, 4, 5, 10, 11, 12, 13, 15, 16, 19, 20, 21, 22, + 24, 26, 27, 30, 31, 32, 33, 34, 35, 40, 41, 44, 46, 47, + 49, 50, 57, 59, 60, 61, 62, 63, 65, 66, 67, 71, 72, 75, + 76, 138, 139 + ], + "summary": { + "covered_lines": 46, + "num_statements": 49, + "percent_covered": 93.87755102040816, + "percent_covered_display": "94", + "missing_lines": 3, + "excluded_lines": 0, + "percent_statements_covered": 93.87755102040816, + "percent_statements_covered_display": "94" + }, + "missing_lines": [68, 69, 70], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\testing.py": { + "executed_lines": [ + 1, 2, 3, 4, 12, 15, 16, 18, 23, 24, 26, 27, 28, 31, 33, 38, 43, + 48 + ], + "summary": { + "covered_lines": 18, + "num_statements": 18, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "UsersSiteLayer.setUpZope": { + "executed_lines": [23, 24], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 18 + }, + "UsersSiteLayer.setUpPloneSite": { + "executed_lines": [27, 28], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 26 + }, + "": { + "executed_lines": [ + 1, 2, 3, 4, 12, 15, 16, 18, 26, 31, 33, 38, 43, 48 + ], + "summary": { + "covered_lines": 14, + "num_statements": 14, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "UsersSiteLayer": { + "executed_lines": [23, 24, 27, 28], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 15 + }, + "": { + "executed_lines": [ + 1, 2, 3, 4, 12, 15, 16, 18, 26, 31, 33, 38, 43, 48 + ], + "summary": { + "covered_lines": 14, + "num_statements": 14, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\upgrades.py": { + "executed_lines": [1, 3], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "": { + "executed_lines": [1, 3], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "": { + "executed_lines": [1, 3], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\utility.py": { + "executed_lines": [ + 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 26, 27, + 29, 35, 38, 41, 43, 46, 49, 50, 52, 54, 56, 58, 62, 63, 64, 66, + 67, 68, 70, 75, 76, 78, 80, 81, 82, 83, 84, 85, 86, 92, 93, 95, + 96, 97, 98, 99, 100, 101, 103, 105, 106, 107, 108, 109, 111, + 113, 117, 118, 121, 123, 125, 126, 127, 128, 132, 134, 136, 138, + 139, 141, 143, 145, 147, 149, 151, 153, 154, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 174, 176, 177, 178, 179, 180, + 181, 182, 187, 188, 189, 190, 198, 200, 201, 203, 204, 205, 209, + 210, 212, 213, 214, 215, 216, 218, 219, 220, 221, 229, 231, 232, + 234, 244, 245, 246, 248, 249, 250, 252, 253, 254, 257, 258, 259, + 260, 261, 263, 264, 265, 268, 269, 270, 272, 274, 282, 289, 291, + 292, 293, 295, 297, 299, 300, 302, 304, 305, 307, 308, 311, 325, + 327, 328, 329, 331, 332, 334, 335, 336, 337, 338, 339, 341, 343, + 344, 346, 347, 348, 350, 352, 353, 357, 363, 364, 365, 368, 369, + 370, 371, 372, 374, 376, 378, 379, 380, 381, 382, 386, 388, 390, + 392, 393, 394, 395, 397, 399, 400, 402, 403, 406, 407, 408, 410, + 412, 413, 414, 415, 416, 418, 419, 420, 421, 422, 423, 427, 428, + 430, 432, 433, 434, 435, 436, 437, 440, 442, 443, 444, 445, 446, + 461, 463, 464, 465, 466, 467, 468 + ], + "summary": { + "covered_lines": 252, + "num_statements": 274, + "percent_covered": 91.97080291970804, + "percent_covered_display": "92", + "missing_lines": 22, + "excluded_lines": 3, + "percent_statements_covered": 91.97080291970804, + "percent_statements_covered_display": "92" + }, + "missing_lines": [ + 114, 115, 129, 130, 206, 207, 208, 354, 355, 366, 367, 377, 391, + 424, 425, 426, 447, 448, 449, 450, 451, 452 + ], + "excluded_lines": [88, 89, 90], + "functions": { + "registration_subject": { + "executed_lines": [43], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 41 + }, + "SingleSignonUtility.get_setting": { + "executed_lines": [52], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 50 + }, + "SingleSignonUtility.is_plone_authenticated": { + "executed_lines": [56], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 54 + }, + "SingleSignonUtility.is_shibboleth_authenticated": { + "executed_lines": [62, 63, 64], + "summary": { + "covered_lines": 3, + "num_statements": 3, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 58 + }, + "SingleSignonUtility.pas": { + "executed_lines": [68], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 67 + }, + "SingleSignonUtility.initialize_login": { + "executed_lines": [75, 76], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 70 + }, + "SingleSignonUtility.get_login_from_request": { + "executed_lines": [80, 81, 82, 83, 84, 85, 86], + "summary": { + "covered_lines": 7, + "num_statements": 7, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 78 + }, + "SingleSignonUtility.loginname_from_request": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 0, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 2, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [89, 90], + "start_line": 88 + }, + "SingleSignonUtility.idp_info": { + "executed_lines": [95, 96, 97, 98, 99, 100, 101], + "summary": { + "covered_lines": 7, + "num_statements": 7, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 93 + }, + "SingleSignonUtility.get_idp_domain_from_login": { + "executed_lines": [105, 106, 107, 108, 109, 111], + "summary": { + "covered_lines": 6, + "num_statements": 6, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 103 + }, + "SingleSignonUtility.extract_idp_login": { + "executed_lines": [], + "summary": { + "covered_lines": 0, + "num_statements": 2, + "percent_covered": 0.0, + "percent_covered_display": "0", + "missing_lines": 2, + "excluded_lines": 0, + "percent_statements_covered": 0.0, + "percent_statements_covered_display": "0" + }, + "missing_lines": [114, 115], + "excluded_lines": [], + "start_line": 113 + }, + "SingleSignonUtility.generate_password": { + "executed_lines": [121], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 118 + }, + "SingleSignonUtility.get_url_logout": { + "executed_lines": [125, 126, 127, 128, 132, 134], + "summary": { + "covered_lines": 6, + "num_statements": 8, + "percent_covered": 75.0, + "percent_covered_display": "75", + "missing_lines": 2, + "excluded_lines": 0, + "percent_statements_covered": 75.0, + "percent_statements_covered_display": "75" + }, + "missing_lines": [129, 130], + "excluded_lines": [], + "start_line": 123 + }, + "SingleSignonUtility.get_url_linkaccount": { + "executed_lines": [138, 139], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 136 + }, + "SingleSignonUtility.get_url_registration": { + "executed_lines": [143], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 141 + }, + "SingleSignonUtility.get_idp_from_domain": { + "executed_lines": [147], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 145 + }, + "SingleSignonUtility.set_login_name": { + "executed_lines": [151], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 149 + }, + "SingleSignonUtility.send_portal_link": { + "executed_lines": [ + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166 + ], + "summary": { + "covered_lines": 11, + "num_statements": 11, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 154 + }, + "SingleSignonUtility.notify_relinked": { + "executed_lines": [ + 176, 177, 178, 179, 180, 181, 182, 187, 188, 189, 190 + ], + "summary": { + "covered_lines": 11, + "num_statements": 11, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 174 + }, + "SingleSignonUtility.purge_unlinked": { + "executed_lines": [ + 200, 201, 203, 204, 205, 209, 210, 212, 213, 214, 215, + 216, 218, 219, 220, 221, 229, 231, 232 + ], + "summary": { + "covered_lines": 19, + "num_statements": 22, + "percent_covered": 86.36363636363636, + "percent_covered_display": "86", + "missing_lines": 3, + "excluded_lines": 0, + "percent_statements_covered": 86.36363636363636, + "percent_statements_covered_display": "86" + }, + "missing_lines": [206, 207, 208], + "excluded_lines": [], + "start_line": 198 + }, + "SingleSignonUtility.disable_user_accounts": { + "executed_lines": [ + 244, 245, 246, 248, 249, 250, 252, 253, 254, 257, 258, + 259, 260, 261 + ], + "summary": { + "covered_lines": 14, + "num_statements": 14, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 234 + }, + "SingleSignonUtility.has_user_header": { + "executed_lines": [264, 265], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 263 + }, + "MailTemplatesUtility.get_setting": { + "executed_lines": [272], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 270 + }, + "MailTemplatesUtility.get_mailer": { + "executed_lines": [291, 292, 293, 295], + "summary": { + "covered_lines": 4, + "num_statements": 4, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 289 + }, + "MailTemplatesUtility.registered_notify": { + "executed_lines": [299, 300], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 297 + }, + "MailTemplatesUtility.mail_relink": { + "executed_lines": [304, 305], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 302 + }, + "MailTemplatesUtility.mail_form": { + "executed_lines": [308], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 307 + }, + "ReactivationUtility.portal": { + "executed_lines": [329], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 328 + }, + "ReactivationUtility.user_id": { + "executed_lines": [334, 335, 336, 337, 338, 339], + "summary": { + "covered_lines": 6, + "num_statements": 6, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 332 + }, + "ReactivationUtility.request_reactivation": { + "executed_lines": [343, 344, 346, 347, 348], + "summary": { + "covered_lines": 5, + "num_statements": 5, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 341 + }, + "ReactivationUtility._expired": { + "executed_lines": [352, 353], + "summary": { + "covered_lines": 2, + "num_statements": 4, + "percent_covered": 50.0, + "percent_covered_display": "50", + "missing_lines": 2, + "excluded_lines": 0, + "percent_statements_covered": 50.0, + "percent_statements_covered_display": "50" + }, + "missing_lines": [354, 355], + "excluded_lines": [], + "start_line": 350 + }, + "ReactivationUtility._validate": { + "executed_lines": [363, 364, 365, 368, 369, 370, 371, 372], + "summary": { + "covered_lines": 8, + "num_statements": 10, + "percent_covered": 80.0, + "percent_covered_display": "80", + "missing_lines": 2, + "excluded_lines": 0, + "percent_statements_covered": 80.0, + "percent_statements_covered_display": "80" + }, + "missing_lines": [366, 367], + "excluded_lines": [], + "start_line": 357 + }, + "ReactivationUtility.set_activation_key": { + "executed_lines": [376, 378, 379, 380, 381, 382, 386], + "summary": { + "covered_lines": 7, + "num_statements": 8, + "percent_covered": 87.5, + "percent_covered_display": "88", + "missing_lines": 1, + "excluded_lines": 0, + "percent_statements_covered": 87.5, + "percent_statements_covered_display": "88" + }, + "missing_lines": [377], + "excluded_lines": [], + "start_line": 374 + }, + "ReactivationUtility.get_activation_key": { + "executed_lines": [390, 392, 393, 394, 395], + "summary": { + "covered_lines": 5, + "num_statements": 6, + "percent_covered": 83.33333333333333, + "percent_covered_display": "83", + "missing_lines": 1, + "excluded_lines": 0, + "percent_statements_covered": 83.33333333333333, + "percent_statements_covered_display": "83" + }, + "missing_lines": [391], + "excluded_lines": [], + "start_line": 388 + }, + "ReactivationUtility.reactivate_user": { + "executed_lines": [399, 400, 402, 403, 406, 407, 408], + "summary": { + "covered_lines": 7, + "num_statements": 7, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 397 + }, + "ReactivationUtility.purge_activation_keys": { + "executed_lines": [ + 412, 413, 414, 415, 416, 418, 419, 420, 421, 422, 423, + 427, 428 + ], + "summary": { + "covered_lines": 13, + "num_statements": 16, + "percent_covered": 81.25, + "percent_covered_display": "81", + "missing_lines": 3, + "excluded_lines": 0, + "percent_statements_covered": 81.25, + "percent_statements_covered_display": "81" + }, + "missing_lines": [424, 425, 426], + "excluded_lines": [], + "start_line": 410 + }, + "ReactivationUtility.current_user_status": { + "executed_lines": [432, 433, 434, 435, 436, 437], + "summary": { + "covered_lines": 6, + "num_statements": 6, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 430 + }, + "notify_activated": { + "executed_lines": [442, 443, 444, 445, 446], + "summary": { + "covered_lines": 5, + "num_statements": 11, + "percent_covered": 45.45454545454545, + "percent_covered_display": "45", + "missing_lines": 6, + "excluded_lines": 0, + "percent_statements_covered": 45.45454545454545, + "percent_statements_covered_display": "45" + }, + "missing_lines": [447, 448, 449, 450, 451, 452], + "excluded_lines": [], + "start_line": 440 + }, + "is_null": { + "executed_lines": [463, 464, 465, 466, 467, 468], + "summary": { + "covered_lines": 6, + "num_statements": 6, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 461 + }, + "": { + "executed_lines": [ + 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, + 26, 27, 29, 35, 38, 41, 46, 49, 50, 54, 58, 66, 67, 70, + 78, 92, 93, 103, 113, 117, 118, 123, 136, 141, 145, 149, + 153, 154, 174, 198, 234, 263, 268, 269, 270, 274, 282, + 289, 297, 302, 307, 311, 325, 327, 328, 331, 332, 341, + 350, 357, 374, 388, 397, 410, 430, 440, 461 + ], + "summary": { + "covered_lines": 73, + "num_statements": 73, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 1, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [88], + "start_line": 1 + } + }, + "classes": { + "SingleSignonUtility": { + "executed_lines": [ + 52, 56, 62, 63, 64, 68, 75, 76, 80, 81, 82, 83, 84, 85, + 86, 95, 96, 97, 98, 99, 100, 101, 105, 106, 107, 108, + 109, 111, 121, 125, 126, 127, 128, 132, 134, 138, 139, + 143, 147, 151, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 176, 177, 178, 179, 180, 181, 182, 187, + 188, 189, 190, 200, 201, 203, 204, 205, 209, 210, 212, + 213, 214, 215, 216, 218, 219, 220, 221, 229, 231, 232, + 244, 245, 246, 248, 249, 250, 252, 253, 254, 257, 258, + 259, 260, 261, 264, 265 + ], + "summary": { + "covered_lines": 97, + "num_statements": 104, + "percent_covered": 93.26923076923077, + "percent_covered_display": "93", + "missing_lines": 7, + "excluded_lines": 2, + "percent_statements_covered": 93.26923076923077, + "percent_statements_covered_display": "93" + }, + "missing_lines": [114, 115, 129, 130, 206, 207, 208], + "excluded_lines": [89, 90], + "start_line": 46 + }, + "MailTemplatesUtility": { + "executed_lines": [ + 272, 291, 292, 293, 295, 299, 300, 304, 305, 308 + ], + "summary": { + "covered_lines": 10, + "num_statements": 10, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 268 + }, + "ReactivationUtility": { + "executed_lines": [ + 329, 334, 335, 336, 337, 338, 339, 343, 344, 346, 347, + 348, 352, 353, 363, 364, 365, 368, 369, 370, 371, 372, + 376, 378, 379, 380, 381, 382, 386, 390, 392, 393, 394, + 395, 399, 400, 402, 403, 406, 407, 408, 412, 413, 414, + 415, 416, 418, 419, 420, 421, 422, 423, 427, 428, 432, + 433, 434, 435, 436, 437 + ], + "summary": { + "covered_lines": 60, + "num_statements": 69, + "percent_covered": 86.95652173913044, + "percent_covered_display": "87", + "missing_lines": 9, + "excluded_lines": 0, + "percent_statements_covered": 86.95652173913044, + "percent_statements_covered_display": "87" + }, + "missing_lines": [ + 354, 355, 366, 367, 377, 391, 424, 425, 426 + ], + "excluded_lines": [], + "start_line": 311 + }, + "": { + "executed_lines": [ + 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, + 26, 27, 29, 35, 38, 41, 43, 46, 49, 50, 54, 58, 66, 67, + 70, 78, 92, 93, 103, 113, 117, 118, 123, 136, 141, 145, + 149, 153, 154, 174, 198, 234, 263, 268, 269, 270, 274, + 282, 289, 297, 302, 307, 311, 325, 327, 328, 331, 332, + 341, 350, 357, 374, 388, 397, 410, 430, 440, 442, 443, + 444, 445, 446, 461, 463, 464, 465, 466, 467, 468 + ], + "summary": { + "covered_lines": 85, + "num_statements": 91, + "percent_covered": 93.4065934065934, + "percent_covered_display": "93", + "missing_lines": 6, + "excluded_lines": 1, + "percent_statements_covered": 93.4065934065934, + "percent_statements_covered_display": "93" + }, + "missing_lines": [447, 448, 449, 450, 451, 452], + "excluded_lines": [88], + "start_line": 1 + } + } + }, + "src\\ims\\sso\\vocabulary.py": { + "executed_lines": [1, 2, 3, 4, 6, 7, 10, 11, 12, 13, 16, 17, 18], + "summary": { + "covered_lines": 13, + "num_statements": 13, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "functions": { + "mail_idps": { + "executed_lines": [12, 13], + "summary": { + "covered_lines": 2, + "num_statements": 2, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 11 + }, + "active_status": { + "executed_lines": [18], + "summary": { + "covered_lines": 1, + "num_statements": 1, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 17 + }, + "": { + "executed_lines": [1, 2, 3, 4, 6, 7, 10, 11, 16, 17], + "summary": { + "covered_lines": 10, + "num_statements": 10, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + }, + "classes": { + "": { + "executed_lines": [ + 1, 2, 3, 4, 6, 7, 10, 11, 12, 13, 16, 17, 18 + ], + "summary": { + "covered_lines": 13, + "num_statements": 13, + "percent_covered": 100.0, + "percent_covered_display": "100", + "missing_lines": 0, + "excluded_lines": 0, + "percent_statements_covered": 100.0, + "percent_statements_covered_display": "100" + }, + "missing_lines": [], + "excluded_lines": [], + "start_line": 1 + } + } + } + }, + "totals": { + "covered_lines": 1179, + "num_statements": 1218, + "percent_covered": 96.79802955665025, + "percent_covered_display": "97", + "missing_lines": 39, + "excluded_lines": 7, + "percent_statements_covered": 96.79802955665025, + "percent_statements_covered_display": "97" + } +} diff --git a/package.json b/package.json index 54ed0ef..1b1102b 100644 --- a/package.json +++ b/package.json @@ -29,4 +29,4 @@ "main": "webpack.config.js", "keywords": [], "author": "" -} \ No newline at end of file +} diff --git a/resources/personal.js b/resources/personal.js index 640756c..dc9d3a8 100644 --- a/resources/personal.js +++ b/resources/personal.js @@ -11,18 +11,18 @@ $(document).ready(function () { function (field_index, field_value) { let el = $( "body.template-" + - template_value + - " #form-widgets-" + - field_value, + template_value + + " #form-widgets-" + + field_value, ); if (el.length) { el.addClass("d-none"); el.after( '', + field_value + + '" class="form-control" id="fake_' + + field_value + + '" />', ); let fake_el = $("#fake_" + field_value); fake_el.val(el.val()); diff --git a/src/ims/sso/browser/login.py b/src/ims/sso/browser/login.py index c80c756..251a112 100644 --- a/src/ims/sso/browser/login.py +++ b/src/ims/sso/browser/login.py @@ -144,7 +144,6 @@ def __call__(self): class RequireLoginView(BrowserView): def __call__(self, *args, **kw): - utility = getUtility(ISingleSignonUtility) if utility.is_plone_authenticated(): diff --git a/src/ims/sso/browser/templates/usergroups_usersoverview.pt b/src/ims/sso/browser/templates/usergroups_usersoverview.pt index cc6da51..bf3da5e 100644 --- a/src/ims/sso/browser/templates/usergroups_usersoverview.pt +++ b/src/ims/sso/browser/templates/usergroups_usersoverview.pt @@ -230,7 +230,10 @@ - +
- - + + @@ -554,7 +557,10 @@ - +
diff --git a/src/ims/sso/profiles/default/registry/settings.xml b/src/ims/sso/profiles/default/registry/settings.xml index 847078d..25ada99 100644 --- a/src/ims/sso/profiles/default/registry/settings.xml +++ b/src/ims/sso/profiles/default/registry/settings.xml @@ -1,4 +1,4 @@ - + From 9f5df0e5e1eb0226858ce48e189aa0b50714e66e Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Thu, 3 Sep 2026 16:06:10 -0400 Subject: [PATCH 02/18] update --- tests/test_active_status.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/tests/test_active_status.py b/tests/test_active_status.py index 3680baf..cc97758 100644 --- a/tests/test_active_status.py +++ b/tests/test_active_status.py @@ -28,6 +28,12 @@ def setup_users(self, portal): roles=["Member", "Manager"], properties={"active": "active"}, ) + api.user.create( + username="service", + email="noreply@nohost.com", + roles=["Member", "Manager"], + properties={"active": "active", "service": True}, + ) # os.environ["PLONE_CSRF_DISABLED"] = "true" def test_deactivate(self, portal): @@ -43,10 +49,19 @@ def test_cant_deactivate_manager(self, portal): view = api.content.get_view("usergroup-userprefs", context=portal) view.request.environ["HTTP_X_CSRF_TOKEN"] = createToken() view.request.method = "POST" - rec = RequestRecord(id="manager", reset_email="noreply@nohost.com", active="active") + rec = RequestRecord(id="manager", reset_email="noreply@nohost.com", active="inactive") view.manageUser(users=(rec,)) assert api.user.get("manager").getProperty("active") == "active" + def test_cant_deactivate_service_account(self, portal): + """User cannot deactivate a servive account""" + view = api.content.get_view("usergroup-userprefs", context=portal) + view.request.environ["HTTP_X_CSRF_TOKEN"] = createToken() + view.request.method = "POST" + rec = RequestRecord(id="service", reset_email="noreply@nohost.com", active="inactive") + view.manageUser(users=(rec,)) + assert api.user.get("service").getProperty("active") == "active" + def test_cant_deactivate_without_permission(self, portal): """User must have permission to deactivate/reactivate""" with api.env.adopt_user("siteadmin"): From 2ff8b623232e6ce68de151d2287f5728866c1f85 Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Thu, 3 Sep 2026 19:21:09 -0400 Subject: [PATCH 03/18] test --- tests/test_cron.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/test_cron.py b/tests/test_cron.py index 1626f13..8cdd5b9 100644 --- a/tests/test_cron.py +++ b/tests/test_cron.py @@ -26,6 +26,18 @@ def setup_users(self, portal, sso): email="noreply@imsweb.com", properties={"active": "active", "created_date": datetime.date.today()}, ) + self.manager = api.user.create( + username="manager", + email="noreply@imsweb.com", + roles=["Member", "Manager"], + properties={"active": "active", "created_date": datetime.date(2000, 1, 1)}, + ) + self.service = api.user.create( + username="service", + email="noreply@imsweb.com", + roles=["Member", "Manager"], + properties={"active": "active", "created_date": datetime.date(2000, 1, 1), "service": True}, + ) sso.set_login_name(user_id=self.user1.getId(), login_name=f"x@{NOT_LINKED}") sso.set_login_name(user_id=self.user2.getId(), login_name=f"y@{NOT_LINKED}") @@ -38,6 +50,8 @@ def test_purge_unlinked(self, view): assert api.user.get("user1") is None assert api.user.get("user2") is not None + assert api.user.get("manager") is not None + assert api.user.get("service") is not None def test_disable_user_accounts(self, sso, view): self.user1.setMemberProperties({"activation_date": datetime.date.today()}) From 640905c9f2e6a3f3b2de61abd29d032d904238f3 Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Thu, 3 Sep 2026 19:26:44 -0400 Subject: [PATCH 04/18] assert --- tests/test_cron.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/test_cron.py b/tests/test_cron.py index 8cdd5b9..3349d91 100644 --- a/tests/test_cron.py +++ b/tests/test_cron.py @@ -69,9 +69,17 @@ def test_disable_user_accounts(self, sso, view): self.user2.setMemberProperties({ "activation_date": datetime.date.today() - datetime.timedelta(self.disabled_days + 1) }) + self.manager.setMemberProperties({ + "activation_date": datetime.date.today() - datetime.timedelta(self.disabled_days + 1) + }) + self.service.setMemberProperties({ + "activation_date": datetime.date.today() - datetime.timedelta(self.disabled_days + 1) + }) view() assert api.user.get("user1").getProperty("active") == "inactive" assert api.user.get("user2").getProperty("active") == "disabled" + assert api.user.get("manager").getProperty("active") == "active" + assert api.user.get("service").getProperty("active") == "active" def test_purge_activation_keys(self, portal, view): annotations = IAnnotations(portal) From bca1fe39c6fc9b0abc9c9ae4b54671a1c5af164c Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Thu, 3 Sep 2026 19:48:05 -0400 Subject: [PATCH 05/18] assert --- tests/test_cron.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tests/test_cron.py b/tests/test_cron.py index 3349d91..b57214a 100644 --- a/tests/test_cron.py +++ b/tests/test_cron.py @@ -70,10 +70,10 @@ def test_disable_user_accounts(self, sso, view): "activation_date": datetime.date.today() - datetime.timedelta(self.disabled_days + 1) }) self.manager.setMemberProperties({ - "activation_date": datetime.date.today() - datetime.timedelta(self.disabled_days + 1) + "activation_date": datetime.date.today() - datetime.timedelta(self.inactive_days + 1) }) self.service.setMemberProperties({ - "activation_date": datetime.date.today() - datetime.timedelta(self.disabled_days + 1) + "activation_date": datetime.date.today() - datetime.timedelta(self.inactive_days + 1) }) view() assert api.user.get("user1").getProperty("active") == "inactive" @@ -81,6 +81,16 @@ def test_disable_user_accounts(self, sso, view): assert api.user.get("manager").getProperty("active") == "active" assert api.user.get("service").getProperty("active") == "active" + self.manager.setMemberProperties({ + "activation_date": datetime.date.today() - datetime.timedelta(self.disabled_days + 1) + }) + self.service.setMemberProperties({ + "activation_date": datetime.date.today() - datetime.timedelta(self.disabled_days + 1) + }) + view() + assert api.user.get("manager").getProperty("active") == "active" + assert api.user.get("service").getProperty("active") == "active" + def test_purge_activation_keys(self, portal, view): annotations = IAnnotations(portal) activation_key = "_test_key" From 4341d892a92b31b3c47ff6b56a02a2a7a6632b02 Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Thu, 3 Sep 2026 20:49:02 -0400 Subject: [PATCH 06/18] assert --- tests/test_active_status.py | 9 ++++++++- tests/test_cron.py | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/test_active_status.py b/tests/test_active_status.py index cc97758..f70f6df 100644 --- a/tests/test_active_status.py +++ b/tests/test_active_status.py @@ -54,7 +54,7 @@ def test_cant_deactivate_manager(self, portal): assert api.user.get("manager").getProperty("active") == "active" def test_cant_deactivate_service_account(self, portal): - """User cannot deactivate a servive account""" + """User cannot deactivate a service account""" view = api.content.get_view("usergroup-userprefs", context=portal) view.request.environ["HTTP_X_CSRF_TOKEN"] = createToken() view.request.method = "POST" @@ -80,3 +80,10 @@ def test_cant_deactivate_without_permission(self, portal): rec = RequestRecord(id="siteadmin", reset_email="noreply@nohost.com", active="inactive") view.manageUser(users=(rec,)) assert api.user.get("siteadmin").getProperty("active") == "inactive" + + view = api.content.get_view("usergroup-userprefs", context=portal) + view.request.environ["HTTP_X_CSRF_TOKEN"] = createToken() + view.request.method = "POST" + rec = RequestRecord(id="service", reset_email="noreply@nohost.com", active="inactive") + view.manageUser(users=(rec,)) + assert api.user.get("service").getProperty("active") == "active" diff --git a/tests/test_cron.py b/tests/test_cron.py index b57214a..345e426 100644 --- a/tests/test_cron.py +++ b/tests/test_cron.py @@ -91,6 +91,8 @@ def test_disable_user_accounts(self, sso, view): assert api.user.get("manager").getProperty("active") == "active" assert api.user.get("service").getProperty("active") == "active" + def test_service_account_off(self ): + def test_purge_activation_keys(self, portal, view): annotations = IAnnotations(portal) activation_key = "_test_key" From 0cfac839d0a53437cfc5c26e0912140fa69323f4 Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Thu, 3 Sep 2026 20:52:40 -0400 Subject: [PATCH 07/18] assert --- tests/test_cron.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/test_cron.py b/tests/test_cron.py index 345e426..ad1b9c7 100644 --- a/tests/test_cron.py +++ b/tests/test_cron.py @@ -91,7 +91,6 @@ def test_disable_user_accounts(self, sso, view): assert api.user.get("manager").getProperty("active") == "active" assert api.user.get("service").getProperty("active") == "active" - def test_service_account_off(self ): def test_purge_activation_keys(self, portal, view): annotations = IAnnotations(portal) From 137053a79456c9bac66ff38ba5eec98aa83132e2 Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Fri, 4 Sep 2026 10:27:17 -0400 Subject: [PATCH 08/18] update --- src/ims/sso/static/main.css.map | 0 tests/functional/test_usergroup_userprefs.py | 18 +++++++++--------- tests/test_active_status.py | 7 ------- 3 files changed, 9 insertions(+), 16 deletions(-) create mode 100644 src/ims/sso/static/main.css.map diff --git a/src/ims/sso/static/main.css.map b/src/ims/sso/static/main.css.map new file mode 100644 index 0000000..e69de29 diff --git a/tests/functional/test_usergroup_userprefs.py b/tests/functional/test_usergroup_userprefs.py index a37d7b6..75efe6c 100644 --- a/tests/functional/test_usergroup_userprefs.py +++ b/tests/functional/test_usergroup_userprefs.py @@ -61,6 +61,12 @@ def setup_users(self, portal, sso): roles=["Member"], properties={"active": INACTIVE_STATUS}, ) + api.user.create( + username="api", + email="noreply@nohost.com", + roles=["Member"], + properties={"active": ACTIVE_STATUS, "service": True}, + ) sso.set_login_name("unlinked", f"123@{NOT_LINKED}") commit() @@ -169,20 +175,12 @@ def test_show_date_not_set(self, browser, sso): def test_sort_service_accounts(self, browser): """Service accounts are sorted last alphabetically""" - api.user.create( - username="api", - email="noreply@nohost.com", - roles=["Member"], - properties={"active": ACTIVE_STATUS, "service": True}, - ) - commit() - browser.open(self.view_url) soup = BeautifulSoup(browser.contents, "html.parser") assert len(soup.find_all("td", {"data-sort": "zzapi"})) == 1 assert not soup.find_all("td", {"data-sort": "api"}) - def test_cant_deactivate_manager(self, browser, setup_users): + def test_cant_deactivate_manager_and_service(self, browser, setup_users): browser.open(self.view_url) ctrl = browser.getControl @@ -191,6 +189,8 @@ def test_cant_deactivate_manager(self, browser, setup_users): for idx, el in enumerate(soup.find_all("input", {"name": "users.id:records"})): if el.attrs["value"] == "manager": assert ctrl(name="users.active:records", index=idx).disabled + elif el.attrs["value"] == "api": + assert ctrl(name="users.active:records", index=idx).disabled else: assert not ctrl(name="users.active:records", index=idx).disabled diff --git a/tests/test_active_status.py b/tests/test_active_status.py index f70f6df..ced0caa 100644 --- a/tests/test_active_status.py +++ b/tests/test_active_status.py @@ -80,10 +80,3 @@ def test_cant_deactivate_without_permission(self, portal): rec = RequestRecord(id="siteadmin", reset_email="noreply@nohost.com", active="inactive") view.manageUser(users=(rec,)) assert api.user.get("siteadmin").getProperty("active") == "inactive" - - view = api.content.get_view("usergroup-userprefs", context=portal) - view.request.environ["HTTP_X_CSRF_TOKEN"] = createToken() - view.request.method = "POST" - rec = RequestRecord(id="service", reset_email="noreply@nohost.com", active="inactive") - view.manageUser(users=(rec,)) - assert api.user.get("service").getProperty("active") == "active" From 1759e128b0a2305c35abd38d21af77b3af28a4cd Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Fri, 4 Sep 2026 13:54:27 -0400 Subject: [PATCH 09/18] update --- tests/functional/test_usergroup_userprefs.py | 18 +++++++++--------- tests/test_login.py | 7 +++++-- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/tests/functional/test_usergroup_userprefs.py b/tests/functional/test_usergroup_userprefs.py index 75efe6c..a37d7b6 100644 --- a/tests/functional/test_usergroup_userprefs.py +++ b/tests/functional/test_usergroup_userprefs.py @@ -61,12 +61,6 @@ def setup_users(self, portal, sso): roles=["Member"], properties={"active": INACTIVE_STATUS}, ) - api.user.create( - username="api", - email="noreply@nohost.com", - roles=["Member"], - properties={"active": ACTIVE_STATUS, "service": True}, - ) sso.set_login_name("unlinked", f"123@{NOT_LINKED}") commit() @@ -175,12 +169,20 @@ def test_show_date_not_set(self, browser, sso): def test_sort_service_accounts(self, browser): """Service accounts are sorted last alphabetically""" + api.user.create( + username="api", + email="noreply@nohost.com", + roles=["Member"], + properties={"active": ACTIVE_STATUS, "service": True}, + ) + commit() + browser.open(self.view_url) soup = BeautifulSoup(browser.contents, "html.parser") assert len(soup.find_all("td", {"data-sort": "zzapi"})) == 1 assert not soup.find_all("td", {"data-sort": "api"}) - def test_cant_deactivate_manager_and_service(self, browser, setup_users): + def test_cant_deactivate_manager(self, browser, setup_users): browser.open(self.view_url) ctrl = browser.getControl @@ -189,8 +191,6 @@ def test_cant_deactivate_manager_and_service(self, browser, setup_users): for idx, el in enumerate(soup.find_all("input", {"name": "users.id:records"})): if el.attrs["value"] == "manager": assert ctrl(name="users.active:records", index=idx).disabled - elif el.attrs["value"] == "api": - assert ctrl(name="users.active:records", index=idx).disabled else: assert not ctrl(name="users.active:records", index=idx).disabled diff --git a/tests/test_login.py b/tests/test_login.py index 63810d6..033e45c 100644 --- a/tests/test_login.py +++ b/tests/test_login.py @@ -14,12 +14,15 @@ def test_change_password(self, portal): def test_login_url(self, portal): view = api.content.get_view(context=portal, name="get_login_url") - assert view() == "http://nohost/plone/@@login?came_from=http://nohost" + base_url = portal.absolute_url() + + assert view() == f"{base_url}/@@login?came_from={base_url}" def test_missing_plugin(self, portal): portal.acl_users.manage_delObjects(["ims_sso_plugin"]) view = api.content.get_view(context=portal, name="get_login_url") - assert view() == "http://nohost/plone" + + assert view() == portal.absolute_url() def test_login_condition_yes_plone(self, portal): """Plone authenticated""" From 0bc19501218e020028480d94762615cf6f46afe7 Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Fri, 4 Sep 2026 14:48:41 -0400 Subject: [PATCH 10/18] fix --- tests/test_cron.py | 1 - tests/test_login.py | 3 ++- tests/test_views.py | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/test_cron.py b/tests/test_cron.py index ad1b9c7..b57214a 100644 --- a/tests/test_cron.py +++ b/tests/test_cron.py @@ -91,7 +91,6 @@ def test_disable_user_accounts(self, sso, view): assert api.user.get("manager").getProperty("active") == "active" assert api.user.get("service").getProperty("active") == "active" - def test_purge_activation_keys(self, portal, view): annotations = IAnnotations(portal) activation_key = "_test_key" diff --git a/tests/test_login.py b/tests/test_login.py index 033e45c..2f1c15f 100644 --- a/tests/test_login.py +++ b/tests/test_login.py @@ -15,8 +15,9 @@ def test_change_password(self, portal): def test_login_url(self, portal): view = api.content.get_view(context=portal, name="get_login_url") base_url = portal.absolute_url() + actual_url = view.request.ACTUAL_URL - assert view() == f"{base_url}/@@login?came_from={base_url}" + assert view() == f"{base_url}/@@login?came_from={actual_url}" def test_missing_plugin(self, portal): portal.acl_users.manage_delObjects(["ims_sso_plugin"]) diff --git a/tests/test_views.py b/tests/test_views.py index 965c06c..e9d24fb 100644 --- a/tests/test_views.py +++ b/tests/test_views.py @@ -37,7 +37,10 @@ def setup_users(self, http_request, sso): def test_login_url(self, portal): view = api.content.get_view("get_login_url", context=portal) - assert view() == "http://nohost/plone/@@login?came_from=http://nohost" + base_url = portal.absolute_url() + actual_url = view.request.ACTUAL_URL + + assert view() == f"{base_url}/@@login?came_from={actual_url}" def test_viewlet_auth_unauth(self, portal): zope.logout() From 7d65dc86f53ba78839f1cdfc4dee0113ade62b91 Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Fri, 4 Sep 2026 14:55:10 -0400 Subject: [PATCH 11/18] update --- tests/test_active_status.py | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/tests/test_active_status.py b/tests/test_active_status.py index ced0caa..8951f6d 100644 --- a/tests/test_active_status.py +++ b/tests/test_active_status.py @@ -44,24 +44,6 @@ def test_deactivate(self, portal): view.manageUser(users=(rec,)) assert api.user.get("siteadmin").getProperty("active") == "inactive" - def test_cant_deactivate_manager(self, portal): - """User cannot deactivate someone with the Manager role""" - view = api.content.get_view("usergroup-userprefs", context=portal) - view.request.environ["HTTP_X_CSRF_TOKEN"] = createToken() - view.request.method = "POST" - rec = RequestRecord(id="manager", reset_email="noreply@nohost.com", active="inactive") - view.manageUser(users=(rec,)) - assert api.user.get("manager").getProperty("active") == "active" - - def test_cant_deactivate_service_account(self, portal): - """User cannot deactivate a service account""" - view = api.content.get_view("usergroup-userprefs", context=portal) - view.request.environ["HTTP_X_CSRF_TOKEN"] = createToken() - view.request.method = "POST" - rec = RequestRecord(id="service", reset_email="noreply@nohost.com", active="inactive") - view.manageUser(users=(rec,)) - assert api.user.get("service").getProperty("active") == "active" - def test_cant_deactivate_without_permission(self, portal): """User must have permission to deactivate/reactivate""" with api.env.adopt_user("siteadmin"): From c4d29cdbd7b87428cbac93c964603c7d3d63bff2 Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Fri, 4 Sep 2026 14:55:54 -0400 Subject: [PATCH 12/18] update --- tests/test_active_status.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/test_active_status.py b/tests/test_active_status.py index 8951f6d..9ad6b58 100644 --- a/tests/test_active_status.py +++ b/tests/test_active_status.py @@ -44,6 +44,15 @@ def test_deactivate(self, portal): view.manageUser(users=(rec,)) assert api.user.get("siteadmin").getProperty("active") == "inactive" + def test_cant_deactivate_manager(self, portal): + """User cannot deactivate someone with the Manager role""" + view = api.content.get_view("usergroup-userprefs", context=portal) + view.request.environ["HTTP_X_CSRF_TOKEN"] = createToken() + view.request.method = "POST" + rec = RequestRecord(id="manager", reset_email="noreply@nohost.com", active="inactive") + view.manageUser(users=(rec,)) + assert api.user.get("manager").getProperty("active") == "active" + def test_cant_deactivate_without_permission(self, portal): """User must have permission to deactivate/reactivate""" with api.env.adopt_user("siteadmin"): From 4ae9bc99e5dbc6439a44a886909e3d3ef47230d4 Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Fri, 4 Sep 2026 15:01:10 -0400 Subject: [PATCH 13/18] update --- tests/test_active_status.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/tests/test_active_status.py b/tests/test_active_status.py index 9ad6b58..8951f6d 100644 --- a/tests/test_active_status.py +++ b/tests/test_active_status.py @@ -44,15 +44,6 @@ def test_deactivate(self, portal): view.manageUser(users=(rec,)) assert api.user.get("siteadmin").getProperty("active") == "inactive" - def test_cant_deactivate_manager(self, portal): - """User cannot deactivate someone with the Manager role""" - view = api.content.get_view("usergroup-userprefs", context=portal) - view.request.environ["HTTP_X_CSRF_TOKEN"] = createToken() - view.request.method = "POST" - rec = RequestRecord(id="manager", reset_email="noreply@nohost.com", active="inactive") - view.manageUser(users=(rec,)) - assert api.user.get("manager").getProperty("active") == "active" - def test_cant_deactivate_without_permission(self, portal): """User must have permission to deactivate/reactivate""" with api.env.adopt_user("siteadmin"): From f481c1b1133852de645bb6cb7bfc831177574a9e Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Fri, 4 Sep 2026 15:05:09 -0400 Subject: [PATCH 14/18] update --- tests/test_active_status.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/test_active_status.py b/tests/test_active_status.py index 8951f6d..27ca018 100644 --- a/tests/test_active_status.py +++ b/tests/test_active_status.py @@ -28,12 +28,6 @@ def setup_users(self, portal): roles=["Member", "Manager"], properties={"active": "active"}, ) - api.user.create( - username="service", - email="noreply@nohost.com", - roles=["Member", "Manager"], - properties={"active": "active", "service": True}, - ) # os.environ["PLONE_CSRF_DISABLED"] = "true" def test_deactivate(self, portal): From 68bfdb47ed2d654dbc51b720c3733d366321ddf8 Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Fri, 4 Sep 2026 15:39:54 -0400 Subject: [PATCH 15/18] update --- .github/workflows/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ecce06c..49bfdbc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -52,6 +52,8 @@ jobs: needs: test runs-on: ubuntu-latest steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v3 - name: Install dependencies run: | pip install sphinx sphinx_rtd_theme sphinx-tabs sphinx-copybutton From 7a973bb32512d779e5df4b148bd3c66ed7211fcc Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Fri, 4 Sep 2026 15:54:05 -0400 Subject: [PATCH 16/18] update --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 49bfdbc..f5e4b99 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -49,7 +49,6 @@ jobs: pytest --cov=. --cov-report=html docs: - needs: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 From 3c3d2a90992c6c69703940aec87dc91a0f2b0a89 Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Fri, 4 Sep 2026 16:09:19 -0400 Subject: [PATCH 17/18] update --- .github/workflows/main.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f5e4b99..2b4fd02 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -60,8 +60,6 @@ jobs: - name: Sphinx build run: | sphinx-build docs _build - cp -a htmlcov/ _build/htmlcov - ls -la _build/htmlcov/ - name: Deploy to GitHub Pages uses: peaceiris/actions-gh-pages@v3 From a04e0387a87edd1b1eb2c7941f8e7c6a0fd4e17d Mon Sep 17 00:00:00 2001 From: "Dumay, Taina (IMS)" Date: Fri, 4 Sep 2026 16:13:42 -0400 Subject: [PATCH 18/18] chore --- changes/71954.chore | 1 + 1 file changed, 1 insertion(+) create mode 100644 changes/71954.chore diff --git a/changes/71954.chore b/changes/71954.chore new file mode 100644 index 0000000..70b1dc7 --- /dev/null +++ b/changes/71954.chore @@ -0,0 +1 @@ +add test to ensure service accounts can't be manually changed \ No newline at end of file