From 0c323929a2682e37b78b6b3315f4f86b5706a49a Mon Sep 17 00:00:00 2001 From: Shreya Date: Fri, 28 May 2021 19:31:32 +0530 Subject: [PATCH 1/7] Configure Vulture to ignore directory: tests/unit_tests/ --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index d67c57cf6..4b28ec709 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,5 +23,5 @@ addopts = "-v --capture=sys tests" norecursedirs = "node_modules dist" [tool.vulture] -exclude = ["monkey/monkey_island/cc/ui"] +exclude = ["monkey/monkey_island/cc/ui/", "monkey/tests/unit_tests/"] paths = ["."] From c165b0e4eaa98f02e61201dbaaea5eb545c29cc6 Mon Sep 17 00:00:00 2001 From: Shreya Date: Fri, 28 May 2021 19:35:33 +0530 Subject: [PATCH 2/7] Since tests/unit_tests/ is now skipped by Vulture, add code used only by tests to whitelist Add the code which exists in common/, monkey_island/, or infection_monkey/, but is used in tests/unit_tests/, to the whitelist file. --- whitelist.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/whitelist.py b/whitelist.py index e943c2729..29c3dfc59 100644 --- a/whitelist.py +++ b/whitelist.py @@ -186,3 +186,20 @@ _.get_wmi_info # unused method (monkey/infection_monkey/system_info/windows_inf LOG_DIR_NAME # unused variable (envs/monkey_zoo/blackbox/log_handlers/test_logs_handler.py:8) delete_logs # unused function (envs/monkey_zoo/blackbox/test_blackbox.py:85) MongoQueryJSONEncoder # unused class (envs/monkey_zoo/blackbox/utils/json_encoder.py:6) + + +# exists in common/, monkey_island/, or infection_monkey/, but is used in tests/unit_tests/ +_.instance_name # unused attribute (monkey/common/cloud/azure/azure_instance.py:35) +_.instance_name # unused attribute (monkey/common/cloud/azure/azure_instance.py:64) +SomeDummyPlugin # unused class (monkey/infection_monkey/utils/plugins/pluginTests/BadImport.py:4) +BadPluginInit # unused class (monkey/infection_monkey/utils/plugins/pluginTests/BadInit.py:4) +BadInit # unused class (monkey/infection_monkey/utils/plugins/pluginTests/ComboFile.py:4) +ProperClass # unused class (monkey/infection_monkey/utils/plugins/pluginTests/ComboFile.py:9) +PluginWorking # unused class (monkey/infection_monkey/utils/plugins/pluginTests/PluginWorking.py:4) +environment # unused variable (monkey/monkey_island/cc/models/monkey.py:59) +_.environment # unused attribute (monkey/monkey_island/cc/services/telemetry/processing/system_info_collectors/environment.py:10) +ISLAND # unused variable (monkey/monkey_island/cc/services/utils/node_states.py:14) +MONKEY_LINUX_RUNNING # unused variable (monkey/monkey_island/cc/services/utils/node_states.py:26) +RAW_SCOUTSUITE_DATA # unused variable (monkey/monkey_island/cc/services/zero_trust/test_common/raw_scoutsute_data.py:3) +save_example_findings # unused function (monkey/monkey_island/cc/services/zero_trust/zero_trust_report/test_common/example_finding_data.py:8) +data_for_tests_dir # unused function (monkey/tests/conftest.py:11) From 954ad642552fe795cda270c6567b82cd91bf3258 Mon Sep 17 00:00:00 2001 From: Shreya Date: Fri, 28 May 2021 19:39:13 +0530 Subject: [PATCH 3/7] Rename whitelist.py to vulture_whitelist.py --- .flake8 | 2 +- whitelist.py => vulture_whitelist.py | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename whitelist.py => vulture_whitelist.py (100%) diff --git a/.flake8 b/.flake8 index c7cd1da1d..ecbc954ee 100644 --- a/.flake8 +++ b/.flake8 @@ -1,7 +1,7 @@ [flake8] ## Warn about linter issues. -exclude = monkey/monkey_island/cc/ui,whitelist.py +exclude = monkey/monkey_island/cc/ui,vulture_whitelist.py show-source = True max-complexity = 10 max-line-length = 100 diff --git a/whitelist.py b/vulture_whitelist.py similarity index 100% rename from whitelist.py rename to vulture_whitelist.py From 995eaa0f3f11d4549f411e0d1b276e1769c8ba7f Mon Sep 17 00:00:00 2001 From: Shreya Date: Fri, 28 May 2021 19:41:46 +0530 Subject: [PATCH 4/7] Add more detailed comment in vulture_whitelist.py --- vulture_whitelist.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vulture_whitelist.py b/vulture_whitelist.py index 29c3dfc59..f607dc3c9 100644 --- a/vulture_whitelist.py +++ b/vulture_whitelist.py @@ -188,7 +188,7 @@ delete_logs # unused function (envs/monkey_zoo/blackbox/test_blackbox.py:85) MongoQueryJSONEncoder # unused class (envs/monkey_zoo/blackbox/utils/json_encoder.py:6) -# exists in common/, monkey_island/, or infection_monkey/, but is used in tests/unit_tests/ +# exists in common/, monkey_island/, or infection_monkey/, but is used in tests/unit_tests/ which is skipped by Vulture _.instance_name # unused attribute (monkey/common/cloud/azure/azure_instance.py:35) _.instance_name # unused attribute (monkey/common/cloud/azure/azure_instance.py:64) SomeDummyPlugin # unused class (monkey/infection_monkey/utils/plugins/pluginTests/BadImport.py:4) From 55ed8d28d0842ad36b33d161401197e116c21eeb Mon Sep 17 00:00:00 2001 From: Shreya Date: Wed, 2 Jun 2021 13:05:21 +0530 Subject: [PATCH 5/7] Rearranged unused code in Vulture whitelist according to categories --- .../utils/plugins/pluginTests/BadImport.py | 5 ---- .../plugins/pluginTests/PluginWorking.py | 5 ---- .../utils/plugins/pluginTests/BadImport.py | 7 ++++++ .../utils/plugins/pluginTests/BadInit.py | 2 +- .../utils/plugins/pluginTests/ComboFile.py | 2 +- .../plugins/pluginTests/PluginTestClass.py | 7 +++--- .../plugins/pluginTests/PluginWorking.py | 5 ++++ .../utils/plugins/pluginTests/__init__.py | 0 .../utils/plugins/test_plugin.py | 13 +++++++---- .../zero_trust/test_scoutsuite_finding.py | 4 +++- .../zero_trust}/raw_scoutsute_data.py | 0 .../data_parsing/test_rule_parser.py | 4 +++- .../test_scoutsuite_rule_service.py | 5 +++- .../test_scoutsuite_zt_finding_service.py | 8 +++---- .../test_common/example_finding_data.py | 5 ++-- .../zero_trust/test_common/finding_data.py | 13 ++++++----- .../test_common/monkey_finding_data.py | 0 .../test_common/scoutsuite_finding_data.py | 0 .../zero_trust_report/test_finding_service.py | 8 +++---- .../zero_trust_report/test_pillar_service.py | 6 ++--- .../test_principle_service.py | 6 ++--- vulture_whitelist.py | 23 +++++++------------ 22 files changed, 68 insertions(+), 60 deletions(-) delete mode 100644 monkey/infection_monkey/utils/plugins/pluginTests/BadImport.py delete mode 100644 monkey/infection_monkey/utils/plugins/pluginTests/PluginWorking.py create mode 100644 monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/BadImport.py rename monkey/{ => tests/unit_tests}/infection_monkey/utils/plugins/pluginTests/BadInit.py (50%) rename monkey/{ => tests/unit_tests}/infection_monkey/utils/plugins/pluginTests/ComboFile.py (58%) rename monkey/{ => tests/unit_tests}/infection_monkey/utils/plugins/pluginTests/PluginTestClass.py (65%) create mode 100644 monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/PluginWorking.py rename monkey/{ => tests/unit_tests}/infection_monkey/utils/plugins/pluginTests/__init__.py (100%) rename monkey/{monkey_island/cc/services/zero_trust/test_common => tests/unit_tests/monkey_island/cc/services/zero_trust}/raw_scoutsute_data.py (100%) rename monkey/{monkey_island/cc/services/zero_trust/zero_trust_report => tests/unit_tests/monkey_island/cc/services/zero_trust}/test_common/example_finding_data.py (96%) rename monkey/{ => tests/unit_tests}/monkey_island/cc/services/zero_trust/test_common/finding_data.py (81%) rename monkey/{ => tests/unit_tests}/monkey_island/cc/services/zero_trust/test_common/monkey_finding_data.py (100%) rename monkey/{ => tests/unit_tests}/monkey_island/cc/services/zero_trust/test_common/scoutsuite_finding_data.py (100%) diff --git a/monkey/infection_monkey/utils/plugins/pluginTests/BadImport.py b/monkey/infection_monkey/utils/plugins/pluginTests/BadImport.py deleted file mode 100644 index 41e8c1387..000000000 --- a/monkey/infection_monkey/utils/plugins/pluginTests/BadImport.py +++ /dev/null @@ -1,5 +0,0 @@ -from infection_monkey.utils.plugins.pluginTests.PluginTestClass import PluginTester # noqa: F401 - - -class SomeDummyPlugin: - pass diff --git a/monkey/infection_monkey/utils/plugins/pluginTests/PluginWorking.py b/monkey/infection_monkey/utils/plugins/pluginTests/PluginWorking.py deleted file mode 100644 index 27da245f2..000000000 --- a/monkey/infection_monkey/utils/plugins/pluginTests/PluginWorking.py +++ /dev/null @@ -1,5 +0,0 @@ -from infection_monkey.utils.plugins.pluginTests.PluginTestClass import PluginTester - - -class PluginWorking(PluginTester): - pass diff --git a/monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/BadImport.py b/monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/BadImport.py new file mode 100644 index 000000000..f0276b19d --- /dev/null +++ b/monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/BadImport.py @@ -0,0 +1,7 @@ +from tests.unit_tests.infection_monkey.utils.plugins.pluginTests.PluginTestClass import ( # noqa: F401, E501 + PluginTester, +) + + +class SomeDummyPlugin: + pass diff --git a/monkey/infection_monkey/utils/plugins/pluginTests/BadInit.py b/monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/BadInit.py similarity index 50% rename from monkey/infection_monkey/utils/plugins/pluginTests/BadInit.py rename to monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/BadInit.py index 61c1df7ad..821b2d063 100644 --- a/monkey/infection_monkey/utils/plugins/pluginTests/BadInit.py +++ b/monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/BadInit.py @@ -1,4 +1,4 @@ -from infection_monkey.utils.plugins.pluginTests.PluginTestClass import PluginTester +from tests.unit_tests.infection_monkey.utils.plugins.pluginTests.PluginTestClass import PluginTester class BadPluginInit(PluginTester): diff --git a/monkey/infection_monkey/utils/plugins/pluginTests/ComboFile.py b/monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/ComboFile.py similarity index 58% rename from monkey/infection_monkey/utils/plugins/pluginTests/ComboFile.py rename to monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/ComboFile.py index d4d464b33..45f39738a 100644 --- a/monkey/infection_monkey/utils/plugins/pluginTests/ComboFile.py +++ b/monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/ComboFile.py @@ -1,4 +1,4 @@ -from infection_monkey.utils.plugins.pluginTests.PluginTestClass import PluginTester +from tests.unit_tests.infection_monkey.utils.plugins.pluginTests.PluginTestClass import PluginTester class BadInit(PluginTester): diff --git a/monkey/infection_monkey/utils/plugins/pluginTests/PluginTestClass.py b/monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/PluginTestClass.py similarity index 65% rename from monkey/infection_monkey/utils/plugins/pluginTests/PluginTestClass.py rename to monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/PluginTestClass.py index 4de543fb0..0220e0683 100644 --- a/monkey/infection_monkey/utils/plugins/pluginTests/PluginTestClass.py +++ b/monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/PluginTestClass.py @@ -1,4 +1,5 @@ -import infection_monkey.utils.plugins.pluginTests +import tests.unit_tests.infection_monkey.utils.plugins.pluginTests + from infection_monkey.utils.plugins.plugin import Plugin @@ -15,8 +16,8 @@ class PluginTester(Plugin): @staticmethod def base_package_file(): - return infection_monkey.utils.plugins.pluginTests.__file__ + return tests.unit_tests.infection_monkey.utils.plugins.pluginTests.__file__ @staticmethod def base_package_name(): - return infection_monkey.utils.plugins.pluginTests.__package__ + return tests.unit_tests.infection_monkey.utils.plugins.pluginTests.__package__ diff --git a/monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/PluginWorking.py b/monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/PluginWorking.py new file mode 100644 index 000000000..bae443c50 --- /dev/null +++ b/monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/PluginWorking.py @@ -0,0 +1,5 @@ +from tests.unit_tests.infection_monkey.utils.plugins.pluginTests.PluginTestClass import PluginTester + + +class PluginWorking(PluginTester): + pass diff --git a/monkey/infection_monkey/utils/plugins/pluginTests/__init__.py b/monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/__init__.py similarity index 100% rename from monkey/infection_monkey/utils/plugins/pluginTests/__init__.py rename to monkey/tests/unit_tests/infection_monkey/utils/plugins/pluginTests/__init__.py diff --git a/monkey/tests/unit_tests/infection_monkey/utils/plugins/test_plugin.py b/monkey/tests/unit_tests/infection_monkey/utils/plugins/test_plugin.py index 35eaaed63..db1069bf0 100644 --- a/monkey/tests/unit_tests/infection_monkey/utils/plugins/test_plugin.py +++ b/monkey/tests/unit_tests/infection_monkey/utils/plugins/test_plugin.py @@ -1,10 +1,13 @@ from unittest import TestCase -from infection_monkey.utils.plugins.pluginTests.BadImport import SomeDummyPlugin -from infection_monkey.utils.plugins.pluginTests.BadInit import BadPluginInit -from infection_monkey.utils.plugins.pluginTests.ComboFile import BadInit, ProperClass -from infection_monkey.utils.plugins.pluginTests.PluginTestClass import PluginTester -from infection_monkey.utils.plugins.pluginTests.PluginWorking import PluginWorking +from tests.unit_tests.infection_monkey.utils.plugins.pluginTests.BadImport import SomeDummyPlugin +from tests.unit_tests.infection_monkey.utils.plugins.pluginTests.BadInit import BadPluginInit +from tests.unit_tests.infection_monkey.utils.plugins.pluginTests.ComboFile import ( + BadInit, + ProperClass, +) +from tests.unit_tests.infection_monkey.utils.plugins.pluginTests.PluginTestClass import PluginTester +from tests.unit_tests.infection_monkey.utils.plugins.pluginTests.PluginWorking import PluginWorking class TestPlugin(TestCase): diff --git a/monkey/tests/unit_tests/monkey_island/cc/models/zero_trust/test_scoutsuite_finding.py b/monkey/tests/unit_tests/monkey_island/cc/models/zero_trust/test_scoutsuite_finding.py index a9ce8837e..952d87289 100644 --- a/monkey/tests/unit_tests/monkey_island/cc/models/zero_trust/test_scoutsuite_finding.py +++ b/monkey/tests/unit_tests/monkey_island/cc/models/zero_trust/test_scoutsuite_finding.py @@ -1,12 +1,14 @@ import pytest from mongoengine import ValidationError +from tests.unit_tests.monkey_island.cc.services.zero_trust.test_common.scoutsuite_finding_data import ( # noqa: E501 + RULES, +) import common.common_consts.zero_trust_consts as zero_trust_consts from monkey_island.cc.models.zero_trust.finding import Finding from monkey_island.cc.models.zero_trust.monkey_finding_details import MonkeyFindingDetails from monkey_island.cc.models.zero_trust.scoutsuite_finding import ScoutSuiteFinding from monkey_island.cc.models.zero_trust.scoutsuite_finding_details import ScoutSuiteFindingDetails -from monkey_island.cc.services.zero_trust.test_common.scoutsuite_finding_data import RULES MONKEY_FINDING_DETAIL_MOCK = MonkeyFindingDetails() MONKEY_FINDING_DETAIL_MOCK.events = ["mock1", "mock2"] diff --git a/monkey/monkey_island/cc/services/zero_trust/test_common/raw_scoutsute_data.py b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/raw_scoutsute_data.py similarity index 100% rename from monkey/monkey_island/cc/services/zero_trust/test_common/raw_scoutsute_data.py rename to monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/raw_scoutsute_data.py diff --git a/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/scoutsuite/data_parsing/test_rule_parser.py b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/scoutsuite/data_parsing/test_rule_parser.py index daaabf430..819d6fe76 100644 --- a/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/scoutsuite/data_parsing/test_rule_parser.py +++ b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/scoutsuite/data_parsing/test_rule_parser.py @@ -1,12 +1,14 @@ from enum import Enum import pytest +from tests.unit_tests.monkey_island.cc.services.zero_trust.raw_scoutsute_data import ( + RAW_SCOUTSUITE_DATA, +) from common.utils.exceptions import RulePathCreatorNotFound from monkey_island.cc.services.zero_trust.scoutsuite.consts.rule_names.ec2_rules import EC2Rules from monkey_island.cc.services.zero_trust.scoutsuite.consts.service_consts import SERVICES from monkey_island.cc.services.zero_trust.scoutsuite.data_parsing.rule_parser import RuleParser -from monkey_island.cc.services.zero_trust.test_common.raw_scoutsute_data import RAW_SCOUTSUITE_DATA class ExampleRules(Enum): diff --git a/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/scoutsuite/test_scoutsuite_rule_service.py b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/scoutsuite/test_scoutsuite_rule_service.py index fa3ca9835..d389ce904 100644 --- a/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/scoutsuite/test_scoutsuite_rule_service.py +++ b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/scoutsuite/test_scoutsuite_rule_service.py @@ -1,5 +1,9 @@ from copy import deepcopy +from tests.unit_tests.monkey_island.cc.services.zero_trust.test_common.scoutsuite_finding_data import ( # noqa: E501 + RULES, +) + from monkey_island.cc.services.zero_trust.scoutsuite.consts.rule_consts import ( RULE_LEVEL_DANGER, RULE_LEVEL_WARNING, @@ -7,7 +11,6 @@ from monkey_island.cc.services.zero_trust.scoutsuite.consts.rule_consts import ( from monkey_island.cc.services.zero_trust.scoutsuite.scoutsuite_rule_service import ( ScoutSuiteRuleService, ) -from monkey_island.cc.services.zero_trust.test_common.scoutsuite_finding_data import RULES example_scoutsuite_data = { "checked_items": 179, diff --git a/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/scoutsuite/test_scoutsuite_zt_finding_service.py b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/scoutsuite/test_scoutsuite_zt_finding_service.py index 51598c1a9..33e9fd34b 100644 --- a/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/scoutsuite/test_scoutsuite_zt_finding_service.py +++ b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/scoutsuite/test_scoutsuite_zt_finding_service.py @@ -1,14 +1,14 @@ import pytest +from tests.unit_tests.monkey_island.cc.services.zero_trust.test_common.scoutsuite_finding_data import ( # noqa: E501 + RULES, + SCOUTSUITE_FINDINGS, +) from monkey_island.cc.models.zero_trust.finding import Finding from monkey_island.cc.models.zero_trust.scoutsuite_finding import ScoutSuiteFinding from monkey_island.cc.services.zero_trust.scoutsuite.scoutsuite_zt_finding_service import ( ScoutSuiteZTFindingService, ) -from monkey_island.cc.services.zero_trust.test_common.scoutsuite_finding_data import ( - RULES, - SCOUTSUITE_FINDINGS, -) class TestScoutSuiteZTFindingService: diff --git a/monkey/monkey_island/cc/services/zero_trust/zero_trust_report/test_common/example_finding_data.py b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/test_common/example_finding_data.py similarity index 96% rename from monkey/monkey_island/cc/services/zero_trust/zero_trust_report/test_common/example_finding_data.py rename to monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/test_common/example_finding_data.py index 51677efc9..31cd709b9 100644 --- a/monkey/monkey_island/cc/services/zero_trust/zero_trust_report/test_common/example_finding_data.py +++ b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/test_common/example_finding_data.py @@ -1,9 +1,10 @@ -from common.common_consts import zero_trust_consts -from monkey_island.cc.services.zero_trust.test_common.finding_data import ( +from tests.unit_tests.monkey_island.cc.services.zero_trust.test_common.finding_data import ( get_monkey_finding_dto, get_scoutsuite_finding_dto, ) +from common.common_consts import zero_trust_consts + def save_example_findings(): # devices passed = 1 diff --git a/monkey/monkey_island/cc/services/zero_trust/test_common/finding_data.py b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/test_common/finding_data.py similarity index 81% rename from monkey/monkey_island/cc/services/zero_trust/test_common/finding_data.py rename to monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/test_common/finding_data.py index 36a8761cb..838035cbf 100644 --- a/monkey/monkey_island/cc/services/zero_trust/test_common/finding_data.py +++ b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/test_common/finding_data.py @@ -1,3 +1,10 @@ +from tests.unit_tests.monkey_island.cc.services.zero_trust.test_common.monkey_finding_data import ( + get_monkey_details_dto, +) +from tests.unit_tests.monkey_island.cc.services.zero_trust.test_common.scoutsuite_finding_data import ( # noqa: E501 + get_scoutsuite_details_dto, +) + from common.common_consts.zero_trust_consts import ( STATUS_FAILED, STATUS_PASSED, @@ -7,12 +14,6 @@ from common.common_consts.zero_trust_consts import ( from monkey_island.cc.models.zero_trust.finding import Finding from monkey_island.cc.models.zero_trust.monkey_finding import MonkeyFinding from monkey_island.cc.models.zero_trust.scoutsuite_finding import ScoutSuiteFinding -from monkey_island.cc.services.zero_trust.test_common.monkey_finding_data import ( - get_monkey_details_dto, -) -from monkey_island.cc.services.zero_trust.test_common.scoutsuite_finding_data import ( - get_scoutsuite_details_dto, -) def get_scoutsuite_finding_dto() -> Finding: diff --git a/monkey/monkey_island/cc/services/zero_trust/test_common/monkey_finding_data.py b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/test_common/monkey_finding_data.py similarity index 100% rename from monkey/monkey_island/cc/services/zero_trust/test_common/monkey_finding_data.py rename to monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/test_common/monkey_finding_data.py diff --git a/monkey/monkey_island/cc/services/zero_trust/test_common/scoutsuite_finding_data.py b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/test_common/scoutsuite_finding_data.py similarity index 100% rename from monkey/monkey_island/cc/services/zero_trust/test_common/scoutsuite_finding_data.py rename to monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/test_common/scoutsuite_finding_data.py diff --git a/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/zero_trust_report/test_finding_service.py b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/zero_trust_report/test_finding_service.py index 81bee7d95..4c2c1527f 100644 --- a/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/zero_trust_report/test_finding_service.py +++ b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/zero_trust_report/test_finding_service.py @@ -1,6 +1,10 @@ from unittest.mock import MagicMock import pytest +from tests.unit_tests.monkey_island.cc.services.zero_trust.test_common.finding_data import ( + get_monkey_finding_dto, + get_scoutsuite_finding_dto, +) from common.common_consts.zero_trust_consts import ( DEVICES, @@ -14,10 +18,6 @@ from common.common_consts.zero_trust_consts import ( from monkey_island.cc.services.zero_trust.monkey_findings.monkey_zt_details_service import ( MonkeyZTDetailsService, ) -from monkey_island.cc.services.zero_trust.test_common.finding_data import ( - get_monkey_finding_dto, - get_scoutsuite_finding_dto, -) from monkey_island.cc.services.zero_trust.zero_trust_report.finding_service import ( EnrichedFinding, FindingService, diff --git a/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/zero_trust_report/test_pillar_service.py b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/zero_trust_report/test_pillar_service.py index 34c8c4975..1be9f2fcb 100644 --- a/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/zero_trust_report/test_pillar_service.py +++ b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/zero_trust_report/test_pillar_service.py @@ -1,6 +1,9 @@ from typing import List import pytest +from tests.unit_tests.monkey_island.cc.services.zero_trust.test_common.example_finding_data import ( # noqa: E501 + save_example_findings, +) from common.common_consts import zero_trust_consts from common.common_consts.zero_trust_consts import ( @@ -13,9 +16,6 @@ from common.common_consts.zero_trust_consts import ( WORKLOADS, ) from monkey_island.cc.services.zero_trust.zero_trust_report.pillar_service import PillarService -from monkey_island.cc.services.zero_trust.zero_trust_report.test_common.example_finding_data import ( # noqa: E501 - save_example_findings, -) @pytest.mark.usefixtures("uses_database") diff --git a/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/zero_trust_report/test_principle_service.py b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/zero_trust_report/test_principle_service.py index 37721e3dc..7bd2b01c7 100644 --- a/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/zero_trust_report/test_principle_service.py +++ b/monkey/tests/unit_tests/monkey_island/cc/services/zero_trust/zero_trust_report/test_principle_service.py @@ -1,10 +1,10 @@ import pytest - -from common.common_consts import zero_trust_consts -from monkey_island.cc.services.zero_trust.test_common.finding_data import ( +from tests.unit_tests.monkey_island.cc.services.zero_trust.test_common.finding_data import ( get_monkey_finding_dto, get_scoutsuite_finding_dto, ) + +from common.common_consts import zero_trust_consts from monkey_island.cc.services.zero_trust.zero_trust_report.principle_service import ( PrincipleService, ) diff --git a/vulture_whitelist.py b/vulture_whitelist.py index f607dc3c9..a9dbce634 100644 --- a/vulture_whitelist.py +++ b/vulture_whitelist.py @@ -167,6 +167,8 @@ DigitalOcean # unused variable (monkey/common/cloud/environment_names.py:12) _.aws_info # unused attribute (monkey/monkey_island/cc/environment/aws.py:13) build_from_config_file_contents # unused method 'build_from_config_file_contents' (\monkey_island\setup\island_config_options.py:18) mock_port_in_env_singleton # monkey\tests\unit_tests\monkey_island\cc\services\test_config.py:26: +ISLAND # unused variable (monkey/monkey_island/cc/services/utils/node_states.py:14) +MONKEY_LINUX_RUNNING # unused variable (monkey/monkey_island/cc/services/utils/node_states.py:26) # these are not needed for it to work, but may be useful extra information to understand what's going on WINDOWS_PBA_TYPE # unused variable (monkey/monkey_island/cc/resources/pba_file_upload.py:23) @@ -182,24 +184,15 @@ thread_id # unused variable (monkey/infection_monkey/network/mysqlfinger.py:61) _.get_wmi_info # unused method (monkey/infection_monkey/system_info/windows_info_collector.py:63) -# not 100% sure about these? are these being/will be used somewhere else? +# potentially unused (there may also be unit tests referencing these) LOG_DIR_NAME # unused variable (envs/monkey_zoo/blackbox/log_handlers/test_logs_handler.py:8) delete_logs # unused function (envs/monkey_zoo/blackbox/test_blackbox.py:85) MongoQueryJSONEncoder # unused class (envs/monkey_zoo/blackbox/utils/json_encoder.py:6) - - -# exists in common/, monkey_island/, or infection_monkey/, but is used in tests/unit_tests/ which is skipped by Vulture -_.instance_name # unused attribute (monkey/common/cloud/azure/azure_instance.py:35) -_.instance_name # unused attribute (monkey/common/cloud/azure/azure_instance.py:64) -SomeDummyPlugin # unused class (monkey/infection_monkey/utils/plugins/pluginTests/BadImport.py:4) -BadPluginInit # unused class (monkey/infection_monkey/utils/plugins/pluginTests/BadInit.py:4) -BadInit # unused class (monkey/infection_monkey/utils/plugins/pluginTests/ComboFile.py:4) -ProperClass # unused class (monkey/infection_monkey/utils/plugins/pluginTests/ComboFile.py:9) -PluginWorking # unused class (monkey/infection_monkey/utils/plugins/pluginTests/PluginWorking.py:4) environment # unused variable (monkey/monkey_island/cc/models/monkey.py:59) _.environment # unused attribute (monkey/monkey_island/cc/services/telemetry/processing/system_info_collectors/environment.py:10) -ISLAND # unused variable (monkey/monkey_island/cc/services/utils/node_states.py:14) -MONKEY_LINUX_RUNNING # unused variable (monkey/monkey_island/cc/services/utils/node_states.py:26) -RAW_SCOUTSUITE_DATA # unused variable (monkey/monkey_island/cc/services/zero_trust/test_common/raw_scoutsute_data.py:3) -save_example_findings # unused function (monkey/monkey_island/cc/services/zero_trust/zero_trust_report/test_common/example_finding_data.py:8) +_.instance_name # unused attribute (monkey/common/cloud/azure/azure_instance.py:35) +_.instance_name # unused attribute (monkey/common/cloud/azure/azure_instance.py:64) + + +# used in tests/unit_tests/ which is skipped by Vulture data_for_tests_dir # unused function (monkey/tests/conftest.py:11) From b69c1c531a2f2a3a50d4e32d359b99dfcb7b2750 Mon Sep 17 00:00:00 2001 From: Shreya Date: Wed, 2 Jun 2021 13:08:37 +0530 Subject: [PATCH 6/7] Rename vulture_whitelist.py -> vultue_allowlist.py --- .flake8 | 2 +- vulture_whitelist.py => vulture_allowlist.py | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename vulture_whitelist.py => vulture_allowlist.py (100%) diff --git a/.flake8 b/.flake8 index ecbc954ee..97d903b8f 100644 --- a/.flake8 +++ b/.flake8 @@ -1,7 +1,7 @@ [flake8] ## Warn about linter issues. -exclude = monkey/monkey_island/cc/ui,vulture_whitelist.py +exclude = monkey/monkey_island/cc/ui,vulture_allowlist.py show-source = True max-complexity = 10 max-line-length = 100 diff --git a/vulture_whitelist.py b/vulture_allowlist.py similarity index 100% rename from vulture_whitelist.py rename to vulture_allowlist.py From 52b57a7166fe91aeb1d0a91a56e60e5da95002b9 Mon Sep 17 00:00:00 2001 From: Shreya Date: Thu, 3 Jun 2021 11:57:44 +0530 Subject: [PATCH 7/7] Have Vulture skip tests/ instead of tests/unit_tests/ --- pyproject.toml | 2 +- vulture_allowlist.py | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 4b28ec709..e1a0baaa3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,5 +23,5 @@ addopts = "-v --capture=sys tests" norecursedirs = "node_modules dist" [tool.vulture] -exclude = ["monkey/monkey_island/cc/ui/", "monkey/tests/unit_tests/"] +exclude = ["monkey/monkey_island/cc/ui/", "monkey/tests/"] paths = ["."] diff --git a/vulture_allowlist.py b/vulture_allowlist.py index a9dbce634..5d91f94fd 100644 --- a/vulture_allowlist.py +++ b/vulture_allowlist.py @@ -192,7 +192,3 @@ environment # unused variable (monkey/monkey_island/cc/models/monkey.py:59) _.environment # unused attribute (monkey/monkey_island/cc/services/telemetry/processing/system_info_collectors/environment.py:10) _.instance_name # unused attribute (monkey/common/cloud/azure/azure_instance.py:35) _.instance_name # unused attribute (monkey/common/cloud/azure/azure_instance.py:64) - - -# used in tests/unit_tests/ which is skipped by Vulture -data_for_tests_dir # unused function (monkey/tests/conftest.py:11)