From 222533f2b3c5c8173da744692dce8868a56bcf34 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 13 Oct 2025 22:54:35 +0000 Subject: [PATCH 1/5] Initial plan From b93076e02c91d99b41f5499b54386faa979e2de6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 13 Oct 2025 22:57:29 +0000 Subject: [PATCH 2/5] Initial plan for improving test coverage Co-authored-by: talltechy <43618761+talltechy@users.noreply.github.com> --- coverage.json | 1 + tests/__pycache__/__init__.cpython-312.pyc | Bin 166 -> 166 bytes .../conftest.cpython-312-pytest-8.4.2.pyc | Bin 10248 -> 10248 bytes ...andardization.cpython-312-pytest-8.4.2.pyc | Bin 13555 -> 13555 bytes .../test_auth.cpython-312-pytest-8.4.2.pyc | Bin 24998 -> 24998 bytes .../test_client.cpython-312-pytest-8.4.2.pyc | Bin 36665 -> 36665 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 178 -> 178 bytes .../test_assets.cpython-312-pytest-8.4.2.pyc | Bin 30559 -> 30559 bytes .../test_base.cpython-312-pytest-8.4.2.pyc | Bin 30354 -> 30354 bytes 9 files changed, 1 insertion(+) create mode 100644 coverage.json diff --git a/coverage.json b/coverage.json new file mode 100644 index 0000000..d1fb222 --- /dev/null +++ b/coverage.json @@ -0,0 +1 @@ +{"meta": {"format": 3, "version": "7.10.7", "timestamp": "2025-10-13T22:56:28.370101", "branch_coverage": true, "show_contexts": false}, "files": {"src/__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/__init__.py": {"executed_lines": [1, 25, 26, 28, 29], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 25, 26, 28, 29], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 25, 26, 28, 29], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/__init__.py": {"executed_lines": [1, 8, 9, 10, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 8, 9, 10, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 8, 9, 10, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/asset_groups.py": {"executed_lines": [1, 8, 9, 12, 13, 47, 62, 79, 127, 174, 220, 232, 258, 277, 292], "summary": {"covered_lines": 13, "num_statements": 49, "percent_covered": 20.634920634920636, "percent_covered_display": "20.6", "missing_lines": 36, "excluded_lines": 0, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [59, 60, 76, 77, 113, 118, 119, 121, 122, 124, 125, 153, 154, 159, 168, 200, 202, 207, 208, 209, 210, 212, 213, 214, 215, 217, 218, 230, 254, 255, 256, 274, 275, 290, 305, 306], "excluded_lines": [], "executed_branches": [], "missing_branches": [[118, 119], [118, 121], [121, 122], [121, 124], [153, 154], [153, 159], [207, 208], [207, 209], [209, 210], [209, 212], [212, 213], [212, 214], [214, 215], [214, 217]], "functions": {"AssetGroupAPI.list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [59, 60], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetGroupAPI.get_group": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [76, 77], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetGroupAPI.create": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 7, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [113, 118, 119, 121, 122, 124, 125], "excluded_lines": [], "executed_branches": [], "missing_branches": [[118, 119], [118, 121], [121, 122], [121, 124]]}, "AssetGroupAPI.create_high_risk": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [153, 154, 159, 168], "excluded_lines": [], "executed_branches": [], "missing_branches": [[153, 154], [153, 159]]}, "AssetGroupAPI.update": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 12, "excluded_lines": 0, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [200, 202, 207, 208, 209, 210, 212, 213, 214, 215, 217, 218], "excluded_lines": [], "executed_branches": [], "missing_branches": [[207, 208], [207, 209], [209, 210], [209, 212], [212, 213], [212, 214], [214, 215], [214, 217]]}, "AssetGroupAPI.delete_group": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [230], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetGroupAPI.get_assets": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [254, 255, 256], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetGroupAPI.add_asset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [274, 275], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetGroupAPI.remove_asset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [290], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetGroupAPI.search_tags": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [305, 306], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 12, 13, 47, 62, 79, 127, 174, 220, 232, 258, 277, 292], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"AssetGroupAPI": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 36, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 36, "excluded_lines": 0, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [59, 60, 76, 77, 113, 118, 119, 121, 122, 124, 125, 153, 154, 159, 168, 200, 202, 207, 208, 209, 210, 212, 213, 214, 215, 217, 218, 230, 254, 255, 256, 274, 275, 290, 305, 306], "excluded_lines": [], "executed_branches": [], "missing_branches": [[118, 119], [118, 121], [121, 122], [121, 124], [153, 154], [153, 159], [207, 208], [207, 209], [209, 210], [209, 212], [212, 213], [212, 214], [214, 215], [214, 217]]}, "": {"executed_lines": [1, 8, 9, 12, 13, 47, 62, 79, 127, 174, 220, 232, 258, 277, 292], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/assets.py": {"executed_lines": [1, 8, 9, 12, 13, 46, 70, 75, 78, 81, 82, 84, 98, 99, 101, 121, 122, 124, 142, 143, 145, 146, 147, 149, 152, 155, 156, 158, 159, 161, 163, 165, 191, 213, 214, 215, 217, 232, 233, 235, 252], "summary": {"covered_lines": 39, "num_statements": 48, "percent_covered": 78.57142857142857, "percent_covered_display": "78.6", "missing_lines": 9, "excluded_lines": 0, "num_branches": 8, "num_partial_branches": 3, "covered_branches": 5, "missing_branches": 3}, "missing_lines": [76, 79, 150, 187, 188, 189, 249, 250, 263], "excluded_lines": [], "executed_branches": [[75, 78], [78, 81], [149, 152], [158, 159], [158, 161]], "missing_branches": [[75, 76], [78, 79], [149, 150]], "functions": {"AssetAPI.list": {"executed_lines": [70, 75, 78, 81, 82], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 63.63636363636363, "percent_covered_display": "63.6", "missing_lines": 2, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 2, "covered_branches": 2, "missing_branches": 2}, "missing_lines": [76, 79], "excluded_lines": [], "executed_branches": [[75, 78], [78, 81]], "missing_branches": [[75, 76], [78, 79]]}, "AssetAPI.get_asset": {"executed_lines": [98, 99], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetAPI.search": {"executed_lines": [121, 122], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetAPI.get_all": {"executed_lines": [142, 143, 145, 146, 147, 149, 152, 155, 156, 158, 159, 161, 163], "summary": {"covered_lines": 13, "num_statements": 14, "percent_covered": 88.88888888888889, "percent_covered_display": "88.9", "missing_lines": 1, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 1, "covered_branches": 3, "missing_branches": 1}, "missing_lines": [150], "excluded_lines": [], "executed_branches": [[149, 152], [158, 159], [158, 161]], "missing_branches": [[149, 150]]}, "AssetAPI.get_vulnerabilities": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [187, 188, 189], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetAPI.get_software": {"executed_lines": [213, 214, 215], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetAPI.get_tags": {"executed_lines": [232, 233], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetAPI.add_tag": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [249, 250], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetAPI.remove_tag": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [263], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 12, 13, 46, 84, 101, 124, 165, 191, 217, 235, 252], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"AssetAPI": {"executed_lines": [70, 75, 78, 81, 82, 98, 99, 121, 122, 142, 143, 145, 146, 147, 149, 152, 155, 156, 158, 159, 161, 163, 213, 214, 215, 232, 233], "summary": {"covered_lines": 27, "num_statements": 36, "percent_covered": 72.72727272727273, "percent_covered_display": "72.7", "missing_lines": 9, "excluded_lines": 0, "num_branches": 8, "num_partial_branches": 3, "covered_branches": 5, "missing_branches": 3}, "missing_lines": [76, 79, 150, 187, 188, 189, 249, 250, 263], "excluded_lines": [], "executed_branches": [[75, 78], [78, 81], [149, 152], [158, 159], [158, 161]], "missing_branches": [[75, 76], [78, 79], [149, 150]]}, "": {"executed_lines": [1, 8, 9, 12, 13, 46, 84, 101, 124, 165, 191, 217, 235, 252], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/base.py": {"executed_lines": [1, 8, 9, 10, 11, 12, 16, 19, 20, 40, 54, 55, 56, 59, 60, 61, 63, 66, 67, 69, 80, 81, 83, 125, 128, 129, 130, 132, 133, 134, 135, 136, 137, 139, 140, 141, 144, 145, 148, 150, 151, 152, 154, 174, 178, 198, 202, 222, 226, 244], "summary": {"covered_lines": 48, "num_statements": 48, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 12, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[59, 60], [59, 63], [66, -40], [66, 67], [132, 133], [132, 134], [134, 135], [134, 136], [136, 137], [136, 139], [144, 145], [144, 148]], "missing_branches": [], "functions": {"BaseAPI.__init__": {"executed_lines": [54, 55, 56, 59, 60, 61, 63, 66, 67], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[59, 60], [59, 63], [66, -40], [66, 67]], "missing_branches": []}, "BaseAPI._build_url": {"executed_lines": [80, 81], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "BaseAPI._request": {"executed_lines": [125, 128, 129, 130, 132, 133, 134, 135, 136, 137, 139, 140, 141, 144, 145, 148, 150, 151, 152], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 8, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[132, 133], [132, 134], [134, 135], [134, 136], [136, 137], [136, 139], [144, 145], [144, 148]], "missing_branches": []}, "BaseAPI.get": {"executed_lines": [174], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "BaseAPI.post": {"executed_lines": [198], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "BaseAPI.put": {"executed_lines": [222], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "BaseAPI.delete": {"executed_lines": [244], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 16, 19, 20, 40, 69, 83, 154, 178, 202, 226], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"BaseAPI": {"executed_lines": [54, 55, 56, 59, 60, 61, 63, 66, 67, 80, 81, 125, 128, 129, 130, 132, 133, 134, 135, 136, 137, 139, 140, 141, 144, 145, 148, 150, 151, 152, 174, 198, 222, 244], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 12, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[59, 60], [59, 63], [66, -40], [66, 67], [132, 133], [132, 134], [134, 135], [134, 136], [136, 137], [136, 139], [144, 145], [144, 148]], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 16, 19, 20, 40, 69, 83, 154, 178, 202, 226], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/reports.py": {"executed_lines": [1, 26, 27, 29, 32, 33, 46, 50, 75, 77, 78, 80, 82, 100, 133, 158, 175, 194, 212, 239, 262, 293, 309, 328, 346, 404, 422, 449, 480], "summary": {"covered_lines": 27, "num_statements": 79, "percent_covered": 29.473684210526315, "percent_covered_display": "29.5", "missing_lines": 52, "excluded_lines": 0, "num_branches": 16, "num_partial_branches": 1, "covered_branches": 1, "missing_branches": 15}, "missing_lines": [79, 98, 131, 155, 171, 189, 190, 210, 234, 257, 284, 289, 307, 326, 342, 381, 382, 383, 384, 386, 387, 388, 389, 395, 396, 397, 398, 402, 419, 420, 437, 438, 439, 440, 442, 447, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 508, 509, 515], "excluded_lines": [], "executed_branches": [[78, 80]], "missing_branches": [[78, 79], [386, 387], [386, 388], [388, 389], [388, 395], [395, 396], [395, 402], [397, 398], [397, 402], [439, 440], [439, 442], [471, 472], [471, 473], [475, 476], [475, 477]], "functions": {"ReportsAPI.list": {"executed_lines": [75, 77, 78, 80], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 71.42857142857143, "percent_covered_display": "71.4", "missing_lines": 1, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 1, "covered_branches": 1, "missing_branches": 1}, "missing_lines": [79], "excluded_lines": [], "executed_branches": [[78, 80]], "missing_branches": [[78, 79]]}, "ReportsAPI.get_report": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [98], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.create": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [131], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.update": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [155], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.delete_report": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [171], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.generate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [189, 190], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.get_history": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [210], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.get_instance": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [234], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.delete_instance": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [257], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.download": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [284, 289], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.get_templates": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [307], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.get_template": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [326], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.get_formats": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [342], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.wait_for_completion": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 13, "excluded_lines": 0, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [381, 382, 383, 384, 386, 387, 388, 389, 395, 396, 397, 398, 402], "excluded_lines": [], "executed_branches": [], "missing_branches": [[386, 387], [386, 388], [388, 389], [388, 395], [395, 396], [395, 402], [397, 398], [397, 402]]}, "ReportsAPI.is_complete": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [419, 420], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.get_latest_instance": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 6, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [437, 438, 439, 440, 442, 447], "excluded_lines": [], "executed_branches": [], "missing_branches": [[439, 440], [439, 442]]}, "ReportsAPI.get_all_reports": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 13, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478], "excluded_lines": [], "executed_branches": [], "missing_branches": [[471, 472], [471, 473], [475, 476], [475, 477]]}, "ReportsAPI.generate_and_download": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [508, 509, 515], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 26, 27, 29, 32, 33, 46, 50, 82, 100, 133, 158, 175, 194, 212, 239, 262, 293, 309, 328, 346, 404, 422, 449, 480], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"ReportsAPI": {"executed_lines": [75, 77, 78, 80], "summary": {"covered_lines": 4, "num_statements": 56, "percent_covered": 6.944444444444445, "percent_covered_display": "6.9", "missing_lines": 52, "excluded_lines": 0, "num_branches": 16, "num_partial_branches": 1, "covered_branches": 1, "missing_branches": 15}, "missing_lines": [79, 98, 131, 155, 171, 189, 190, 210, 234, 257, 284, 289, 307, 326, 342, 381, 382, 383, 384, 386, 387, 388, 389, 395, 396, 397, 398, 402, 419, 420, 437, 438, 439, 440, 442, 447, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 508, 509, 515], "excluded_lines": [], "executed_branches": [[78, 80]], "missing_branches": [[78, 79], [386, 387], [386, 388], [388, 389], [388, 395], [395, 396], [395, 402], [397, 398], [397, 402], [439, 440], [439, 442], [471, 472], [471, 473], [475, 476], [475, 477]]}, "": {"executed_lines": [1, 26, 27, 29, 32, 33, 46, 50, 82, 100, 133, 158, 175, 194, 212, 239, 262, 293, 309, 328, 346, 404, 422, 449, 480], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/scan_engines.py": {"executed_lines": [1, 9, 10, 13, 14, 40, 54, 58, 80, 106, 125, 145, 184, 222, 245, 267, 301, 320, 335, 353, 385, 409, 427, 447, 479, 513], "summary": {"covered_lines": 24, "num_statements": 65, "percent_covered": 32.0, "percent_covered_display": "32.0", "missing_lines": 41, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [78, 104, 123, 141, 175, 176, 177, 178, 211, 212, 213, 214, 243, 265, 296, 297, 298, 299, 318, 333, 351, 379, 402, 423, 442, 443, 445, 469, 470, 471, 473, 503, 504, 507, 508, 511, 537, 538, 541, 542, 545], "excluded_lines": [], "executed_branches": [], "missing_branches": [[176, 177], [176, 178], [212, 213], [212, 214], [297, 298], [297, 299], [507, 508], [507, 511], [541, 542], [541, 545]], "functions": {"ScanEngineAPI.__init__": {"executed_lines": [54], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [78], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.get_engine": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [104], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.update_engine": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [123], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.delete_engine": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [141], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.get_sites": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [175, 176, 177, 178], "excluded_lines": [], "executed_branches": [], "missing_branches": [[176, 177], [176, 178]]}, "ScanEngineAPI.get_scans": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [211, 212, 213, 214], "excluded_lines": [], "executed_branches": [], "missing_branches": [[212, 213], [212, 214]]}, "ScanEngineAPI.list_pools": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [243], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.get_pool": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [265], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.create_pool": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [296, 297, 298, 299], "excluded_lines": [], "executed_branches": [], "missing_branches": [[297, 298], [297, 299]]}, "ScanEngineAPI.update_pool": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [318], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.delete_pool": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [333], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.get_pool_engines": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [351], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.set_pool_engines": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [379], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.get_engine_pools": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [402], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.delete_shared_secret": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [423], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.get_available_engines": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [442, 443, 445], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.get_engine_summary": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [469, 470, 471, 473], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.assign_engine_to_pool": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [503, 504, 507, 508, 511], "excluded_lines": [], "executed_branches": [], "missing_branches": [[507, 508], [507, 511]]}, "ScanEngineAPI.remove_engine_from_pool": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [537, 538, 541, 542, 545], "excluded_lines": [], "executed_branches": [], "missing_branches": [[541, 542], [541, 545]]}, "": {"executed_lines": [1, 9, 10, 13, 14, 40, 58, 80, 106, 125, 145, 184, 222, 245, 267, 301, 320, 335, 353, 385, 409, 427, 447, 479, 513], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"ScanEngineAPI": {"executed_lines": [54], "summary": {"covered_lines": 1, "num_statements": 42, "percent_covered": 1.9230769230769231, "percent_covered_display": "1.9", "missing_lines": 41, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [78, 104, 123, 141, 175, 176, 177, 178, 211, 212, 213, 214, 243, 265, 296, 297, 298, 299, 318, 333, 351, 379, 402, 423, 442, 443, 445, 469, 470, 471, 473, 503, 504, 507, 508, 511, 537, 538, 541, 542, 545], "excluded_lines": [], "executed_branches": [], "missing_branches": [[176, 177], [176, 178], [212, 213], [212, 214], [297, 298], [297, 299], [507, 508], [507, 511], [541, 542], [541, 545]]}, "": {"executed_lines": [1, 9, 10, 13, 14, 40, 58, 80, 106, 125, 145, 184, 222, 245, 267, 301, 320, 335, 353, 385, 409, 427, 447, 479, 513], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/scan_templates.py": {"executed_lines": [1, 9, 10, 13, 14, 40, 54, 58, 80, 107, 152, 176, 196, 219, 252, 275, 310, 332, 373, 438, 482, 526], "summary": {"covered_lines": 20, "num_statements": 96, "percent_covered": 15.873015873015873, "percent_covered_display": "15.9", "missing_lines": 76, "excluded_lines": 0, "num_branches": 30, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 30}, "missing_lines": [78, 105, 145, 150, 174, 192, 217, 249, 273, 305, 325, 326, 328, 360, 363, 364, 367, 368, 371, 405, 407, 408, 409, 410, 413, 414, 416, 417, 420, 421, 422, 423, 425, 426, 427, 428, 430, 431, 433, 436, 462, 463, 464, 466, 467, 470, 471, 472, 473, 474, 476, 477, 478, 480, 506, 507, 508, 510, 511, 514, 515, 516, 517, 518, 520, 521, 522, 524, 561, 579, 580, 581, 582, 583, 584, 586], "excluded_lines": [], "executed_branches": [], "missing_branches": [[407, 408], [407, 409], [409, 410], [409, 413], [413, 414], [413, 420], [416, 417], [416, 420], [420, 421], [420, 436], [425, 426], [425, 427], [427, 428], [427, 430], [470, 471], [470, 476], [471, 472], [471, 473], [473, 470], [473, 474], [514, 515], [514, 520], [515, 516], [515, 517], [517, 514], [517, 518], [579, 580], [579, 582], [582, 583], [582, 586]], "functions": {"ScanTemplateAPI.__init__": {"executed_lines": [54], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [78], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.get": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [105], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.create": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [145, 150], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.update": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [174], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.delete": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [192], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.get_discovery": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [217], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.update_discovery": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [249], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.get_service_discovery": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [273], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.update_service_discovery": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [305], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.get_builtin_templates": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [325, 326, 328], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.clone_template": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 6, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [360, 363, 364, 367, 368, 371], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.configure_performance": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 21, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 21, "excluded_lines": 0, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [405, 407, 408, 409, 410, 413, 414, 416, 417, 420, 421, 422, 423, 425, 426, 427, 428, 430, 431, 433, 436], "excluded_lines": [], "executed_branches": [], "missing_branches": [[407, 408], [407, 409], [409, 410], [409, 413], [413, 414], [413, 420], [416, 417], [416, 420], [420, 421], [420, 436], [425, 426], [425, 427], [427, 428], [427, 430]]}, "ScanTemplateAPI.enable_vulnerability_categories": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 14, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [462, 463, 464, 466, 467, 470, 471, 472, 473, 474, 476, 477, 478, 480], "excluded_lines": [], "executed_branches": [], "missing_branches": [[470, 471], [470, 476], [471, 472], [471, 473], [473, 470], [473, 474]]}, "ScanTemplateAPI.disable_vulnerability_categories": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 14, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [506, 507, 508, 510, 511, 514, 515, 516, 517, 518, 520, 521, 522, 524], "excluded_lines": [], "executed_branches": [], "missing_branches": [[514, 515], [514, 520], [515, 516], [515, 517], [517, 514], [517, 518]]}, "ScanTemplateAPI.create_discovery_template": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 8, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [561, 579, 580, 581, 582, 583, 584, 586], "excluded_lines": [], "executed_branches": [], "missing_branches": [[579, 580], [579, 582], [582, 583], [582, 586]]}, "": {"executed_lines": [1, 9, 10, 13, 14, 40, 58, 80, 107, 152, 176, 196, 219, 252, 275, 310, 332, 373, 438, 482, 526], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"ScanTemplateAPI": {"executed_lines": [54], "summary": {"covered_lines": 1, "num_statements": 77, "percent_covered": 0.9345794392523364, "percent_covered_display": "0.9", "missing_lines": 76, "excluded_lines": 0, "num_branches": 30, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 30}, "missing_lines": [78, 105, 145, 150, 174, 192, 217, 249, 273, 305, 325, 326, 328, 360, 363, 364, 367, 368, 371, 405, 407, 408, 409, 410, 413, 414, 416, 417, 420, 421, 422, 423, 425, 426, 427, 428, 430, 431, 433, 436, 462, 463, 464, 466, 467, 470, 471, 472, 473, 474, 476, 477, 478, 480, 506, 507, 508, 510, 511, 514, 515, 516, 517, 518, 520, 521, 522, 524, 561, 579, 580, 581, 582, 583, 584, 586], "excluded_lines": [], "executed_branches": [], "missing_branches": [[407, 408], [407, 409], [409, 410], [409, 413], [413, 414], [413, 420], [416, 417], [416, 420], [420, 421], [420, 436], [425, 426], [425, 427], [427, 428], [427, 430], [470, 471], [470, 476], [471, 472], [471, 473], [473, 470], [473, 474], [514, 515], [514, 520], [515, 516], [515, 517], [517, 514], [517, 518], [579, 580], [579, 582], [582, 583], [582, 586]]}, "": {"executed_lines": [1, 9, 10, 13, 14, 40, 58, 80, 107, 152, 176, 196, 219, 252, 275, 310, 332, 373, 438, 482, 526], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/scans.py": {"executed_lines": [1, 34, 35, 36, 39, 40, 54, 56, 97, 99, 104, 107, 110, 112, 153, 211, 303, 327, 351, 375, 427, 496, 552, 574, 595], "summary": {"covered_lines": 23, "num_statements": 90, "percent_covered": 20.833333333333332, "percent_covered_display": "20.8", "missing_lines": 67, "excluded_lines": 0, "num_branches": 30, "num_partial_branches": 2, "covered_branches": 2, "missing_branches": 28}, "missing_lines": [105, 108, 151, 194, 196, 201, 202, 204, 205, 207, 271, 273, 274, 276, 277, 279, 280, 282, 283, 285, 286, 289, 290, 291, 294, 301, 325, 349, 373, 404, 405, 406, 408, 409, 412, 413, 416, 417, 418, 420, 421, 423, 425, 470, 471, 475, 476, 477, 480, 481, 484, 485, 486, 487, 491, 494, 527, 530, 532, 550, 570, 571, 572, 593, 624, 625, 627], "excluded_lines": [], "executed_branches": [[104, 107], [107, 110]], "missing_branches": [[104, 105], [107, 108], [201, 202], [201, 204], [204, 205], [204, 207], [273, 274], [273, 276], [276, 277], [276, 279], [279, 280], [279, 282], [282, 283], [282, 285], [285, 286], [285, 289], [290, 291], [290, 294], [420, 421], [420, 423], [480, 481], [480, 484], [484, 485], [484, 494], [486, 487], [486, 494], [624, 625], [624, 627]], "functions": {"ScansAPI.list": {"executed_lines": [97, 99, 104, 107, 110], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 63.63636363636363, "percent_covered_display": "63.6", "missing_lines": 2, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 2, "covered_branches": 2, "missing_branches": 2}, "missing_lines": [105, 108], "excluded_lines": [], "executed_branches": [[104, 107], [107, 110]], "missing_branches": [[104, 105], [107, 108]]}, "ScansAPI.get_scan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [151], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScansAPI.get_site_scans": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 7, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [194, 196, 201, 202, 204, 205, 207], "excluded_lines": [], "executed_branches": [], "missing_branches": [[201, 202], [201, 204], [204, 205], [204, 207]]}, "ScansAPI.start_site_scan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 16, "excluded_lines": 0, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [271, 273, 274, 276, 277, 279, 280, 282, 283, 285, 286, 289, 290, 291, 294, 301], "excluded_lines": [], "executed_branches": [], "missing_branches": [[273, 274], [273, 276], [276, 277], [276, 279], [279, 280], [279, 282], [282, 283], [282, 285], [285, 286], [285, 289], [290, 291], [290, 294]]}, "ScansAPI.stop_scan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [325], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScansAPI.pause_scan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [349], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScansAPI.resume_scan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [373], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScansAPI.get_all_scans": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 14, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [404, 405, 406, 408, 409, 412, 413, 416, 417, 418, 420, 421, 423, 425], "excluded_lines": [], "executed_branches": [], "missing_branches": [[420, 421], [420, 423]]}, "ScansAPI.wait_for_scan_completion": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 13, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [470, 471, 475, 476, 477, 480, 481, 484, 485, 486, 487, 491, 494], "excluded_lines": [], "executed_branches": [], "missing_branches": [[480, 481], [480, 484], [484, 485], [484, 494], [486, 487], [486, 494]]}, "ScansAPI.get_scan_summary": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [527, 530, 532, 550], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScansAPI.is_scan_running": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [570, 571, 572], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScansAPI.get_active_scans": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [593], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScansAPI.get_completed_scans": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [624, 625, 627], "excluded_lines": [], "executed_branches": [], "missing_branches": [[624, 625], [624, 627]]}, "": {"executed_lines": [1, 34, 35, 36, 39, 40, 54, 56, 112, 153, 211, 303, 327, 351, 375, 427, 496, 552, 574, 595], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"ScansAPI": {"executed_lines": [97, 99, 104, 107, 110], "summary": {"covered_lines": 5, "num_statements": 72, "percent_covered": 6.862745098039215, "percent_covered_display": "6.9", "missing_lines": 67, "excluded_lines": 0, "num_branches": 30, "num_partial_branches": 2, "covered_branches": 2, "missing_branches": 28}, "missing_lines": [105, 108, 151, 194, 196, 201, 202, 204, 205, 207, 271, 273, 274, 276, 277, 279, 280, 282, 283, 285, 286, 289, 290, 291, 294, 301, 325, 349, 373, 404, 405, 406, 408, 409, 412, 413, 416, 417, 418, 420, 421, 423, 425, 470, 471, 475, 476, 477, 480, 481, 484, 485, 486, 487, 491, 494, 527, 530, 532, 550, 570, 571, 572, 593, 624, 625, 627], "excluded_lines": [], "executed_branches": [[104, 107], [107, 110]], "missing_branches": [[104, 105], [107, 108], [201, 202], [201, 204], [204, 205], [204, 207], [273, 274], [273, 276], [276, 277], [276, 279], [279, 280], [279, 282], [282, 283], [282, 285], [285, 286], [285, 289], [290, 291], [290, 294], [420, 421], [420, 423], [480, 481], [480, 484], [484, 485], [484, 494], [486, 487], [486, 494], [624, 625], [624, 627]]}, "": {"executed_lines": [1, 34, 35, 36, 39, 40, 54, 56, 112, 153, 211, 303, 327, 351, 375, 427, 496, 552, 574, 595], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/sites.py": {"executed_lines": [1, 8, 9, 12, 13, 38, 52, 56, 79, 81, 108, 156, 179, 198, 226, 246, 266, 292, 323, 350, 394, 412, 430, 464], "summary": {"covered_lines": 22, "num_statements": 43, "percent_covered": 46.808510638297875, "percent_covered_display": "46.8", "missing_lines": 21, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [106, 149, 154, 177, 194, 222, 244, 264, 286, 315, 348, 384, 385, 386, 387, 388, 390, 410, 428, 458, 488], "excluded_lines": [], "executed_branches": [], "missing_branches": [[385, 386], [385, 387], [387, 388], [387, 390]], "functions": {"SiteAPI.__init__": {"executed_lines": [52], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.list": {"executed_lines": [79], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.get_site": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [106], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.create": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [149, 154], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.update": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [177], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.delete_site": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [194], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.get_assets": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [222], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.get_scan_engine": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [244], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.get_scan_template": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [264], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.set_scan_engine": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [286], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.set_scan_template": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [315], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.get_scans": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [348], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.start_scan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 6, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [384, 385, 386, 387, 388, 390], "excluded_lines": [], "executed_branches": [], "missing_branches": [[385, 386], [385, 387], [387, 388], [387, 390]]}, "SiteAPI.get_included_targets": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [410], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.get_excluded_targets": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [428], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.set_included_targets": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [458], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.set_excluded_targets": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [488], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 12, 13, 38, 56, 81, 108, 156, 179, 198, 226, 246, 266, 292, 323, 350, 394, 412, 430, 464], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"SiteAPI": {"executed_lines": [52, 79], "summary": {"covered_lines": 2, "num_statements": 23, "percent_covered": 7.407407407407407, "percent_covered_display": "7.4", "missing_lines": 21, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [106, 149, 154, 177, 194, 222, 244, 264, 286, 315, 348, 384, 385, 386, 387, 388, 390, 410, 428, 458, 488], "excluded_lines": [], "executed_branches": [], "missing_branches": [[385, 386], [385, 387], [387, 388], [387, 390]]}, "": {"executed_lines": [1, 8, 9, 12, 13, 38, 56, 81, 108, 156, 179, 198, 226, 246, 266, 292, 323, 350, 394, 412, 430, 464], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/solutions.py": {"executed_lines": [1, 31, 32, 35, 36, 50, 52, 64, 123, 170, 202, 250, 284, 339, 389], "summary": {"covered_lines": 13, "num_statements": 51, "percent_covered": 22.80701754385965, "percent_covered_display": "22.8", "missing_lines": 38, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [62, 111, 113, 118, 119, 121, 168, 197, 240, 241, 242, 244, 279, 318, 319, 320, 322, 323, 324, 325, 328, 329, 330, 332, 333, 335, 337, 375, 378, 381, 382, 387, 427, 430, 433, 434, 435, 440], "excluded_lines": [], "executed_branches": [], "missing_branches": [[118, 119], [118, 121], [241, 242], [241, 244], [332, 333], [332, 335]], "functions": {"SolutionsAPI._validate_page_size": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [62], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SolutionsAPI.list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [111, 113, 118, 119, 121], "excluded_lines": [], "executed_branches": [], "missing_branches": [[118, 119], [118, 121]]}, "SolutionsAPI.get_solution": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [168], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SolutionsAPI.get_prerequisites": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [197], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SolutionsAPI.get_superseding_solutions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [240, 241, 242, 244], "excluded_lines": [], "executed_branches": [], "missing_branches": [[241, 242], [241, 244]]}, "SolutionsAPI.get_superseded_solutions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [279], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SolutionsAPI.get_all_solutions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 14, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [318, 319, 320, 322, 323, 324, 325, 328, 329, 330, 332, 333, 335, 337], "excluded_lines": [], "executed_branches": [], "missing_branches": [[332, 333], [332, 335]]}, "SolutionsAPI.get_by_type": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [375, 378, 381, 382, 387], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SolutionsAPI.search_by_applies_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 6, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [427, 430, 433, 434, 435, 440], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 31, 32, 35, 36, 50, 52, 64, 123, 170, 202, 250, 284, 339, 389], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"SolutionsAPI": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 38, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 38, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [62, 111, 113, 118, 119, 121, 168, 197, 240, 241, 242, 244, 279, 318, 319, 320, 322, 323, 324, 325, 328, 329, 330, 332, 333, 335, 337, 375, 378, 381, 382, 387, 427, 430, 433, 434, 435, 440], "excluded_lines": [], "executed_branches": [], "missing_branches": [[118, 119], [118, 121], [241, 242], [241, 244], [332, 333], [332, 335]]}, "": {"executed_lines": [1, 31, 32, 35, 36, 50, 52, 64, 123, 170, 202, 250, 284, 339, 389], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/sonar_queries.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 29, 30, 32, 70, 83, 107, 138, 147, 181], "summary": {"covered_lines": 14, "num_statements": 42, "percent_covered": 26.923076923076923, "percent_covered_display": "26.9", "missing_lines": 28, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [59, 64, 65, 67, 68, 80, 81, 100, 101, 102, 104, 105, 126, 128, 129, 130, 131, 132, 133, 135, 136, 145, 173, 178, 179, 210, 219, 220], "excluded_lines": [], "executed_branches": [], "missing_branches": [[64, 65], [64, 67], [101, 102], [101, 104], [128, 129], [128, 130], [130, 131], [130, 132], [132, 133], [132, 135]], "functions": {"SonarQueryAPI.__init__": {"executed_lines": [29, 30], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SonarQueryAPI.create_sonar_query": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [59, 64, 65, 67, 68], "excluded_lines": [], "executed_branches": [], "missing_branches": [[64, 65], [64, 67]]}, "SonarQueryAPI.get_sonar_query": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [80, 81], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SonarQueryAPI.list_sonar_queries": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [100, 101, 102, 104, 105], "excluded_lines": [], "executed_branches": [], "missing_branches": [[101, 102], [101, 104]]}, "SonarQueryAPI.update_sonar_query": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 9, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [126, 128, 129, 130, 131, 132, 133, 135, 136], "excluded_lines": [], "executed_branches": [], "missing_branches": [[128, 129], [128, 130], [130, 131], [130, 132], [132, 133], [132, 135]]}, "SonarQueryAPI.delete_sonar_query": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [145], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SonarQueryAPI.create_domain_query": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [173, 178, 179], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SonarQueryAPI.create_ip_range_query": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [210, 219, 220], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 32, 70, 83, 107, 138, 147, 181], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"SonarQueryAPI": {"executed_lines": [29, 30], "summary": {"covered_lines": 2, "num_statements": 30, "percent_covered": 5.0, "percent_covered_display": "5.0", "missing_lines": 28, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [59, 64, 65, 67, 68, 80, 81, 100, 101, 102, 104, 105, 126, 128, 129, 130, 131, 132, 133, 135, 136, 145, 173, 178, 179, 210, 219, 220], "excluded_lines": [], "executed_branches": [], "missing_branches": [[64, 65], [64, 67], [101, 102], [101, 104], [128, 129], [128, 130], [130, 131], [130, 132], [132, 133], [132, 135]]}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 32, 70, 83, 107, 138, 147, 181], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/users.py": {"executed_lines": [1, 36, 37, 40, 41, 56, 66, 72, 101, 121, 215, 253, 274, 290, 317, 338, 359, 380, 397, 425, 447, 469, 490, 506, 528, 547, 568, 589, 632, 663, 689, 715, 746], "summary": {"covered_lines": 31, "num_statements": 103, "percent_covered": 23.66412213740458, "percent_covered_display": "23.7", "missing_lines": 72, "excluded_lines": 0, "num_branches": 28, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 28}, "missing_lines": [92, 96, 97, 99, 119, 177, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 205, 207, 208, 209, 211, 213, 247, 248, 251, 268, 288, 314, 336, 357, 374, 395, 422, 444, 445, 466, 467, 484, 504, 525, 526, 545, 566, 583, 610, 611, 612, 614, 615, 616, 618, 619, 621, 624, 625, 626, 628, 630, 657, 658, 659, 660, 661, 686, 687, 712, 713, 742, 743, 774], "excluded_lines": [], "executed_branches": [], "missing_branches": [[96, 97], [96, 99], [190, 191], [190, 192], [192, 193], [192, 194], [194, 195], [194, 196], [196, 197], [196, 205], [198, 199], [198, 200], [200, 201], [200, 205], [207, 208], [207, 211], [208, 207], [208, 209], [247, 248], [247, 251], [618, 619], [618, 621], [625, 626], [625, 628], [658, 659], [658, 661], [659, 658], [659, 660]], "functions": {"UserAPI.__init__": {"executed_lines": [66], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [92, 96, 97, 99], "excluded_lines": [], "executed_branches": [], "missing_branches": [[96, 97], [96, 99]]}, "UserAPI.get_user": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [119], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.create": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 19, "excluded_lines": 0, "num_branches": 16, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 16}, "missing_lines": [177, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 205, 207, 208, 209, 211, 213], "excluded_lines": [], "executed_branches": [], "missing_branches": [[190, 191], [190, 192], [192, 193], [192, 194], [194, 195], [194, 196], [196, 197], [196, 205], [198, 199], [198, 200], [200, 201], [200, 205], [207, 208], [207, 211], [208, 207], [208, 209]]}, "UserAPI.update": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [247, 248, 251], "excluded_lines": [], "executed_branches": [], "missing_branches": [[247, 248], [247, 251]]}, "UserAPI.delete_user": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [268], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.get_sites": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [288], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.set_sites": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [314], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.grant_site_access": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [336], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.revoke_site_access": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [357], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.revoke_all_site_access": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [374], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.get_asset_groups": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [395], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.set_asset_groups": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [422], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.grant_asset_group_access": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [444, 445], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.revoke_asset_group_access": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [466, 467], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.revoke_all_asset_group_access": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [484], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.get_privileges": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [504], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.reset_password": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [525, 526], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.unlock_user": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [545], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.get_2fa_key": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [566], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.remove_2fa": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [583], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.get_all": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 14, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [610, 611, 612, 614, 615, 616, 618, 619, 621, 624, 625, 626, 628, 630], "excluded_lines": [], "executed_branches": [], "missing_branches": [[618, 619], [618, 621], [625, 626], [625, 628]]}, "UserAPI.get_by_login": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [657, 658, 659, 660, 661], "excluded_lines": [], "executed_branches": [], "missing_branches": [[658, 659], [658, 661], [659, 658], [659, 660]]}, "UserAPI.get_enabled_users": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [686, 687], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.get_locked_users": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [712, 713], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.get_users_by_role": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [742, 743], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.create_admin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [774], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 36, 37, 40, 41, 56, 72, 101, 121, 215, 253, 274, 290, 317, 338, 359, 380, 397, 425, 447, 469, 490, 506, 528, 547, 568, 589, 632, 663, 689, 715, 746], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"UserAPI": {"executed_lines": [66], "summary": {"covered_lines": 1, "num_statements": 73, "percent_covered": 0.9900990099009901, "percent_covered_display": "1.0", "missing_lines": 72, "excluded_lines": 0, "num_branches": 28, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 28}, "missing_lines": [92, 96, 97, 99, 119, 177, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 205, 207, 208, 209, 211, 213, 247, 248, 251, 268, 288, 314, 336, 357, 374, 395, 422, 444, 445, 466, 467, 484, 504, 525, 526, 545, 566, 583, 610, 611, 612, 614, 615, 616, 618, 619, 621, 624, 625, 626, 628, 630, 657, 658, 659, 660, 661, 686, 687, 712, 713, 742, 743, 774], "excluded_lines": [], "executed_branches": [], "missing_branches": [[96, 97], [96, 99], [190, 191], [190, 192], [192, 193], [192, 194], [194, 195], [194, 196], [196, 197], [196, 205], [198, 199], [198, 200], [200, 201], [200, 205], [207, 208], [207, 211], [208, 207], [208, 209], [247, 248], [247, 251], [618, 619], [618, 621], [625, 626], [625, 628], [658, 659], [658, 661], [659, 658], [659, 660]]}, "": {"executed_lines": [1, 36, 37, 40, 41, 56, 72, 101, 121, 215, 253, 274, 290, 317, 338, 359, 380, 397, 425, 447, 469, 490, 506, 528, 547, 568, 589, 632, 663, 689, 715, 746], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/vulnerabilities.py": {"executed_lines": [1, 32, 33, 36, 37, 52, 54, 116, 167, 206, 271, 330, 364, 399, 456, 509, 539, 587, 634, 698, 746], "summary": {"covered_lines": 19, "num_statements": 90, "percent_covered": 18.627450980392158, "percent_covered_display": "18.6", "missing_lines": 71, "excluded_lines": 0, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [104, 106, 111, 112, 114, 165, 201, 255, 257, 262, 263, 265, 314, 316, 321, 322, 324, 359, 394, 435, 436, 437, 439, 440, 441, 442, 445, 446, 447, 449, 450, 452, 454, 491, 494, 501, 502, 507, 537, 569, 572, 579, 580, 585, 616, 619, 626, 627, 632, 675, 678, 685, 686, 688, 689, 690, 691, 693, 694, 696, 728, 731, 738, 739, 744, 778, 781, 784, 791, 792, 797], "excluded_lines": [], "executed_branches": [], "missing_branches": [[111, 112], [111, 114], [262, 263], [262, 265], [321, 322], [321, 324], [449, 450], [449, 452], [688, 689], [688, 696], [693, 688], [693, 694]], "functions": {"VulnerabilitiesAPI.list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [104, 106, 111, 112, 114], "excluded_lines": [], "executed_branches": [], "missing_branches": [[111, 112], [111, 114]]}, "VulnerabilitiesAPI.get_vulnerability": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [165], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.get_affected_assets": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [201], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.get_exploits": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [255, 257, 262, 263, 265], "excluded_lines": [], "executed_branches": [], "missing_branches": [[262, 263], [262, 265]]}, "VulnerabilitiesAPI.get_malware_kits": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [314, 316, 321, 322, 324], "excluded_lines": [], "executed_branches": [], "missing_branches": [[321, 322], [321, 324]]}, "VulnerabilitiesAPI.get_references": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [359], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.get_solutions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [394], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.get_all_vulnerabilities": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 14, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [435, 436, 437, 439, 440, 441, 442, 445, 446, 447, 449, 450, 452, 454], "excluded_lines": [], "executed_branches": [], "missing_branches": [[449, 450], [449, 452]]}, "VulnerabilitiesAPI.get_by_severity": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [491, 494, 501, 502, 507], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.get_critical": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [537], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.get_exploitable": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [569, 572, 579, 580, 585], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.get_with_malware": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [616, 619, 626, 627, 632], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.get_by_cvss_score": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 11, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [675, 678, 685, 686, 688, 689, 690, 691, 693, 694, 696], "excluded_lines": [], "executed_branches": [], "missing_branches": [[688, 689], [688, 696], [693, 688], [693, 694]]}, "VulnerabilitiesAPI.get_pci_failing": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [728, 731, 738, 739, 744], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.search_by_cve": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 6, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [778, 781, 784, 791, 792, 797], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 32, 33, 36, 37, 52, 54, 116, 167, 206, 271, 330, 364, 399, 456, 509, 539, 587, 634, 698, 746], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"VulnerabilitiesAPI": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 71, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 71, "excluded_lines": 0, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [104, 106, 111, 112, 114, 165, 201, 255, 257, 262, 263, 265, 314, 316, 321, 322, 324, 359, 394, 435, 436, 437, 439, 440, 441, 442, 445, 446, 447, 449, 450, 452, 454, 491, 494, 501, 502, 507, 537, 569, 572, 579, 580, 585, 616, 619, 626, 627, 632, 675, 678, 685, 686, 688, 689, 690, 691, 693, 694, 696, 728, 731, 738, 739, 744, 778, 781, 784, 791, 792, 797], "excluded_lines": [], "executed_branches": [], "missing_branches": [[111, 112], [111, 114], [262, 263], [262, 265], [321, 322], [321, 324], [449, 450], [449, 452], [688, 689], [688, 696], [693, 688], [693, 694]]}, "": {"executed_lines": [1, 32, 33, 36, 37, 52, 54, 116, 167, 206, 271, 330, 364, 399, 456, 509, 539, 587, 634, 698, 746], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/vulnerability_exceptions.py": {"executed_lines": [1, 20, 21, 24, 25, 38, 86, 116, 185, 206, 263, 289, 316, 341, 367, 412, 462], "summary": {"covered_lines": 15, "num_statements": 60, "percent_covered": 21.428571428571427, "percent_covered_display": "21.4", "missing_lines": 45, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [73, 75, 80, 81, 83, 84, 113, 114, 182, 183, 203, 204, 247, 248, 249, 254, 257, 258, 259, 261, 287, 314, 339, 362, 363, 365, 403, 405, 439, 440, 441, 443, 444, 445, 447, 448, 450, 452, 453, 455, 456, 458, 460, 472, 473], "excluded_lines": [], "executed_branches": [], "missing_branches": [[80, 81], [80, 83], [248, 249], [248, 254], [258, 259], [258, 261], [447, 448], [447, 450], [455, 456], [455, 458]], "functions": {"VulnerabilityExceptionsAPI.list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 6, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [73, 75, 80, 81, 83, 84], "excluded_lines": [], "executed_branches": [], "missing_branches": [[80, 81], [80, 83]]}, "VulnerabilityExceptionsAPI.get_exception": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [113, 114], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilityExceptionsAPI.create": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [182, 183], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilityExceptionsAPI.delete_exception": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [203, 204], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilityExceptionsAPI.update_status": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 8, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [247, 248, 249, 254, 257, 258, 259, 261], "excluded_lines": [], "executed_branches": [], "missing_branches": [[248, 249], [248, 254], [258, 259], [258, 261]]}, "VulnerabilityExceptionsAPI.approve": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [287], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilityExceptionsAPI.reject": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [314], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilityExceptionsAPI.recall": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [339], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilityExceptionsAPI.get_expiration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [362, 363, 365], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilityExceptionsAPI.set_expiration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [403, 405], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilityExceptionsAPI.get_all": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 15, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [439, 440, 441, 443, 444, 445, 447, 448, 450, 452, 453, 455, 456, 458, 460], "excluded_lines": [], "executed_branches": [], "missing_branches": [[447, 448], [447, 450], [455, 456], [455, 458]]}, "VulnerabilityExceptionsAPI._validate_page_size": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [472, 473], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 20, 21, 24, 25, 38, 86, 116, 185, 206, 263, 289, 316, 341, 367, 412, 462], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"VulnerabilityExceptionsAPI": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 45, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 45, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [73, 75, 80, 81, 83, 84, 113, 114, 182, 183, 203, 204, 247, 248, 249, 254, 257, 258, 259, 261, 287, 314, 339, 362, 363, 365, 403, 405, 439, 440, 441, 443, 444, 445, 447, 448, 450, 452, 453, 455, 456, 458, 460, 472, 473], "excluded_lines": [], "executed_branches": [], "missing_branches": [[80, 81], [80, 83], [248, 249], [248, 254], [258, 259], [258, 261], [447, 448], [447, 450], [455, 456], [455, 458]]}, "": {"executed_lines": [1, 20, 21, 24, 25, 38, 86, 116, 185, 206, 263, 289, 316, 341, 367, 412, 462], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/auth.py": {"executed_lines": [1, 8, 9, 10, 11, 12, 15, 18, 21, 22, 46, 63, 64, 65, 67, 68, 69, 75, 77, 78, 81, 82, 98, 113, 114, 116, 117, 118, 123, 130, 136, 137], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 4, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [77, 78, 136, 137], "executed_branches": [[67, 68], [67, 75], [116, -98], [116, 117]], "missing_branches": [], "functions": {"InsightVMAuth.__init__": {"executed_lines": [63, 64, 65, 67, 68, 69, 75], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[67, 68], [67, 75]], "missing_branches": []}, "InsightVMAuth.__repr__": {"executed_lines": [78], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [78], "executed_branches": [], "missing_branches": []}, "PlatformAuth.__init__": {"executed_lines": [113, 114, 116, 117, 118], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[116, -98], [116, 117]], "missing_branches": []}, "PlatformAuth.get_headers": {"executed_lines": [130], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "PlatformAuth.__repr__": {"executed_lines": [137], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [137], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 15, 18, 21, 22, 46, 77, 81, 82, 98, 123, 136], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [77, 136], "executed_branches": [], "missing_branches": []}}, "classes": {"InsightVMAuth": {"executed_lines": [63, 64, 65, 67, 68, 69, 75, 78], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [78], "executed_branches": [[67, 68], [67, 75]], "missing_branches": []}, "PlatformAuth": {"executed_lines": [113, 114, 116, 117, 118, 130, 137], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [137], "executed_branches": [[116, -98], [116, 117]], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 15, 18, 21, 22, 46, 77, 81, 82, 98, 123, 136], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [77, 136], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/client.py": {"executed_lines": [1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 78, 116, 123, 126, 129, 132, 135, 138, 141, 144, 147, 150, 153, 156, 160, 161, 163, 165, 167, 170, 174, 201], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [160, 161], "executed_branches": [], "missing_branches": [], "functions": {"InsightVMClient.__init__": {"executed_lines": [116, 123, 126, 129, 132, 135, 138, 141, 144, 147, 150, 153, 156], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "InsightVMClient.__repr__": {"executed_lines": [161], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [161], "executed_branches": [], "missing_branches": []}, "InsightVMClient.__enter__": {"executed_lines": [165], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "InsightVMClient.__exit__": {"executed_lines": [170], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "create_client": {"executed_lines": [201], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 78, 160, 163, 167, 174], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [160], "executed_branches": [], "missing_branches": []}}, "classes": {"InsightVMClient": {"executed_lines": [116, 123, 126, 129, 132, 135, 138, 141, 144, 147, 150, 153, 156, 161, 165, 170], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [161], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 78, 160, 163, 167, 174, 201], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [160], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/config.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 87, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 87, "excluded_lines": 0, "num_branches": 20, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 20}, "missing_lines": [9, 10, 11, 14, 25, 33, 34, 36, 38, 39, 42, 43, 46, 48, 55, 56, 57, 58, 59, 60, 61, 63, 65, 72, 97, 99, 100, 101, 102, 103, 105, 122, 123, 125, 126, 127, 129, 131, 133, 147, 148, 151, 152, 153, 154, 157, 159, 169, 171, 179, 180, 181, 183, 194, 196, 204, 206, 214, 215, 216, 217, 218, 219, 221, 231, 232, 233, 234, 235, 236, 237, 238, 240, 247, 248, 249, 250, 251, 252, 254, 256, 257, 261, 264, 272, 273, 274], "excluded_lines": [], "executed_branches": [], "missing_branches": [[33, 34], [33, 36], [55, 56], [55, 63], [125, 126], [125, 131], [126, 127], [126, 129], [151, 152], [151, 157], [152, 153], [152, 154], [179, 180], [179, 181], [232, 233], [232, 238], [248, -240], [248, 249], [272, 273], [272, 274]], "functions": {"Config.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 8, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [33, 34, 36, 38, 39, 42, 43, 46], "excluded_lines": [], "executed_branches": [], "missing_branches": [[33, 34], [33, 36]]}, "Config._load_config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 8, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [55, 56, 57, 58, 59, 60, 61, 63], "excluded_lines": [], "executed_branches": [], "missing_branches": [[55, 56], [55, 63]]}, "Config._default_config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [72], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Config.save": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [99, 100, 101, 102, 103], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Config.get": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 7, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [122, 123, 125, 126, 127, 129, 131], "excluded_lines": [], "executed_branches": [], "missing_branches": [[125, 126], [125, 131], [126, 127], [126, 129]]}, "Config.set": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 7, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [147, 148, 151, 152, 153, 154, 157], "excluded_lines": [], "executed_branches": [], "missing_branches": [[151, 152], [151, 157], [152, 153], [152, 154]]}, "Config.get_tool_config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [169], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Config.set_tool_config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [179, 180, 181], "excluded_lines": [], "executed_branches": [], "missing_branches": [[179, 180], [179, 181]]}, "Config.get_preference": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [194], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Config.set_preference": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [204], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Config.save_state": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 6, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [214, 215, 216, 217, 218, 219], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Config.load_state": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 8, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [231, 232, 233, 234, 235, 236, 237, 238], "excluded_lines": [], "executed_branches": [], "missing_branches": [[232, 233], [232, 238]]}, "Config.clear_state": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 6, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [247, 248, 249, 250, 251, 252], "excluded_lines": [], "executed_branches": [], "missing_branches": [[248, -240], [248, 249]]}, "Config.reset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [256, 257], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "get_config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [272, 273, 274], "excluded_lines": [], "executed_branches": [], "missing_branches": [[272, 273], [272, 274]]}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 20, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [9, 10, 11, 14, 25, 48, 65, 97, 105, 133, 159, 171, 183, 196, 206, 221, 240, 254, 261, 264], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"Config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 64, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 64, "excluded_lines": 0, "num_branches": 18, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 18}, "missing_lines": [33, 34, 36, 38, 39, 42, 43, 46, 55, 56, 57, 58, 59, 60, 61, 63, 72, 99, 100, 101, 102, 103, 122, 123, 125, 126, 127, 129, 131, 147, 148, 151, 152, 153, 154, 157, 169, 179, 180, 181, 194, 204, 214, 215, 216, 217, 218, 219, 231, 232, 233, 234, 235, 236, 237, 238, 247, 248, 249, 250, 251, 252, 256, 257], "excluded_lines": [], "executed_branches": [], "missing_branches": [[33, 34], [33, 36], [55, 56], [55, 63], [125, 126], [125, 131], [126, 127], [126, 129], [151, 152], [151, 157], [152, 153], [152, 154], [179, 180], [179, 181], [232, 233], [232, 238], [248, -240], [248, 249]]}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 23, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [9, 10, 11, 14, 25, 48, 65, 97, 105, 133, 159, 171, 183, 196, 206, 221, 240, 254, 261, 264, 272, 273, 274], "excluded_lines": [], "executed_branches": [], "missing_branches": [[272, 273], [272, 274]]}}}, "src/rapid7/constants.py": {"executed_lines": [1, 9, 10, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 58, 59], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 9, 10, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 58, 59], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"Endpoints": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "StatusCodes": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 9, 10, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 58, 59], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/ui.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 147, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 147, "excluded_lines": 0, "num_branches": 56, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 56}, "missing_lines": [12, 13, 14, 16, 17, 18, 23, 24, 25, 26, 27, 28, 30, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 46, 54, 56, 57, 59, 60, 62, 64, 71, 72, 73, 74, 76, 78, 85, 86, 87, 88, 93, 95, 102, 103, 104, 105, 107, 109, 116, 117, 118, 119, 121, 123, 130, 131, 135, 136, 137, 139, 141, 142, 144, 146, 160, 161, 162, 163, 164, 165, 166, 169, 170, 173, 174, 175, 176, 179, 182, 183, 186, 187, 192, 207, 208, 210, 211, 213, 214, 216, 218, 233, 234, 236, 237, 238, 240, 257, 260, 261, 262, 265, 266, 268, 270, 271, 272, 274, 275, 277, 280, 281, 283, 284, 286, 290, 291, 292, 293, 294, 296, 318, 322, 329, 332, 335, 349, 350, 351, 352, 354, 356, 357, 359, 361, 362, 364, 365, 367, 374, 375, 376, 377, 383, 386, 393], "excluded_lines": [], "executed_branches": [], "missing_branches": [[59, 60], [59, 62], [71, 72], [71, 73], [73, 74], [73, 76], [85, 86], [85, 87], [87, 88], [87, 93], [102, 103], [102, 104], [104, 105], [104, 107], [116, 117], [116, 118], [118, 119], [118, 121], [130, 131], [130, 135], [141, 142], [141, 144], [160, 161], [160, 169], [162, 163], [162, 164], [164, 165], [164, 166], [174, 175], [174, 179], [175, 174], [175, 176], [186, -146], [186, 187], [207, 208], [207, 210], [213, 214], [213, 216], [233, 234], [233, 236], [261, 262], [261, 265], [265, 266], [265, 268], [274, 275], [274, 277], [280, 281], [280, 283], [283, 284], [283, 286], [318, 322], [318, 329], [361, 362], [361, 364], [375, 376], [375, 383]], "functions": {"UI.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [56, 57, 59, 60, 62], "excluded_lines": [], "executed_branches": [], "missing_branches": [[59, 60], [59, 62]]}, "UI.print_success": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [71, 72, 73, 74, 76], "excluded_lines": [], "executed_branches": [], "missing_branches": [[71, 72], [71, 73], [73, 74], [73, 76]]}, "UI.print_error": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [85, 86, 87, 88, 93], "excluded_lines": [], "executed_branches": [], "missing_branches": [[85, 86], [85, 87], [87, 88], [87, 93]]}, "UI.print_warning": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [102, 103, 104, 105, 107], "excluded_lines": [], "executed_branches": [], "missing_branches": [[102, 103], [102, 104], [104, 105], [104, 107]]}, "UI.print_info": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [116, 117, 118, 119, 121], "excluded_lines": [], "executed_branches": [], "missing_branches": [[116, 117], [116, 118], [118, 119], [118, 121]]}, "UI.print_header": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [130, 131, 135, 136, 137], "excluded_lines": [], "executed_branches": [], "missing_branches": [[130, 131], [130, 135]]}, "UI.print_separator": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [141, 142, 144], "excluded_lines": [], "executed_branches": [], "missing_branches": [[141, 142], [141, 144]]}, "UI.print_table": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 18, "excluded_lines": 0, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [160, 161, 162, 163, 164, 165, 166, 169, 170, 173, 174, 175, 176, 179, 182, 183, 186, 187], "excluded_lines": [], "executed_branches": [], "missing_branches": [[160, 161], [160, 169], [162, 163], [162, 164], [164, 165], [164, 166], [174, 175], [174, 179], [175, 174], [175, 176], [186, -146], [186, 187]]}, "UI.confirm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 7, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [207, 208, 210, 211, 213, 214, 216], "excluded_lines": [], "executed_branches": [], "missing_branches": [[207, 208], [207, 210], [213, 214], [213, 216]]}, "UI.prompt": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [233, 234, 236, 237, 238], "excluded_lines": [], "executed_branches": [], "missing_branches": [[233, 234], [233, 236]]}, "UI.select_menu": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 23, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [257, 260, 261, 262, 265, 266, 268, 270, 271, 272, 274, 275, 277, 280, 281, 283, 284, 286, 290, 291, 292, 293, 294], "excluded_lines": [], "executed_branches": [], "missing_branches": [[261, 262], [261, 265], [265, 266], [265, 268], [274, 275], [274, 277], [280, 281], [280, 283], [283, 284], [283, 286]]}, "UI.progress_bar": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [318, 322, 329], "excluded_lines": [], "executed_branches": [], "missing_branches": [[318, 322], [318, 329]]}, "SimpleProgressBar.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [349, 350, 351, 352], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SimpleProgressBar.__enter__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [356, 357], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SimpleProgressBar.__exit__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [361, 362, 364, 365], "excluded_lines": [], "executed_branches": [], "missing_branches": [[361, 362], [361, 364]]}, "SimpleProgressBar.update": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [374, 375, 376, 377, 383], "excluded_lines": [], "executed_branches": [], "missing_branches": [[375, 376], [375, 383]]}, "create_ui": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [393], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 42, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 42, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [12, 13, 14, 16, 17, 18, 23, 24, 25, 26, 27, 28, 30, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 46, 54, 64, 78, 95, 109, 123, 139, 146, 192, 218, 240, 296, 332, 335, 354, 359, 367, 386], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"Color": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UI": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 89, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 89, "excluded_lines": 0, "num_branches": 52, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 52}, "missing_lines": [56, 57, 59, 60, 62, 71, 72, 73, 74, 76, 85, 86, 87, 88, 93, 102, 103, 104, 105, 107, 116, 117, 118, 119, 121, 130, 131, 135, 136, 137, 141, 142, 144, 160, 161, 162, 163, 164, 165, 166, 169, 170, 173, 174, 175, 176, 179, 182, 183, 186, 187, 207, 208, 210, 211, 213, 214, 216, 233, 234, 236, 237, 238, 257, 260, 261, 262, 265, 266, 268, 270, 271, 272, 274, 275, 277, 280, 281, 283, 284, 286, 290, 291, 292, 293, 294, 318, 322, 329], "excluded_lines": [], "executed_branches": [], "missing_branches": [[59, 60], [59, 62], [71, 72], [71, 73], [73, 74], [73, 76], [85, 86], [85, 87], [87, 88], [87, 93], [102, 103], [102, 104], [104, 105], [104, 107], [116, 117], [116, 118], [118, 119], [118, 121], [130, 131], [130, 135], [141, 142], [141, 144], [160, 161], [160, 169], [162, 163], [162, 164], [164, 165], [164, 166], [174, 175], [174, 179], [175, 174], [175, 176], [186, -146], [186, 187], [207, 208], [207, 210], [213, 214], [213, 216], [233, 234], [233, 236], [261, 262], [261, 265], [265, 266], [265, 268], [274, 275], [274, 277], [280, 281], [280, 283], [283, 284], [283, 286], [318, 322], [318, 329]]}, "SimpleProgressBar": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 15, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [349, 350, 351, 352, 356, 357, 361, 362, 364, 365, 374, 375, 376, 377, 383], "excluded_lines": [], "executed_branches": [], "missing_branches": [[361, 362], [361, 364], [375, 376], [375, 383]]}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 43, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 43, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [12, 13, 14, 16, 17, 18, 23, 24, 25, 26, 27, 28, 30, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 46, 54, 64, 78, 95, 109, 123, 139, 146, 192, 218, 240, 296, 332, 335, 354, 359, 367, 386, 393], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}}, "totals": {"covered_lines": 414, "num_statements": 1204, "percent_covered": 29.71506105834464, "percent_covered_display": "29.7", "missing_lines": 790, "excluded_lines": 6, "num_branches": 270, "num_partial_branches": 6, "covered_branches": 24, "missing_branches": 246}} \ No newline at end of file diff --git a/tests/__pycache__/__init__.cpython-312.pyc b/tests/__pycache__/__init__.cpython-312.pyc index 67c6ff7963ef393a216775e5c2ccc923d47d158e..e498cc76dc6500b334b86f65a446803245ea05b9 100644 GIT binary patch delta 18 YcmZ3+xQvnOG%qg~0}wm~q)*My}Jmyj%=G5Y@bqYfd5nOgaW* delta 21 bcmZ2>m~q)*My}Jmyj%=GP*}T>Yfd5nOr{2O diff --git a/tests/__pycache__/test_client.cpython-312-pytest-8.4.2.pyc b/tests/__pycache__/test_client.cpython-312-pytest-8.4.2.pyc index 42e8920b6557e1e3c23b3e5abdaa7f3ce3f1eb59..922297322883b91b5ee7f22dbb6e2fe4ecc21436 100644 GIT binary patch delta 21 bcmdlvk7?&TCa%-Gyj%=G5Y@bqOTQlgNj(Mv delta 21 bcmdlvk7?&TCa%-Gyj%=GP*}T>OTQlgNvQ@C diff --git a/tests/test_rapid7/__pycache__/__init__.cpython-312.pyc b/tests/test_rapid7/__pycache__/__init__.cpython-312.pyc index cbf260c23e5e78d2d6678f0714e411d099cb038d..b29849ac44c4aad291688baa3706a803f10f3e62 100644 GIT binary patch delta 18 YcmdnQxQUVLG%qg~0}wE3_N{TNDQi diff --git a/tests/test_rapid7/__pycache__/test_base.cpython-312-pytest-8.4.2.pyc b/tests/test_rapid7/__pycache__/test_base.cpython-312-pytest-8.4.2.pyc index d7ca60bb76aba8de509857023d7552c6fd62d59f..31bbc416a42079b5397971b2daa8f06fab228143 100644 GIT binary patch delta 21 bcmbRAmT}TsMy}Jmyj%=G5Y@bqtD_76Pb~(J delta 21 bcmbRAmT}TsMy}Jmyj%=GP*}T>tD_76Pniax From 43895b86588be37ea17658ae0b22186660dc00e3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 13 Oct 2025 23:01:21 +0000 Subject: [PATCH 3/5] Add comprehensive tests for config and ui modules - coverage 29.7% -> 46.0% Co-authored-by: talltechy <43618761+talltechy@users.noreply.github.com> --- .gitignore | 1 + coverage.json | 1 - .../test_config.cpython-312-pytest-8.4.2.pyc | Bin 0 -> 30148 bytes .../test_ui.cpython-312-pytest-8.4.2.pyc | Bin 0 -> 42254 bytes tests/test_config.py | 221 ++++++++++++++ tests/test_ui.py | 289 ++++++++++++++++++ 6 files changed, 511 insertions(+), 1 deletion(-) delete mode 100644 coverage.json create mode 100644 tests/__pycache__/test_config.cpython-312-pytest-8.4.2.pyc create mode 100644 tests/__pycache__/test_ui.cpython-312-pytest-8.4.2.pyc create mode 100644 tests/test_config.py create mode 100644 tests/test_ui.py diff --git a/.gitignore b/.gitignore index 16c4411..0411262 100644 --- a/.gitignore +++ b/.gitignore @@ -752,3 +752,4 @@ insightvm-python.code-workspace # Explicitly include tests directory (must be at end to override patterns above) !tests/ !tests/** +coverage.json diff --git a/coverage.json b/coverage.json deleted file mode 100644 index d1fb222..0000000 --- a/coverage.json +++ /dev/null @@ -1 +0,0 @@ -{"meta": {"format": 3, "version": "7.10.7", "timestamp": "2025-10-13T22:56:28.370101", "branch_coverage": true, "show_contexts": false}, "files": {"src/__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/__init__.py": {"executed_lines": [1, 25, 26, 28, 29], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 25, 26, 28, 29], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 25, 26, 28, 29], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/__init__.py": {"executed_lines": [1, 8, 9, 10, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 8, 9, 10, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 8, 9, 10, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/asset_groups.py": {"executed_lines": [1, 8, 9, 12, 13, 47, 62, 79, 127, 174, 220, 232, 258, 277, 292], "summary": {"covered_lines": 13, "num_statements": 49, "percent_covered": 20.634920634920636, "percent_covered_display": "20.6", "missing_lines": 36, "excluded_lines": 0, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [59, 60, 76, 77, 113, 118, 119, 121, 122, 124, 125, 153, 154, 159, 168, 200, 202, 207, 208, 209, 210, 212, 213, 214, 215, 217, 218, 230, 254, 255, 256, 274, 275, 290, 305, 306], "excluded_lines": [], "executed_branches": [], "missing_branches": [[118, 119], [118, 121], [121, 122], [121, 124], [153, 154], [153, 159], [207, 208], [207, 209], [209, 210], [209, 212], [212, 213], [212, 214], [214, 215], [214, 217]], "functions": {"AssetGroupAPI.list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [59, 60], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetGroupAPI.get_group": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [76, 77], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetGroupAPI.create": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 7, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [113, 118, 119, 121, 122, 124, 125], "excluded_lines": [], "executed_branches": [], "missing_branches": [[118, 119], [118, 121], [121, 122], [121, 124]]}, "AssetGroupAPI.create_high_risk": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [153, 154, 159, 168], "excluded_lines": [], "executed_branches": [], "missing_branches": [[153, 154], [153, 159]]}, "AssetGroupAPI.update": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 12, "excluded_lines": 0, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [200, 202, 207, 208, 209, 210, 212, 213, 214, 215, 217, 218], "excluded_lines": [], "executed_branches": [], "missing_branches": [[207, 208], [207, 209], [209, 210], [209, 212], [212, 213], [212, 214], [214, 215], [214, 217]]}, "AssetGroupAPI.delete_group": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [230], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetGroupAPI.get_assets": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [254, 255, 256], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetGroupAPI.add_asset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [274, 275], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetGroupAPI.remove_asset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [290], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetGroupAPI.search_tags": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [305, 306], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 12, 13, 47, 62, 79, 127, 174, 220, 232, 258, 277, 292], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"AssetGroupAPI": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 36, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 36, "excluded_lines": 0, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [59, 60, 76, 77, 113, 118, 119, 121, 122, 124, 125, 153, 154, 159, 168, 200, 202, 207, 208, 209, 210, 212, 213, 214, 215, 217, 218, 230, 254, 255, 256, 274, 275, 290, 305, 306], "excluded_lines": [], "executed_branches": [], "missing_branches": [[118, 119], [118, 121], [121, 122], [121, 124], [153, 154], [153, 159], [207, 208], [207, 209], [209, 210], [209, 212], [212, 213], [212, 214], [214, 215], [214, 217]]}, "": {"executed_lines": [1, 8, 9, 12, 13, 47, 62, 79, 127, 174, 220, 232, 258, 277, 292], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/assets.py": {"executed_lines": [1, 8, 9, 12, 13, 46, 70, 75, 78, 81, 82, 84, 98, 99, 101, 121, 122, 124, 142, 143, 145, 146, 147, 149, 152, 155, 156, 158, 159, 161, 163, 165, 191, 213, 214, 215, 217, 232, 233, 235, 252], "summary": {"covered_lines": 39, "num_statements": 48, "percent_covered": 78.57142857142857, "percent_covered_display": "78.6", "missing_lines": 9, "excluded_lines": 0, "num_branches": 8, "num_partial_branches": 3, "covered_branches": 5, "missing_branches": 3}, "missing_lines": [76, 79, 150, 187, 188, 189, 249, 250, 263], "excluded_lines": [], "executed_branches": [[75, 78], [78, 81], [149, 152], [158, 159], [158, 161]], "missing_branches": [[75, 76], [78, 79], [149, 150]], "functions": {"AssetAPI.list": {"executed_lines": [70, 75, 78, 81, 82], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 63.63636363636363, "percent_covered_display": "63.6", "missing_lines": 2, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 2, "covered_branches": 2, "missing_branches": 2}, "missing_lines": [76, 79], "excluded_lines": [], "executed_branches": [[75, 78], [78, 81]], "missing_branches": [[75, 76], [78, 79]]}, "AssetAPI.get_asset": {"executed_lines": [98, 99], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetAPI.search": {"executed_lines": [121, 122], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetAPI.get_all": {"executed_lines": [142, 143, 145, 146, 147, 149, 152, 155, 156, 158, 159, 161, 163], "summary": {"covered_lines": 13, "num_statements": 14, "percent_covered": 88.88888888888889, "percent_covered_display": "88.9", "missing_lines": 1, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 1, "covered_branches": 3, "missing_branches": 1}, "missing_lines": [150], "excluded_lines": [], "executed_branches": [[149, 152], [158, 159], [158, 161]], "missing_branches": [[149, 150]]}, "AssetAPI.get_vulnerabilities": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [187, 188, 189], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetAPI.get_software": {"executed_lines": [213, 214, 215], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetAPI.get_tags": {"executed_lines": [232, 233], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetAPI.add_tag": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [249, 250], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AssetAPI.remove_tag": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [263], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 12, 13, 46, 84, 101, 124, 165, 191, 217, 235, 252], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"AssetAPI": {"executed_lines": [70, 75, 78, 81, 82, 98, 99, 121, 122, 142, 143, 145, 146, 147, 149, 152, 155, 156, 158, 159, 161, 163, 213, 214, 215, 232, 233], "summary": {"covered_lines": 27, "num_statements": 36, "percent_covered": 72.72727272727273, "percent_covered_display": "72.7", "missing_lines": 9, "excluded_lines": 0, "num_branches": 8, "num_partial_branches": 3, "covered_branches": 5, "missing_branches": 3}, "missing_lines": [76, 79, 150, 187, 188, 189, 249, 250, 263], "excluded_lines": [], "executed_branches": [[75, 78], [78, 81], [149, 152], [158, 159], [158, 161]], "missing_branches": [[75, 76], [78, 79], [149, 150]]}, "": {"executed_lines": [1, 8, 9, 12, 13, 46, 84, 101, 124, 165, 191, 217, 235, 252], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/base.py": {"executed_lines": [1, 8, 9, 10, 11, 12, 16, 19, 20, 40, 54, 55, 56, 59, 60, 61, 63, 66, 67, 69, 80, 81, 83, 125, 128, 129, 130, 132, 133, 134, 135, 136, 137, 139, 140, 141, 144, 145, 148, 150, 151, 152, 154, 174, 178, 198, 202, 222, 226, 244], "summary": {"covered_lines": 48, "num_statements": 48, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 12, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[59, 60], [59, 63], [66, -40], [66, 67], [132, 133], [132, 134], [134, 135], [134, 136], [136, 137], [136, 139], [144, 145], [144, 148]], "missing_branches": [], "functions": {"BaseAPI.__init__": {"executed_lines": [54, 55, 56, 59, 60, 61, 63, 66, 67], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[59, 60], [59, 63], [66, -40], [66, 67]], "missing_branches": []}, "BaseAPI._build_url": {"executed_lines": [80, 81], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "BaseAPI._request": {"executed_lines": [125, 128, 129, 130, 132, 133, 134, 135, 136, 137, 139, 140, 141, 144, 145, 148, 150, 151, 152], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 8, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[132, 133], [132, 134], [134, 135], [134, 136], [136, 137], [136, 139], [144, 145], [144, 148]], "missing_branches": []}, "BaseAPI.get": {"executed_lines": [174], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "BaseAPI.post": {"executed_lines": [198], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "BaseAPI.put": {"executed_lines": [222], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "BaseAPI.delete": {"executed_lines": [244], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 16, 19, 20, 40, 69, 83, 154, 178, 202, 226], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"BaseAPI": {"executed_lines": [54, 55, 56, 59, 60, 61, 63, 66, 67, 80, 81, 125, 128, 129, 130, 132, 133, 134, 135, 136, 137, 139, 140, 141, 144, 145, 148, 150, 151, 152, 174, 198, 222, 244], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 12, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[59, 60], [59, 63], [66, -40], [66, 67], [132, 133], [132, 134], [134, 135], [134, 136], [136, 137], [136, 139], [144, 145], [144, 148]], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 16, 19, 20, 40, 69, 83, 154, 178, 202, 226], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/reports.py": {"executed_lines": [1, 26, 27, 29, 32, 33, 46, 50, 75, 77, 78, 80, 82, 100, 133, 158, 175, 194, 212, 239, 262, 293, 309, 328, 346, 404, 422, 449, 480], "summary": {"covered_lines": 27, "num_statements": 79, "percent_covered": 29.473684210526315, "percent_covered_display": "29.5", "missing_lines": 52, "excluded_lines": 0, "num_branches": 16, "num_partial_branches": 1, "covered_branches": 1, "missing_branches": 15}, "missing_lines": [79, 98, 131, 155, 171, 189, 190, 210, 234, 257, 284, 289, 307, 326, 342, 381, 382, 383, 384, 386, 387, 388, 389, 395, 396, 397, 398, 402, 419, 420, 437, 438, 439, 440, 442, 447, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 508, 509, 515], "excluded_lines": [], "executed_branches": [[78, 80]], "missing_branches": [[78, 79], [386, 387], [386, 388], [388, 389], [388, 395], [395, 396], [395, 402], [397, 398], [397, 402], [439, 440], [439, 442], [471, 472], [471, 473], [475, 476], [475, 477]], "functions": {"ReportsAPI.list": {"executed_lines": [75, 77, 78, 80], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 71.42857142857143, "percent_covered_display": "71.4", "missing_lines": 1, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 1, "covered_branches": 1, "missing_branches": 1}, "missing_lines": [79], "excluded_lines": [], "executed_branches": [[78, 80]], "missing_branches": [[78, 79]]}, "ReportsAPI.get_report": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [98], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.create": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [131], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.update": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [155], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.delete_report": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [171], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.generate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [189, 190], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.get_history": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [210], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.get_instance": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [234], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.delete_instance": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [257], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.download": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [284, 289], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.get_templates": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [307], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.get_template": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [326], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.get_formats": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [342], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.wait_for_completion": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 13, "excluded_lines": 0, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [381, 382, 383, 384, 386, 387, 388, 389, 395, 396, 397, 398, 402], "excluded_lines": [], "executed_branches": [], "missing_branches": [[386, 387], [386, 388], [388, 389], [388, 395], [395, 396], [395, 402], [397, 398], [397, 402]]}, "ReportsAPI.is_complete": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [419, 420], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ReportsAPI.get_latest_instance": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 6, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [437, 438, 439, 440, 442, 447], "excluded_lines": [], "executed_branches": [], "missing_branches": [[439, 440], [439, 442]]}, "ReportsAPI.get_all_reports": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 13, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478], "excluded_lines": [], "executed_branches": [], "missing_branches": [[471, 472], [471, 473], [475, 476], [475, 477]]}, "ReportsAPI.generate_and_download": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [508, 509, 515], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 26, 27, 29, 32, 33, 46, 50, 82, 100, 133, 158, 175, 194, 212, 239, 262, 293, 309, 328, 346, 404, 422, 449, 480], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"ReportsAPI": {"executed_lines": [75, 77, 78, 80], "summary": {"covered_lines": 4, "num_statements": 56, "percent_covered": 6.944444444444445, "percent_covered_display": "6.9", "missing_lines": 52, "excluded_lines": 0, "num_branches": 16, "num_partial_branches": 1, "covered_branches": 1, "missing_branches": 15}, "missing_lines": [79, 98, 131, 155, 171, 189, 190, 210, 234, 257, 284, 289, 307, 326, 342, 381, 382, 383, 384, 386, 387, 388, 389, 395, 396, 397, 398, 402, 419, 420, 437, 438, 439, 440, 442, 447, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 508, 509, 515], "excluded_lines": [], "executed_branches": [[78, 80]], "missing_branches": [[78, 79], [386, 387], [386, 388], [388, 389], [388, 395], [395, 396], [395, 402], [397, 398], [397, 402], [439, 440], [439, 442], [471, 472], [471, 473], [475, 476], [475, 477]]}, "": {"executed_lines": [1, 26, 27, 29, 32, 33, 46, 50, 82, 100, 133, 158, 175, 194, 212, 239, 262, 293, 309, 328, 346, 404, 422, 449, 480], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/scan_engines.py": {"executed_lines": [1, 9, 10, 13, 14, 40, 54, 58, 80, 106, 125, 145, 184, 222, 245, 267, 301, 320, 335, 353, 385, 409, 427, 447, 479, 513], "summary": {"covered_lines": 24, "num_statements": 65, "percent_covered": 32.0, "percent_covered_display": "32.0", "missing_lines": 41, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [78, 104, 123, 141, 175, 176, 177, 178, 211, 212, 213, 214, 243, 265, 296, 297, 298, 299, 318, 333, 351, 379, 402, 423, 442, 443, 445, 469, 470, 471, 473, 503, 504, 507, 508, 511, 537, 538, 541, 542, 545], "excluded_lines": [], "executed_branches": [], "missing_branches": [[176, 177], [176, 178], [212, 213], [212, 214], [297, 298], [297, 299], [507, 508], [507, 511], [541, 542], [541, 545]], "functions": {"ScanEngineAPI.__init__": {"executed_lines": [54], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [78], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.get_engine": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [104], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.update_engine": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [123], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.delete_engine": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [141], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.get_sites": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [175, 176, 177, 178], "excluded_lines": [], "executed_branches": [], "missing_branches": [[176, 177], [176, 178]]}, "ScanEngineAPI.get_scans": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [211, 212, 213, 214], "excluded_lines": [], "executed_branches": [], "missing_branches": [[212, 213], [212, 214]]}, "ScanEngineAPI.list_pools": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [243], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.get_pool": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [265], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.create_pool": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [296, 297, 298, 299], "excluded_lines": [], "executed_branches": [], "missing_branches": [[297, 298], [297, 299]]}, "ScanEngineAPI.update_pool": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [318], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.delete_pool": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [333], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.get_pool_engines": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [351], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.set_pool_engines": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [379], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.get_engine_pools": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [402], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.delete_shared_secret": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [423], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.get_available_engines": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [442, 443, 445], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.get_engine_summary": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [469, 470, 471, 473], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanEngineAPI.assign_engine_to_pool": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [503, 504, 507, 508, 511], "excluded_lines": [], "executed_branches": [], "missing_branches": [[507, 508], [507, 511]]}, "ScanEngineAPI.remove_engine_from_pool": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [537, 538, 541, 542, 545], "excluded_lines": [], "executed_branches": [], "missing_branches": [[541, 542], [541, 545]]}, "": {"executed_lines": [1, 9, 10, 13, 14, 40, 58, 80, 106, 125, 145, 184, 222, 245, 267, 301, 320, 335, 353, 385, 409, 427, 447, 479, 513], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"ScanEngineAPI": {"executed_lines": [54], "summary": {"covered_lines": 1, "num_statements": 42, "percent_covered": 1.9230769230769231, "percent_covered_display": "1.9", "missing_lines": 41, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [78, 104, 123, 141, 175, 176, 177, 178, 211, 212, 213, 214, 243, 265, 296, 297, 298, 299, 318, 333, 351, 379, 402, 423, 442, 443, 445, 469, 470, 471, 473, 503, 504, 507, 508, 511, 537, 538, 541, 542, 545], "excluded_lines": [], "executed_branches": [], "missing_branches": [[176, 177], [176, 178], [212, 213], [212, 214], [297, 298], [297, 299], [507, 508], [507, 511], [541, 542], [541, 545]]}, "": {"executed_lines": [1, 9, 10, 13, 14, 40, 58, 80, 106, 125, 145, 184, 222, 245, 267, 301, 320, 335, 353, 385, 409, 427, 447, 479, 513], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/scan_templates.py": {"executed_lines": [1, 9, 10, 13, 14, 40, 54, 58, 80, 107, 152, 176, 196, 219, 252, 275, 310, 332, 373, 438, 482, 526], "summary": {"covered_lines": 20, "num_statements": 96, "percent_covered": 15.873015873015873, "percent_covered_display": "15.9", "missing_lines": 76, "excluded_lines": 0, "num_branches": 30, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 30}, "missing_lines": [78, 105, 145, 150, 174, 192, 217, 249, 273, 305, 325, 326, 328, 360, 363, 364, 367, 368, 371, 405, 407, 408, 409, 410, 413, 414, 416, 417, 420, 421, 422, 423, 425, 426, 427, 428, 430, 431, 433, 436, 462, 463, 464, 466, 467, 470, 471, 472, 473, 474, 476, 477, 478, 480, 506, 507, 508, 510, 511, 514, 515, 516, 517, 518, 520, 521, 522, 524, 561, 579, 580, 581, 582, 583, 584, 586], "excluded_lines": [], "executed_branches": [], "missing_branches": [[407, 408], [407, 409], [409, 410], [409, 413], [413, 414], [413, 420], [416, 417], [416, 420], [420, 421], [420, 436], [425, 426], [425, 427], [427, 428], [427, 430], [470, 471], [470, 476], [471, 472], [471, 473], [473, 470], [473, 474], [514, 515], [514, 520], [515, 516], [515, 517], [517, 514], [517, 518], [579, 580], [579, 582], [582, 583], [582, 586]], "functions": {"ScanTemplateAPI.__init__": {"executed_lines": [54], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [78], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.get": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [105], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.create": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [145, 150], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.update": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [174], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.delete": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [192], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.get_discovery": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [217], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.update_discovery": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [249], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.get_service_discovery": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [273], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.update_service_discovery": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [305], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.get_builtin_templates": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [325, 326, 328], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.clone_template": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 6, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [360, 363, 364, 367, 368, 371], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScanTemplateAPI.configure_performance": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 21, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 21, "excluded_lines": 0, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [405, 407, 408, 409, 410, 413, 414, 416, 417, 420, 421, 422, 423, 425, 426, 427, 428, 430, 431, 433, 436], "excluded_lines": [], "executed_branches": [], "missing_branches": [[407, 408], [407, 409], [409, 410], [409, 413], [413, 414], [413, 420], [416, 417], [416, 420], [420, 421], [420, 436], [425, 426], [425, 427], [427, 428], [427, 430]]}, "ScanTemplateAPI.enable_vulnerability_categories": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 14, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [462, 463, 464, 466, 467, 470, 471, 472, 473, 474, 476, 477, 478, 480], "excluded_lines": [], "executed_branches": [], "missing_branches": [[470, 471], [470, 476], [471, 472], [471, 473], [473, 470], [473, 474]]}, "ScanTemplateAPI.disable_vulnerability_categories": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 14, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [506, 507, 508, 510, 511, 514, 515, 516, 517, 518, 520, 521, 522, 524], "excluded_lines": [], "executed_branches": [], "missing_branches": [[514, 515], [514, 520], [515, 516], [515, 517], [517, 514], [517, 518]]}, "ScanTemplateAPI.create_discovery_template": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 8, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [561, 579, 580, 581, 582, 583, 584, 586], "excluded_lines": [], "executed_branches": [], "missing_branches": [[579, 580], [579, 582], [582, 583], [582, 586]]}, "": {"executed_lines": [1, 9, 10, 13, 14, 40, 58, 80, 107, 152, 176, 196, 219, 252, 275, 310, 332, 373, 438, 482, 526], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"ScanTemplateAPI": {"executed_lines": [54], "summary": {"covered_lines": 1, "num_statements": 77, "percent_covered": 0.9345794392523364, "percent_covered_display": "0.9", "missing_lines": 76, "excluded_lines": 0, "num_branches": 30, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 30}, "missing_lines": [78, 105, 145, 150, 174, 192, 217, 249, 273, 305, 325, 326, 328, 360, 363, 364, 367, 368, 371, 405, 407, 408, 409, 410, 413, 414, 416, 417, 420, 421, 422, 423, 425, 426, 427, 428, 430, 431, 433, 436, 462, 463, 464, 466, 467, 470, 471, 472, 473, 474, 476, 477, 478, 480, 506, 507, 508, 510, 511, 514, 515, 516, 517, 518, 520, 521, 522, 524, 561, 579, 580, 581, 582, 583, 584, 586], "excluded_lines": [], "executed_branches": [], "missing_branches": [[407, 408], [407, 409], [409, 410], [409, 413], [413, 414], [413, 420], [416, 417], [416, 420], [420, 421], [420, 436], [425, 426], [425, 427], [427, 428], [427, 430], [470, 471], [470, 476], [471, 472], [471, 473], [473, 470], [473, 474], [514, 515], [514, 520], [515, 516], [515, 517], [517, 514], [517, 518], [579, 580], [579, 582], [582, 583], [582, 586]]}, "": {"executed_lines": [1, 9, 10, 13, 14, 40, 58, 80, 107, 152, 176, 196, 219, 252, 275, 310, 332, 373, 438, 482, 526], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/scans.py": {"executed_lines": [1, 34, 35, 36, 39, 40, 54, 56, 97, 99, 104, 107, 110, 112, 153, 211, 303, 327, 351, 375, 427, 496, 552, 574, 595], "summary": {"covered_lines": 23, "num_statements": 90, "percent_covered": 20.833333333333332, "percent_covered_display": "20.8", "missing_lines": 67, "excluded_lines": 0, "num_branches": 30, "num_partial_branches": 2, "covered_branches": 2, "missing_branches": 28}, "missing_lines": [105, 108, 151, 194, 196, 201, 202, 204, 205, 207, 271, 273, 274, 276, 277, 279, 280, 282, 283, 285, 286, 289, 290, 291, 294, 301, 325, 349, 373, 404, 405, 406, 408, 409, 412, 413, 416, 417, 418, 420, 421, 423, 425, 470, 471, 475, 476, 477, 480, 481, 484, 485, 486, 487, 491, 494, 527, 530, 532, 550, 570, 571, 572, 593, 624, 625, 627], "excluded_lines": [], "executed_branches": [[104, 107], [107, 110]], "missing_branches": [[104, 105], [107, 108], [201, 202], [201, 204], [204, 205], [204, 207], [273, 274], [273, 276], [276, 277], [276, 279], [279, 280], [279, 282], [282, 283], [282, 285], [285, 286], [285, 289], [290, 291], [290, 294], [420, 421], [420, 423], [480, 481], [480, 484], [484, 485], [484, 494], [486, 487], [486, 494], [624, 625], [624, 627]], "functions": {"ScansAPI.list": {"executed_lines": [97, 99, 104, 107, 110], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 63.63636363636363, "percent_covered_display": "63.6", "missing_lines": 2, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 2, "covered_branches": 2, "missing_branches": 2}, "missing_lines": [105, 108], "excluded_lines": [], "executed_branches": [[104, 107], [107, 110]], "missing_branches": [[104, 105], [107, 108]]}, "ScansAPI.get_scan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [151], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScansAPI.get_site_scans": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 7, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [194, 196, 201, 202, 204, 205, 207], "excluded_lines": [], "executed_branches": [], "missing_branches": [[201, 202], [201, 204], [204, 205], [204, 207]]}, "ScansAPI.start_site_scan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 16, "excluded_lines": 0, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [271, 273, 274, 276, 277, 279, 280, 282, 283, 285, 286, 289, 290, 291, 294, 301], "excluded_lines": [], "executed_branches": [], "missing_branches": [[273, 274], [273, 276], [276, 277], [276, 279], [279, 280], [279, 282], [282, 283], [282, 285], [285, 286], [285, 289], [290, 291], [290, 294]]}, "ScansAPI.stop_scan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [325], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScansAPI.pause_scan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [349], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScansAPI.resume_scan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [373], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScansAPI.get_all_scans": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 14, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [404, 405, 406, 408, 409, 412, 413, 416, 417, 418, 420, 421, 423, 425], "excluded_lines": [], "executed_branches": [], "missing_branches": [[420, 421], [420, 423]]}, "ScansAPI.wait_for_scan_completion": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 13, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [470, 471, 475, 476, 477, 480, 481, 484, 485, 486, 487, 491, 494], "excluded_lines": [], "executed_branches": [], "missing_branches": [[480, 481], [480, 484], [484, 485], [484, 494], [486, 487], [486, 494]]}, "ScansAPI.get_scan_summary": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [527, 530, 532, 550], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScansAPI.is_scan_running": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [570, 571, 572], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScansAPI.get_active_scans": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [593], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ScansAPI.get_completed_scans": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [624, 625, 627], "excluded_lines": [], "executed_branches": [], "missing_branches": [[624, 625], [624, 627]]}, "": {"executed_lines": [1, 34, 35, 36, 39, 40, 54, 56, 112, 153, 211, 303, 327, 351, 375, 427, 496, 552, 574, 595], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"ScansAPI": {"executed_lines": [97, 99, 104, 107, 110], "summary": {"covered_lines": 5, "num_statements": 72, "percent_covered": 6.862745098039215, "percent_covered_display": "6.9", "missing_lines": 67, "excluded_lines": 0, "num_branches": 30, "num_partial_branches": 2, "covered_branches": 2, "missing_branches": 28}, "missing_lines": [105, 108, 151, 194, 196, 201, 202, 204, 205, 207, 271, 273, 274, 276, 277, 279, 280, 282, 283, 285, 286, 289, 290, 291, 294, 301, 325, 349, 373, 404, 405, 406, 408, 409, 412, 413, 416, 417, 418, 420, 421, 423, 425, 470, 471, 475, 476, 477, 480, 481, 484, 485, 486, 487, 491, 494, 527, 530, 532, 550, 570, 571, 572, 593, 624, 625, 627], "excluded_lines": [], "executed_branches": [[104, 107], [107, 110]], "missing_branches": [[104, 105], [107, 108], [201, 202], [201, 204], [204, 205], [204, 207], [273, 274], [273, 276], [276, 277], [276, 279], [279, 280], [279, 282], [282, 283], [282, 285], [285, 286], [285, 289], [290, 291], [290, 294], [420, 421], [420, 423], [480, 481], [480, 484], [484, 485], [484, 494], [486, 487], [486, 494], [624, 625], [624, 627]]}, "": {"executed_lines": [1, 34, 35, 36, 39, 40, 54, 56, 112, 153, 211, 303, 327, 351, 375, 427, 496, 552, 574, 595], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/sites.py": {"executed_lines": [1, 8, 9, 12, 13, 38, 52, 56, 79, 81, 108, 156, 179, 198, 226, 246, 266, 292, 323, 350, 394, 412, 430, 464], "summary": {"covered_lines": 22, "num_statements": 43, "percent_covered": 46.808510638297875, "percent_covered_display": "46.8", "missing_lines": 21, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [106, 149, 154, 177, 194, 222, 244, 264, 286, 315, 348, 384, 385, 386, 387, 388, 390, 410, 428, 458, 488], "excluded_lines": [], "executed_branches": [], "missing_branches": [[385, 386], [385, 387], [387, 388], [387, 390]], "functions": {"SiteAPI.__init__": {"executed_lines": [52], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.list": {"executed_lines": [79], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.get_site": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [106], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.create": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [149, 154], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.update": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [177], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.delete_site": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [194], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.get_assets": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [222], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.get_scan_engine": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [244], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.get_scan_template": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [264], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.set_scan_engine": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [286], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.set_scan_template": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [315], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.get_scans": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [348], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.start_scan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 6, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [384, 385, 386, 387, 388, 390], "excluded_lines": [], "executed_branches": [], "missing_branches": [[385, 386], [385, 387], [387, 388], [387, 390]]}, "SiteAPI.get_included_targets": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [410], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.get_excluded_targets": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [428], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.set_included_targets": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [458], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SiteAPI.set_excluded_targets": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [488], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 12, 13, 38, 56, 81, 108, 156, 179, 198, 226, 246, 266, 292, 323, 350, 394, 412, 430, 464], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"SiteAPI": {"executed_lines": [52, 79], "summary": {"covered_lines": 2, "num_statements": 23, "percent_covered": 7.407407407407407, "percent_covered_display": "7.4", "missing_lines": 21, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [106, 149, 154, 177, 194, 222, 244, 264, 286, 315, 348, 384, 385, 386, 387, 388, 390, 410, 428, 458, 488], "excluded_lines": [], "executed_branches": [], "missing_branches": [[385, 386], [385, 387], [387, 388], [387, 390]]}, "": {"executed_lines": [1, 8, 9, 12, 13, 38, 56, 81, 108, 156, 179, 198, 226, 246, 266, 292, 323, 350, 394, 412, 430, 464], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/solutions.py": {"executed_lines": [1, 31, 32, 35, 36, 50, 52, 64, 123, 170, 202, 250, 284, 339, 389], "summary": {"covered_lines": 13, "num_statements": 51, "percent_covered": 22.80701754385965, "percent_covered_display": "22.8", "missing_lines": 38, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [62, 111, 113, 118, 119, 121, 168, 197, 240, 241, 242, 244, 279, 318, 319, 320, 322, 323, 324, 325, 328, 329, 330, 332, 333, 335, 337, 375, 378, 381, 382, 387, 427, 430, 433, 434, 435, 440], "excluded_lines": [], "executed_branches": [], "missing_branches": [[118, 119], [118, 121], [241, 242], [241, 244], [332, 333], [332, 335]], "functions": {"SolutionsAPI._validate_page_size": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [62], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SolutionsAPI.list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [111, 113, 118, 119, 121], "excluded_lines": [], "executed_branches": [], "missing_branches": [[118, 119], [118, 121]]}, "SolutionsAPI.get_solution": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [168], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SolutionsAPI.get_prerequisites": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [197], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SolutionsAPI.get_superseding_solutions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [240, 241, 242, 244], "excluded_lines": [], "executed_branches": [], "missing_branches": [[241, 242], [241, 244]]}, "SolutionsAPI.get_superseded_solutions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [279], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SolutionsAPI.get_all_solutions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 14, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [318, 319, 320, 322, 323, 324, 325, 328, 329, 330, 332, 333, 335, 337], "excluded_lines": [], "executed_branches": [], "missing_branches": [[332, 333], [332, 335]]}, "SolutionsAPI.get_by_type": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [375, 378, 381, 382, 387], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SolutionsAPI.search_by_applies_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 6, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [427, 430, 433, 434, 435, 440], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 31, 32, 35, 36, 50, 52, 64, 123, 170, 202, 250, 284, 339, 389], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"SolutionsAPI": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 38, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 38, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [62, 111, 113, 118, 119, 121, 168, 197, 240, 241, 242, 244, 279, 318, 319, 320, 322, 323, 324, 325, 328, 329, 330, 332, 333, 335, 337, 375, 378, 381, 382, 387, 427, 430, 433, 434, 435, 440], "excluded_lines": [], "executed_branches": [], "missing_branches": [[118, 119], [118, 121], [241, 242], [241, 244], [332, 333], [332, 335]]}, "": {"executed_lines": [1, 31, 32, 35, 36, 50, 52, 64, 123, 170, 202, 250, 284, 339, 389], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/sonar_queries.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 29, 30, 32, 70, 83, 107, 138, 147, 181], "summary": {"covered_lines": 14, "num_statements": 42, "percent_covered": 26.923076923076923, "percent_covered_display": "26.9", "missing_lines": 28, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [59, 64, 65, 67, 68, 80, 81, 100, 101, 102, 104, 105, 126, 128, 129, 130, 131, 132, 133, 135, 136, 145, 173, 178, 179, 210, 219, 220], "excluded_lines": [], "executed_branches": [], "missing_branches": [[64, 65], [64, 67], [101, 102], [101, 104], [128, 129], [128, 130], [130, 131], [130, 132], [132, 133], [132, 135]], "functions": {"SonarQueryAPI.__init__": {"executed_lines": [29, 30], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SonarQueryAPI.create_sonar_query": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [59, 64, 65, 67, 68], "excluded_lines": [], "executed_branches": [], "missing_branches": [[64, 65], [64, 67]]}, "SonarQueryAPI.get_sonar_query": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [80, 81], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SonarQueryAPI.list_sonar_queries": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [100, 101, 102, 104, 105], "excluded_lines": [], "executed_branches": [], "missing_branches": [[101, 102], [101, 104]]}, "SonarQueryAPI.update_sonar_query": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 9, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [126, 128, 129, 130, 131, 132, 133, 135, 136], "excluded_lines": [], "executed_branches": [], "missing_branches": [[128, 129], [128, 130], [130, 131], [130, 132], [132, 133], [132, 135]]}, "SonarQueryAPI.delete_sonar_query": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [145], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SonarQueryAPI.create_domain_query": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [173, 178, 179], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SonarQueryAPI.create_ip_range_query": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [210, 219, 220], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 32, 70, 83, 107, 138, 147, 181], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"SonarQueryAPI": {"executed_lines": [29, 30], "summary": {"covered_lines": 2, "num_statements": 30, "percent_covered": 5.0, "percent_covered_display": "5.0", "missing_lines": 28, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [59, 64, 65, 67, 68, 80, 81, 100, 101, 102, 104, 105, 126, 128, 129, 130, 131, 132, 133, 135, 136, 145, 173, 178, 179, 210, 219, 220], "excluded_lines": [], "executed_branches": [], "missing_branches": [[64, 65], [64, 67], [101, 102], [101, 104], [128, 129], [128, 130], [130, 131], [130, 132], [132, 133], [132, 135]]}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 32, 70, 83, 107, 138, 147, 181], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/users.py": {"executed_lines": [1, 36, 37, 40, 41, 56, 66, 72, 101, 121, 215, 253, 274, 290, 317, 338, 359, 380, 397, 425, 447, 469, 490, 506, 528, 547, 568, 589, 632, 663, 689, 715, 746], "summary": {"covered_lines": 31, "num_statements": 103, "percent_covered": 23.66412213740458, "percent_covered_display": "23.7", "missing_lines": 72, "excluded_lines": 0, "num_branches": 28, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 28}, "missing_lines": [92, 96, 97, 99, 119, 177, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 205, 207, 208, 209, 211, 213, 247, 248, 251, 268, 288, 314, 336, 357, 374, 395, 422, 444, 445, 466, 467, 484, 504, 525, 526, 545, 566, 583, 610, 611, 612, 614, 615, 616, 618, 619, 621, 624, 625, 626, 628, 630, 657, 658, 659, 660, 661, 686, 687, 712, 713, 742, 743, 774], "excluded_lines": [], "executed_branches": [], "missing_branches": [[96, 97], [96, 99], [190, 191], [190, 192], [192, 193], [192, 194], [194, 195], [194, 196], [196, 197], [196, 205], [198, 199], [198, 200], [200, 201], [200, 205], [207, 208], [207, 211], [208, 207], [208, 209], [247, 248], [247, 251], [618, 619], [618, 621], [625, 626], [625, 628], [658, 659], [658, 661], [659, 658], [659, 660]], "functions": {"UserAPI.__init__": {"executed_lines": [66], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [92, 96, 97, 99], "excluded_lines": [], "executed_branches": [], "missing_branches": [[96, 97], [96, 99]]}, "UserAPI.get_user": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [119], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.create": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 19, "excluded_lines": 0, "num_branches": 16, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 16}, "missing_lines": [177, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 205, 207, 208, 209, 211, 213], "excluded_lines": [], "executed_branches": [], "missing_branches": [[190, 191], [190, 192], [192, 193], [192, 194], [194, 195], [194, 196], [196, 197], [196, 205], [198, 199], [198, 200], [200, 201], [200, 205], [207, 208], [207, 211], [208, 207], [208, 209]]}, "UserAPI.update": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [247, 248, 251], "excluded_lines": [], "executed_branches": [], "missing_branches": [[247, 248], [247, 251]]}, "UserAPI.delete_user": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [268], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.get_sites": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [288], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.set_sites": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [314], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.grant_site_access": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [336], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.revoke_site_access": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [357], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.revoke_all_site_access": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [374], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.get_asset_groups": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [395], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.set_asset_groups": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [422], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.grant_asset_group_access": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [444, 445], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.revoke_asset_group_access": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [466, 467], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.revoke_all_asset_group_access": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [484], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.get_privileges": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [504], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.reset_password": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [525, 526], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.unlock_user": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [545], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.get_2fa_key": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [566], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.remove_2fa": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [583], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.get_all": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 14, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [610, 611, 612, 614, 615, 616, 618, 619, 621, 624, 625, 626, 628, 630], "excluded_lines": [], "executed_branches": [], "missing_branches": [[618, 619], [618, 621], [625, 626], [625, 628]]}, "UserAPI.get_by_login": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [657, 658, 659, 660, 661], "excluded_lines": [], "executed_branches": [], "missing_branches": [[658, 659], [658, 661], [659, 658], [659, 660]]}, "UserAPI.get_enabled_users": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [686, 687], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.get_locked_users": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [712, 713], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.get_users_by_role": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [742, 743], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UserAPI.create_admin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [774], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 36, 37, 40, 41, 56, 72, 101, 121, 215, 253, 274, 290, 317, 338, 359, 380, 397, 425, 447, 469, 490, 506, 528, 547, 568, 589, 632, 663, 689, 715, 746], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"UserAPI": {"executed_lines": [66], "summary": {"covered_lines": 1, "num_statements": 73, "percent_covered": 0.9900990099009901, "percent_covered_display": "1.0", "missing_lines": 72, "excluded_lines": 0, "num_branches": 28, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 28}, "missing_lines": [92, 96, 97, 99, 119, 177, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 205, 207, 208, 209, 211, 213, 247, 248, 251, 268, 288, 314, 336, 357, 374, 395, 422, 444, 445, 466, 467, 484, 504, 525, 526, 545, 566, 583, 610, 611, 612, 614, 615, 616, 618, 619, 621, 624, 625, 626, 628, 630, 657, 658, 659, 660, 661, 686, 687, 712, 713, 742, 743, 774], "excluded_lines": [], "executed_branches": [], "missing_branches": [[96, 97], [96, 99], [190, 191], [190, 192], [192, 193], [192, 194], [194, 195], [194, 196], [196, 197], [196, 205], [198, 199], [198, 200], [200, 201], [200, 205], [207, 208], [207, 211], [208, 207], [208, 209], [247, 248], [247, 251], [618, 619], [618, 621], [625, 626], [625, 628], [658, 659], [658, 661], [659, 658], [659, 660]]}, "": {"executed_lines": [1, 36, 37, 40, 41, 56, 72, 101, 121, 215, 253, 274, 290, 317, 338, 359, 380, 397, 425, 447, 469, 490, 506, 528, 547, 568, 589, 632, 663, 689, 715, 746], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/vulnerabilities.py": {"executed_lines": [1, 32, 33, 36, 37, 52, 54, 116, 167, 206, 271, 330, 364, 399, 456, 509, 539, 587, 634, 698, 746], "summary": {"covered_lines": 19, "num_statements": 90, "percent_covered": 18.627450980392158, "percent_covered_display": "18.6", "missing_lines": 71, "excluded_lines": 0, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [104, 106, 111, 112, 114, 165, 201, 255, 257, 262, 263, 265, 314, 316, 321, 322, 324, 359, 394, 435, 436, 437, 439, 440, 441, 442, 445, 446, 447, 449, 450, 452, 454, 491, 494, 501, 502, 507, 537, 569, 572, 579, 580, 585, 616, 619, 626, 627, 632, 675, 678, 685, 686, 688, 689, 690, 691, 693, 694, 696, 728, 731, 738, 739, 744, 778, 781, 784, 791, 792, 797], "excluded_lines": [], "executed_branches": [], "missing_branches": [[111, 112], [111, 114], [262, 263], [262, 265], [321, 322], [321, 324], [449, 450], [449, 452], [688, 689], [688, 696], [693, 688], [693, 694]], "functions": {"VulnerabilitiesAPI.list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [104, 106, 111, 112, 114], "excluded_lines": [], "executed_branches": [], "missing_branches": [[111, 112], [111, 114]]}, "VulnerabilitiesAPI.get_vulnerability": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [165], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.get_affected_assets": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [201], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.get_exploits": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [255, 257, 262, 263, 265], "excluded_lines": [], "executed_branches": [], "missing_branches": [[262, 263], [262, 265]]}, "VulnerabilitiesAPI.get_malware_kits": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [314, 316, 321, 322, 324], "excluded_lines": [], "executed_branches": [], "missing_branches": [[321, 322], [321, 324]]}, "VulnerabilitiesAPI.get_references": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [359], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.get_solutions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [394], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.get_all_vulnerabilities": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 14, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [435, 436, 437, 439, 440, 441, 442, 445, 446, 447, 449, 450, 452, 454], "excluded_lines": [], "executed_branches": [], "missing_branches": [[449, 450], [449, 452]]}, "VulnerabilitiesAPI.get_by_severity": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [491, 494, 501, 502, 507], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.get_critical": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [537], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.get_exploitable": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [569, 572, 579, 580, 585], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.get_with_malware": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [616, 619, 626, 627, 632], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.get_by_cvss_score": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 11, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [675, 678, 685, 686, 688, 689, 690, 691, 693, 694, 696], "excluded_lines": [], "executed_branches": [], "missing_branches": [[688, 689], [688, 696], [693, 688], [693, 694]]}, "VulnerabilitiesAPI.get_pci_failing": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [728, 731, 738, 739, 744], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilitiesAPI.search_by_cve": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 6, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [778, 781, 784, 791, 792, 797], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 32, 33, 36, 37, 52, 54, 116, 167, 206, 271, 330, 364, 399, 456, 509, 539, 587, 634, 698, 746], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"VulnerabilitiesAPI": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 71, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 71, "excluded_lines": 0, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [104, 106, 111, 112, 114, 165, 201, 255, 257, 262, 263, 265, 314, 316, 321, 322, 324, 359, 394, 435, 436, 437, 439, 440, 441, 442, 445, 446, 447, 449, 450, 452, 454, 491, 494, 501, 502, 507, 537, 569, 572, 579, 580, 585, 616, 619, 626, 627, 632, 675, 678, 685, 686, 688, 689, 690, 691, 693, 694, 696, 728, 731, 738, 739, 744, 778, 781, 784, 791, 792, 797], "excluded_lines": [], "executed_branches": [], "missing_branches": [[111, 112], [111, 114], [262, 263], [262, 265], [321, 322], [321, 324], [449, 450], [449, 452], [688, 689], [688, 696], [693, 688], [693, 694]]}, "": {"executed_lines": [1, 32, 33, 36, 37, 52, 54, 116, 167, 206, 271, 330, 364, 399, 456, 509, 539, 587, 634, 698, 746], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/api/vulnerability_exceptions.py": {"executed_lines": [1, 20, 21, 24, 25, 38, 86, 116, 185, 206, 263, 289, 316, 341, 367, 412, 462], "summary": {"covered_lines": 15, "num_statements": 60, "percent_covered": 21.428571428571427, "percent_covered_display": "21.4", "missing_lines": 45, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [73, 75, 80, 81, 83, 84, 113, 114, 182, 183, 203, 204, 247, 248, 249, 254, 257, 258, 259, 261, 287, 314, 339, 362, 363, 365, 403, 405, 439, 440, 441, 443, 444, 445, 447, 448, 450, 452, 453, 455, 456, 458, 460, 472, 473], "excluded_lines": [], "executed_branches": [], "missing_branches": [[80, 81], [80, 83], [248, 249], [248, 254], [258, 259], [258, 261], [447, 448], [447, 450], [455, 456], [455, 458]], "functions": {"VulnerabilityExceptionsAPI.list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 6, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [73, 75, 80, 81, 83, 84], "excluded_lines": [], "executed_branches": [], "missing_branches": [[80, 81], [80, 83]]}, "VulnerabilityExceptionsAPI.get_exception": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [113, 114], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilityExceptionsAPI.create": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [182, 183], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilityExceptionsAPI.delete_exception": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [203, 204], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilityExceptionsAPI.update_status": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 8, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [247, 248, 249, 254, 257, 258, 259, 261], "excluded_lines": [], "executed_branches": [], "missing_branches": [[248, 249], [248, 254], [258, 259], [258, 261]]}, "VulnerabilityExceptionsAPI.approve": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [287], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilityExceptionsAPI.reject": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [314], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilityExceptionsAPI.recall": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [339], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilityExceptionsAPI.get_expiration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [362, 363, 365], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilityExceptionsAPI.set_expiration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [403, 405], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "VulnerabilityExceptionsAPI.get_all": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 15, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [439, 440, 441, 443, 444, 445, 447, 448, 450, 452, 453, 455, 456, 458, 460], "excluded_lines": [], "executed_branches": [], "missing_branches": [[447, 448], [447, 450], [455, 456], [455, 458]]}, "VulnerabilityExceptionsAPI._validate_page_size": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [472, 473], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 20, 21, 24, 25, 38, 86, 116, 185, 206, 263, 289, 316, 341, 367, 412, 462], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"VulnerabilityExceptionsAPI": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 45, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 45, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [73, 75, 80, 81, 83, 84, 113, 114, 182, 183, 203, 204, 247, 248, 249, 254, 257, 258, 259, 261, 287, 314, 339, 362, 363, 365, 403, 405, 439, 440, 441, 443, 444, 445, 447, 448, 450, 452, 453, 455, 456, 458, 460, 472, 473], "excluded_lines": [], "executed_branches": [], "missing_branches": [[80, 81], [80, 83], [248, 249], [248, 254], [258, 259], [258, 261], [447, 448], [447, 450], [455, 456], [455, 458]]}, "": {"executed_lines": [1, 20, 21, 24, 25, 38, 86, 116, 185, 206, 263, 289, 316, 341, 367, 412, 462], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/auth.py": {"executed_lines": [1, 8, 9, 10, 11, 12, 15, 18, 21, 22, 46, 63, 64, 65, 67, 68, 69, 75, 77, 78, 81, 82, 98, 113, 114, 116, 117, 118, 123, 130, 136, 137], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 4, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [77, 78, 136, 137], "executed_branches": [[67, 68], [67, 75], [116, -98], [116, 117]], "missing_branches": [], "functions": {"InsightVMAuth.__init__": {"executed_lines": [63, 64, 65, 67, 68, 69, 75], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[67, 68], [67, 75]], "missing_branches": []}, "InsightVMAuth.__repr__": {"executed_lines": [78], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [78], "executed_branches": [], "missing_branches": []}, "PlatformAuth.__init__": {"executed_lines": [113, 114, 116, 117, 118], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[116, -98], [116, 117]], "missing_branches": []}, "PlatformAuth.get_headers": {"executed_lines": [130], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "PlatformAuth.__repr__": {"executed_lines": [137], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [137], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 15, 18, 21, 22, 46, 77, 81, 82, 98, 123, 136], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [77, 136], "executed_branches": [], "missing_branches": []}}, "classes": {"InsightVMAuth": {"executed_lines": [63, 64, 65, 67, 68, 69, 75, 78], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [78], "executed_branches": [[67, 68], [67, 75]], "missing_branches": []}, "PlatformAuth": {"executed_lines": [113, 114, 116, 117, 118, 130, 137], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [137], "executed_branches": [[116, -98], [116, 117]], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 15, 18, 21, 22, 46, 77, 81, 82, 98, 123, 136], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [77, 136], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/client.py": {"executed_lines": [1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 78, 116, 123, 126, 129, 132, 135, 138, 141, 144, 147, 150, 153, 156, 160, 161, 163, 165, 167, 170, 174, 201], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [160, 161], "executed_branches": [], "missing_branches": [], "functions": {"InsightVMClient.__init__": {"executed_lines": [116, 123, 126, 129, 132, 135, 138, 141, 144, 147, 150, 153, 156], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "InsightVMClient.__repr__": {"executed_lines": [161], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [161], "executed_branches": [], "missing_branches": []}, "InsightVMClient.__enter__": {"executed_lines": [165], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "InsightVMClient.__exit__": {"executed_lines": [170], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "create_client": {"executed_lines": [201], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 78, 160, 163, 167, 174], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [160], "executed_branches": [], "missing_branches": []}}, "classes": {"InsightVMClient": {"executed_lines": [116, 123, 126, 129, 132, 135, 138, 141, 144, 147, 150, 153, 156, 161, 165, 170], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [161], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 78, 160, 163, 167, 174, 201], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [160], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/config.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 87, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 87, "excluded_lines": 0, "num_branches": 20, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 20}, "missing_lines": [9, 10, 11, 14, 25, 33, 34, 36, 38, 39, 42, 43, 46, 48, 55, 56, 57, 58, 59, 60, 61, 63, 65, 72, 97, 99, 100, 101, 102, 103, 105, 122, 123, 125, 126, 127, 129, 131, 133, 147, 148, 151, 152, 153, 154, 157, 159, 169, 171, 179, 180, 181, 183, 194, 196, 204, 206, 214, 215, 216, 217, 218, 219, 221, 231, 232, 233, 234, 235, 236, 237, 238, 240, 247, 248, 249, 250, 251, 252, 254, 256, 257, 261, 264, 272, 273, 274], "excluded_lines": [], "executed_branches": [], "missing_branches": [[33, 34], [33, 36], [55, 56], [55, 63], [125, 126], [125, 131], [126, 127], [126, 129], [151, 152], [151, 157], [152, 153], [152, 154], [179, 180], [179, 181], [232, 233], [232, 238], [248, -240], [248, 249], [272, 273], [272, 274]], "functions": {"Config.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 8, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [33, 34, 36, 38, 39, 42, 43, 46], "excluded_lines": [], "executed_branches": [], "missing_branches": [[33, 34], [33, 36]]}, "Config._load_config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 8, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [55, 56, 57, 58, 59, 60, 61, 63], "excluded_lines": [], "executed_branches": [], "missing_branches": [[55, 56], [55, 63]]}, "Config._default_config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [72], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Config.save": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [99, 100, 101, 102, 103], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Config.get": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 7, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [122, 123, 125, 126, 127, 129, 131], "excluded_lines": [], "executed_branches": [], "missing_branches": [[125, 126], [125, 131], [126, 127], [126, 129]]}, "Config.set": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 7, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [147, 148, 151, 152, 153, 154, 157], "excluded_lines": [], "executed_branches": [], "missing_branches": [[151, 152], [151, 157], [152, 153], [152, 154]]}, "Config.get_tool_config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [169], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Config.set_tool_config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [179, 180, 181], "excluded_lines": [], "executed_branches": [], "missing_branches": [[179, 180], [179, 181]]}, "Config.get_preference": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [194], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Config.set_preference": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [204], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Config.save_state": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 6, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [214, 215, 216, 217, 218, 219], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Config.load_state": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 8, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [231, 232, 233, 234, 235, 236, 237, 238], "excluded_lines": [], "executed_branches": [], "missing_branches": [[232, 233], [232, 238]]}, "Config.clear_state": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 6, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [247, 248, 249, 250, 251, 252], "excluded_lines": [], "executed_branches": [], "missing_branches": [[248, -240], [248, 249]]}, "Config.reset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [256, 257], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "get_config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [272, 273, 274], "excluded_lines": [], "executed_branches": [], "missing_branches": [[272, 273], [272, 274]]}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 20, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [9, 10, 11, 14, 25, 48, 65, 97, 105, 133, 159, 171, 183, 196, 206, 221, 240, 254, 261, 264], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"Config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 64, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 64, "excluded_lines": 0, "num_branches": 18, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 18}, "missing_lines": [33, 34, 36, 38, 39, 42, 43, 46, 55, 56, 57, 58, 59, 60, 61, 63, 72, 99, 100, 101, 102, 103, 122, 123, 125, 126, 127, 129, 131, 147, 148, 151, 152, 153, 154, 157, 169, 179, 180, 181, 194, 204, 214, 215, 216, 217, 218, 219, 231, 232, 233, 234, 235, 236, 237, 238, 247, 248, 249, 250, 251, 252, 256, 257], "excluded_lines": [], "executed_branches": [], "missing_branches": [[33, 34], [33, 36], [55, 56], [55, 63], [125, 126], [125, 131], [126, 127], [126, 129], [151, 152], [151, 157], [152, 153], [152, 154], [179, 180], [179, 181], [232, 233], [232, 238], [248, -240], [248, 249]]}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 23, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [9, 10, 11, 14, 25, 48, 65, 97, 105, 133, 159, 171, 183, 196, 206, 221, 240, 254, 261, 264, 272, 273, 274], "excluded_lines": [], "executed_branches": [], "missing_branches": [[272, 273], [272, 274]]}}}, "src/rapid7/constants.py": {"executed_lines": [1, 9, 10, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 58, 59], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 9, 10, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 58, 59], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"Endpoints": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "StatusCodes": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 9, 10, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 58, 59], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/rapid7/ui.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 147, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 147, "excluded_lines": 0, "num_branches": 56, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 56}, "missing_lines": [12, 13, 14, 16, 17, 18, 23, 24, 25, 26, 27, 28, 30, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 46, 54, 56, 57, 59, 60, 62, 64, 71, 72, 73, 74, 76, 78, 85, 86, 87, 88, 93, 95, 102, 103, 104, 105, 107, 109, 116, 117, 118, 119, 121, 123, 130, 131, 135, 136, 137, 139, 141, 142, 144, 146, 160, 161, 162, 163, 164, 165, 166, 169, 170, 173, 174, 175, 176, 179, 182, 183, 186, 187, 192, 207, 208, 210, 211, 213, 214, 216, 218, 233, 234, 236, 237, 238, 240, 257, 260, 261, 262, 265, 266, 268, 270, 271, 272, 274, 275, 277, 280, 281, 283, 284, 286, 290, 291, 292, 293, 294, 296, 318, 322, 329, 332, 335, 349, 350, 351, 352, 354, 356, 357, 359, 361, 362, 364, 365, 367, 374, 375, 376, 377, 383, 386, 393], "excluded_lines": [], "executed_branches": [], "missing_branches": [[59, 60], [59, 62], [71, 72], [71, 73], [73, 74], [73, 76], [85, 86], [85, 87], [87, 88], [87, 93], [102, 103], [102, 104], [104, 105], [104, 107], [116, 117], [116, 118], [118, 119], [118, 121], [130, 131], [130, 135], [141, 142], [141, 144], [160, 161], [160, 169], [162, 163], [162, 164], [164, 165], [164, 166], [174, 175], [174, 179], [175, 174], [175, 176], [186, -146], [186, 187], [207, 208], [207, 210], [213, 214], [213, 216], [233, 234], [233, 236], [261, 262], [261, 265], [265, 266], [265, 268], [274, 275], [274, 277], [280, 281], [280, 283], [283, 284], [283, 286], [318, 322], [318, 329], [361, 362], [361, 364], [375, 376], [375, 383]], "functions": {"UI.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [56, 57, 59, 60, 62], "excluded_lines": [], "executed_branches": [], "missing_branches": [[59, 60], [59, 62]]}, "UI.print_success": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [71, 72, 73, 74, 76], "excluded_lines": [], "executed_branches": [], "missing_branches": [[71, 72], [71, 73], [73, 74], [73, 76]]}, "UI.print_error": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [85, 86, 87, 88, 93], "excluded_lines": [], "executed_branches": [], "missing_branches": [[85, 86], [85, 87], [87, 88], [87, 93]]}, "UI.print_warning": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [102, 103, 104, 105, 107], "excluded_lines": [], "executed_branches": [], "missing_branches": [[102, 103], [102, 104], [104, 105], [104, 107]]}, "UI.print_info": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [116, 117, 118, 119, 121], "excluded_lines": [], "executed_branches": [], "missing_branches": [[116, 117], [116, 118], [118, 119], [118, 121]]}, "UI.print_header": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [130, 131, 135, 136, 137], "excluded_lines": [], "executed_branches": [], "missing_branches": [[130, 131], [130, 135]]}, "UI.print_separator": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [141, 142, 144], "excluded_lines": [], "executed_branches": [], "missing_branches": [[141, 142], [141, 144]]}, "UI.print_table": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 18, "excluded_lines": 0, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [160, 161, 162, 163, 164, 165, 166, 169, 170, 173, 174, 175, 176, 179, 182, 183, 186, 187], "excluded_lines": [], "executed_branches": [], "missing_branches": [[160, 161], [160, 169], [162, 163], [162, 164], [164, 165], [164, 166], [174, 175], [174, 179], [175, 174], [175, 176], [186, -146], [186, 187]]}, "UI.confirm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 7, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [207, 208, 210, 211, 213, 214, 216], "excluded_lines": [], "executed_branches": [], "missing_branches": [[207, 208], [207, 210], [213, 214], [213, 216]]}, "UI.prompt": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [233, 234, 236, 237, 238], "excluded_lines": [], "executed_branches": [], "missing_branches": [[233, 234], [233, 236]]}, "UI.select_menu": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 23, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [257, 260, 261, 262, 265, 266, 268, 270, 271, 272, 274, 275, 277, 280, 281, 283, 284, 286, 290, 291, 292, 293, 294], "excluded_lines": [], "executed_branches": [], "missing_branches": [[261, 262], [261, 265], [265, 266], [265, 268], [274, 275], [274, 277], [280, 281], [280, 283], [283, 284], [283, 286]]}, "UI.progress_bar": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 3, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [318, 322, 329], "excluded_lines": [], "executed_branches": [], "missing_branches": [[318, 322], [318, 329]]}, "SimpleProgressBar.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [349, 350, 351, 352], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SimpleProgressBar.__enter__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [356, 357], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "SimpleProgressBar.__exit__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 4, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [361, 362, 364, 365], "excluded_lines": [], "executed_branches": [], "missing_branches": [[361, 362], [361, 364]]}, "SimpleProgressBar.update": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [374, 375, 376, 377, 383], "excluded_lines": [], "executed_branches": [], "missing_branches": [[375, 376], [375, 383]]}, "create_ui": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [393], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 42, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 42, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [12, 13, 14, 16, 17, 18, 23, 24, 25, 26, 27, 28, 30, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 46, 54, 64, 78, 95, 109, 123, 139, 146, 192, 218, 240, 296, 332, 335, 354, 359, 367, 386], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"Color": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.0", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "UI": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 89, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 89, "excluded_lines": 0, "num_branches": 52, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 52}, "missing_lines": [56, 57, 59, 60, 62, 71, 72, 73, 74, 76, 85, 86, 87, 88, 93, 102, 103, 104, 105, 107, 116, 117, 118, 119, 121, 130, 131, 135, 136, 137, 141, 142, 144, 160, 161, 162, 163, 164, 165, 166, 169, 170, 173, 174, 175, 176, 179, 182, 183, 186, 187, 207, 208, 210, 211, 213, 214, 216, 233, 234, 236, 237, 238, 257, 260, 261, 262, 265, 266, 268, 270, 271, 272, 274, 275, 277, 280, 281, 283, 284, 286, 290, 291, 292, 293, 294, 318, 322, 329], "excluded_lines": [], "executed_branches": [], "missing_branches": [[59, 60], [59, 62], [71, 72], [71, 73], [73, 74], [73, 76], [85, 86], [85, 87], [87, 88], [87, 93], [102, 103], [102, 104], [104, 105], [104, 107], [116, 117], [116, 118], [118, 119], [118, 121], [130, 131], [130, 135], [141, 142], [141, 144], [160, 161], [160, 169], [162, 163], [162, 164], [164, 165], [164, 166], [174, 175], [174, 179], [175, 174], [175, 176], [186, -146], [186, 187], [207, 208], [207, 210], [213, 214], [213, 216], [233, 234], [233, 236], [261, 262], [261, 265], [265, 266], [265, 268], [274, 275], [274, 277], [280, 281], [280, 283], [283, 284], [283, 286], [318, 322], [318, 329]]}, "SimpleProgressBar": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 15, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [349, 350, 351, 352, 356, 357, 361, 362, 364, 365, 374, 375, 376, 377, 383], "excluded_lines": [], "executed_branches": [], "missing_branches": [[361, 362], [361, 364], [375, 376], [375, 383]]}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 43, "percent_covered": 0.0, "percent_covered_display": "0.0", "missing_lines": 43, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [12, 13, 14, 16, 17, 18, 23, 24, 25, 26, 27, 28, 30, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 46, 54, 64, 78, 95, 109, 123, 139, 146, 192, 218, 240, 296, 332, 335, 354, 359, 367, 386, 393], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}}, "totals": {"covered_lines": 414, "num_statements": 1204, "percent_covered": 29.71506105834464, "percent_covered_display": "29.7", "missing_lines": 790, "excluded_lines": 6, "num_branches": 270, "num_partial_branches": 6, "covered_branches": 24, "missing_branches": 246}} \ No newline at end of file diff --git a/tests/__pycache__/test_config.cpython-312-pytest-8.4.2.pyc b/tests/__pycache__/test_config.cpython-312-pytest-8.4.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bf175a8c0992f3f2ac4a39b5a4fcc082eadeb4ad GIT binary patch literal 30148 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 YHG~g?9QeRT@M=M6_8++H17IEbKMg68(f|Me literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_ui.cpython-312-pytest-8.4.2.pyc b/tests/__pycache__/test_ui.cpython-312-pytest-8.4.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0e7b728b5aec4b761967c617664bfa2e2c269ba0 GIT binary patch literal 42254 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 E00yd! Date: Mon, 13 Oct 2025 23:08:22 +0000 Subject: [PATCH 4/5] Add comprehensive tests for scans and reports APIs - coverage 46.0% -> 50.6% Co-authored-by: talltechy <43618761+talltechy@users.noreply.github.com> --- .../test_reports.cpython-312-pytest-8.4.2.pyc | Bin 0 -> 31983 bytes .../test_scans.cpython-312-pytest-8.4.2.pyc | Bin 0 -> 26890 bytes tests/test_rapid7/test_reports.py | 337 ++++++++++++++++++ tests/test_rapid7/test_scans.py | 321 +++++++++++++++++ 4 files changed, 658 insertions(+) create mode 100644 tests/test_rapid7/__pycache__/test_reports.cpython-312-pytest-8.4.2.pyc create mode 100644 tests/test_rapid7/__pycache__/test_scans.cpython-312-pytest-8.4.2.pyc create mode 100644 tests/test_rapid7/test_reports.py create mode 100644 tests/test_rapid7/test_scans.py diff --git a/tests/test_rapid7/__pycache__/test_reports.cpython-312-pytest-8.4.2.pyc b/tests/test_rapid7/__pycache__/test_reports.cpython-312-pytest-8.4.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..21e6a8fb979ea63b387aa4cdfdfbc98f14af6398 GIT binary patch literal 31983 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 Xf2`XMjWEdj$3JBs_(vNE8=C(MAS0K3 literal 0 HcmV?d00001 diff --git a/tests/test_rapid7/__pycache__/test_scans.cpython-312-pytest-8.4.2.pyc b/tests/test_rapid7/__pycache__/test_scans.cpython-312-pytest-8.4.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..24f4af3285bae026bc29ff46c334cf574e7f1cbd GIT binary patch literal 26890 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 Date: Mon, 13 Oct 2025 23:10:59 +0000 Subject: [PATCH 5/5] Add comprehensive tests for sites API - coverage 50.6% -> 51.3% Co-authored-by: talltechy <43618761+talltechy@users.noreply.github.com> --- .../test_sites.cpython-312-pytest-8.4.2.pyc | Bin 0 -> 24393 bytes tests/test_rapid7/test_sites.py | 262 ++++++++++++++++++ 2 files changed, 262 insertions(+) create mode 100644 tests/test_rapid7/__pycache__/test_sites.cpython-312-pytest-8.4.2.pyc create mode 100644 tests/test_rapid7/test_sites.py diff --git a/tests/test_rapid7/__pycache__/test_sites.cpython-312-pytest-8.4.2.pyc b/tests/test_rapid7/__pycache__/test_sites.cpython-312-pytest-8.4.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1cfe54d8d0de5092ee5b028c82230f67d93c57d0 GIT binary patch literal 24393 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 literal 0 HcmV?d00001 diff --git a/tests/test_rapid7/test_sites.py b/tests/test_rapid7/test_sites.py new file mode 100644 index 0000000..58729c1 --- /dev/null +++ b/tests/test_rapid7/test_sites.py @@ -0,0 +1,262 @@ +""" +Tests for Rapid7 InsightVM Sites API module. + +Tests the sites.py API module for site management operations. +""" + +import pytest +from unittest.mock import Mock, patch + +from rapid7.api.sites import SiteAPI + + +class TestSiteAPI: + """Test SiteAPI functionality.""" + + @pytest.fixture + def mock_auth(self): + """Mock authentication for testing.""" + auth = Mock() + auth.base_url = "https://test.insightvm.example.com:3780" + auth.auth = Mock() + return auth + + @pytest.fixture + def sites_api(self, mock_auth): + """Create SiteAPI instance for testing.""" + return SiteAPI(mock_auth) + + def test_init(self, mock_auth): + """Test SiteAPI initialization.""" + api = SiteAPI(mock_auth) + assert api.auth == mock_auth + assert hasattr(api, 'list') + assert hasattr(api, 'get_site') + + @patch('rapid7.api.sites.BaseAPI._request') + def test_list_sites(self, mock_request, sites_api): + """Test listing all sites.""" + mock_response = { + "resources": [ + {"id": 1, "name": "Corporate Network", "importance": "high"}, + {"id": 2, "name": "DMZ", "importance": "critical"} + ], + "page": {"number": 0, "size": 10} + } + mock_request.return_value = mock_response + + result = sites_api.list(page=0, size=10) + + assert result == mock_response + assert len(result['resources']) == 2 + mock_request.assert_called_once() + + @patch('rapid7.api.sites.BaseAPI._request') + def test_get_site(self, mock_request, sites_api): + """Test getting a specific site.""" + site_id = 123 + mock_response = { + "id": site_id, + "name": "Test Site", + "importance": "high", + "riskScore": 75000 + } + mock_request.return_value = mock_response + + result = sites_api.get_site(site_id) + + assert result == mock_response + assert result['id'] == site_id + mock_request.assert_called_once_with('GET', f'sites/{site_id}') + + @patch('rapid7.api.sites.BaseAPI._request') + def test_create_site(self, mock_request, sites_api): + """Test creating a new site.""" + site_config = { + "name": "New Site", + "description": "Test site", + "importance": "high", + "scanTemplate": "full-audit" + } + mock_response = {"id": 456} + mock_request.return_value = mock_response + + result = sites_api.create(name="New Site", description="Test site") + + assert result == mock_response + assert result['id'] == 456 + call_args = mock_request.call_args + assert call_args[0][0] == 'POST' + + @patch('rapid7.api.sites.BaseAPI._request') + def test_update_site(self, mock_request, sites_api): + """Test updating a site.""" + site_id = 123 + mock_response = {"id": site_id} + mock_request.return_value = mock_response + + result = sites_api.update(site_id, name="Updated Site Name") + + assert result == mock_response + call_args = mock_request.call_args + assert call_args[0][0] == 'PUT' + assert f'sites/{site_id}' in call_args[0][1] + + @patch('rapid7.api.sites.BaseAPI._request') + def test_delete_site(self, mock_request, sites_api): + """Test deleting a site.""" + site_id = 123 + mock_request.return_value = {} + + result = sites_api.delete_site(site_id) + + mock_request.assert_called_once_with('DELETE', f'sites/{site_id}') + + @patch('rapid7.api.sites.BaseAPI._request') + def test_get_site_assets(self, mock_request, sites_api): + """Test getting assets for a site.""" + site_id = 123 + mock_response = { + "resources": [ + {"id": 1, "hostname": "server01.example.com"}, + {"id": 2, "hostname": "server02.example.com"} + ] + } + mock_request.return_value = mock_response + + result = sites_api.get_assets(site_id) + + assert result == mock_response + assert len(result['resources']) == 2 + call_args = mock_request.call_args + assert f'sites/{site_id}/assets' in call_args[0][1] + + @patch('rapid7.api.sites.BaseAPI._request') + def test_list_with_parameters(self, mock_request, sites_api): + """Test list with parameters.""" + mock_response = {"resources": [], "page": {}} + mock_request.return_value = mock_response + + sites_api.list(page=0, size=100) + + mock_request.assert_called_once() + # Just verify it was called with GET + call_args = mock_request.call_args + assert call_args[0][0] == 'GET' + + +class TestSiteAPIConfiguration: + """Test site configuration operations.""" + + @pytest.fixture + def sites_api(self, mock_auth): + """Create SiteAPI instance.""" + return SiteAPI(mock_auth) + + @patch('rapid7.api.sites.BaseAPI._request') + def test_get_scan_template(self, mock_request, sites_api): + """Test getting site scan template.""" + site_id = 123 + mock_response = "full-audit-without-web-spider" + mock_request.return_value = mock_response + + result = sites_api.get_scan_template(site_id) + + assert result == mock_response + call_args = mock_request.call_args + assert f'sites/{site_id}/scan_template' in call_args[0][1] + + @patch('rapid7.api.sites.BaseAPI._request') + def test_set_scan_template(self, mock_request, sites_api): + """Test setting site scan template.""" + site_id = 123 + template_id = "full-audit" + mock_request.return_value = {} + + result = sites_api.set_scan_template(site_id, template_id) + + call_args = mock_request.call_args + assert call_args[0][0] == 'PUT' + assert f'sites/{site_id}/scan_template' in call_args[0][1] + + @patch('rapid7.api.sites.BaseAPI._request') + def test_get_scan_engine(self, mock_request, sites_api): + """Test getting site scan engine.""" + site_id = 123 + mock_response = {"id": 5, "name": "Engine 1"} + mock_request.return_value = mock_response + + result = sites_api.get_scan_engine(site_id) + + assert result == mock_response + call_args = mock_request.call_args + assert f'sites/{site_id}/scan_engine' in call_args[0][1] + + @patch('rapid7.api.sites.BaseAPI._request') + def test_set_scan_engine(self, mock_request, sites_api): + """Test setting site scan engine.""" + site_id = 123 + engine_id = 5 + mock_request.return_value = {} + + result = sites_api.set_scan_engine(site_id, engine_id) + + call_args = mock_request.call_args + assert call_args[0][0] == 'PUT' + assert f'sites/{site_id}/scan_engine' in call_args[0][1] + + +class TestSiteAPIErrorHandling: + """Test error handling in SiteAPI.""" + + @pytest.fixture + def sites_api(self, mock_auth): + """Create SiteAPI instance.""" + return SiteAPI(mock_auth) + + @patch('rapid7.api.sites.BaseAPI._request') + def test_get_nonexistent_site(self, mock_request, sites_api): + """Test handling of 404 for nonexistent site.""" + import requests + mock_request.side_effect = requests.HTTPError("404 Not Found") + + with pytest.raises(requests.HTTPError): + sites_api.get_site(99999) + + +class TestSiteAPIIntegration: + """Test integration scenarios.""" + + @pytest.fixture + def sites_api(self, mock_auth): + """Create SiteAPI instance.""" + return SiteAPI(mock_auth) + + @patch('rapid7.api.sites.BaseAPI._request') + def test_site_creation_and_configuration(self, mock_request, sites_api): + """Test complete site workflow.""" + site_id = 456 + + mock_request.side_effect = [ + {"id": site_id}, # create + {}, # set_scan_template + {}, # set_scan_engine + {"id": site_id, "name": "New Site"} # get + ] + + # Create site + created = sites_api.create({"name": "New Site"}) + assert created['id'] == site_id + + # Configure scan template + sites_api.set_scan_template(site_id, "full-audit") + + # Configure scan engine + sites_api.set_scan_engine(site_id, 5) + + # Verify site + site = sites_api.get_site(site_id) + assert site['name'] == "New Site" + + # Verify all calls were made + assert mock_request.call_count == 4