diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml index fab421a14a4..bca61e45f00 100644 --- a/.github/workflows/pr-test.yml +++ b/.github/workflows/pr-test.yml @@ -129,8 +129,7 @@ jobs: pipenv --rm || true pipenv --python ${{ matrix.python }} - if [ '${{ matrix.python }}' == '3.12' ]; then - pipenv run pip install -U setuptools pip + if [[ '${{ matrix.python }}' == '3.12' ]]; then pipenv run pip install aiohttp==3.9.0b0 fi diff --git a/Pipfile b/Pipfile index f8cb698cdf8..c65a95cd918 100644 --- a/Pipfile +++ b/Pipfile @@ -12,7 +12,6 @@ pytest-xdist = "*" pytest-asyncio = "*" pytest-cov = "*" pytest-mock = "*" -mock = "*" coverage ="==5.5" coverage-badge = "*" bandit = "*" @@ -36,7 +35,7 @@ dlint = "*" mypy = "*" flake8-bugbear = "*" parameterized = "*" -freezegun = "*" +time-machine = "*" boto3-stubs-lite = {extras = ["s3"], version = "*"} [packages] diff --git a/Pipfile.lock b/Pipfile.lock index f1ef9006840..912d831a667 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "be2a7d6737d3b570d51a867eac47693ddcc584720a0292cd9de6a956aba9f0ee" + "sha256": "81c339055d15bcf267e5c2ef60f820ffb1598961efe7e59752bdee7c96e18589" }, "pipfile-spec": 6, "requires": { @@ -2073,14 +2073,6 @@ "index": "pypi", "version": "==23.9.16" }, - "freezegun": { - "hashes": [ - "sha256:cd22d1ba06941384410cd967d8a99d5ae2442f57dfafeff2fda5de8dc5c05446", - "sha256:ea1b963b993cb9ea195adbd893a48d573fda951b0da64f60883d7e988b606c9f" - ], - "index": "pypi", - "version": "==1.2.2" - }, "frozenlist": { "hashes": [ "sha256:007df07a6e3eb3e33e9a1fe6a9db7af152bbd8a185f9aaa6ece10a3529e3e1c6", @@ -2236,14 +2228,6 @@ "markers": "python_version >= '3.7'", "version": "==0.1.2" }, - "mock": { - "hashes": [ - "sha256:18c694e5ae8a208cdb3d2c20a993ca1a7b0efa258c247a1e565150f477f83744", - "sha256:5e96aad5ccda4718e0a229ed94b2024df75cc2d55575ba5762d31f5767b8767d" - ], - "index": "pypi", - "version": "==5.1.0" - }, "multidict": { "hashes": [ "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9", @@ -2733,6 +2717,68 @@ "markers": "python_version >= '3.8'", "version": "==5.1.0" }, + "time-machine": { + "hashes": [ + "sha256:02b33a8c19768c94f7ffd6aa6f9f64818e88afce23250016b28583929d20fb12", + "sha256:0c9829b2edfcf6b5d72a6ff330d4380f36a937088314c675531b43d3423dd8af", + "sha256:0cc116056a8a2a917a4eec85661dfadd411e0d8faae604ef6a0e19fe5cd57ef1", + "sha256:0db97f92be3efe0ac62fd3f933c91a78438cef13f283b6dfc2ee11123bfd7d8a", + "sha256:12eed2e9171c85b703d75c985dab2ecad4fe7025b7d2f842596fce1576238ece", + "sha256:1812e48c6c58707db9988445a219a908a710ea065b2cc808d9a50636291f27d4", + "sha256:19a3b10161c91ca8e0fd79348665cca711fd2eac6ce336ff9e6b447783817f93", + "sha256:1a22be4df364f49a507af4ac9ea38108a0105f39da3f9c60dce62d6c6ea4ccdc", + "sha256:1ac8ff145c63cd0dcfd9590fe694b5269aacbc130298dc7209b095d101f8cdde", + "sha256:20205422fcf2caf9a7488394587df86e5b54fdb315c1152094fbb63eec4e9304", + "sha256:21bef5854d49b62e2c33848b5c3e8acf22a3b46af803ef6ff19529949cb7cf9f", + "sha256:2bd4169b808745d219a69094b3cb86006938d45e7293249694e6b7366225a186", + "sha256:2dc76ee55a7d915a55960a726ceaca7b9097f67e4b4e681ef89871bcf98f00be", + "sha256:32b71e50b07f86916ac04bd1eefc2bd2c93706b81393748b08394509ee6585dc", + "sha256:34dcdbbd25c1e124e17fe58050452960fd16a11f9d3476aaa87260e28ecca0fd", + "sha256:3a7a0a49ce50d9c306c4343a7d6a3baa11092d4399a4af4355c615ccc321a9d3", + "sha256:3c87856105dcb25b5bbff031d99f06ef4d1c8380d096222e1bc63b496b5258e6", + "sha256:42ef5349135626ad6cd889a0a81400137e5c6928502b0817ea9e90bb10702000", + "sha256:4ca20f85a973a4ca8b00cf466cd72c27ccc72372549b138fd48d7e70e5a190ab", + "sha256:4e3a2611f8788608ebbcb060a5e36b45911bc3b8adc421b1dc29d2c81786ce4d", + "sha256:4f2ae8d0e359b216b695f1e7e7256f208c390db0480601a439c5dd1e1e4e16ce", + "sha256:5aee23cd046abf9caeddc982113e81ba9097a01f3972e9560f5ed64e3495f66d", + "sha256:5c6245db573863b335d9ca64b3230f623caf0988594ae554c0c794e7f80e3e66", + "sha256:5f87787d562e42bf1006a87eb689814105b98c4d5545874a281280d0f8b9a2d9", + "sha256:5fe3fda5fa73fec74278912e438fce1612a79c36fd0cc323ea3dc2d5ce629f31", + "sha256:62fd14a80b8b71726e07018628daaee0a2e00937625083f96f69ed6b8e3304c0", + "sha256:66fb3877014dca0b9286b0f06fa74062357bd23f2d9d102d10e31e0f8fa9b324", + "sha256:679cbf9b15bfde1654cf48124128d3fbe52f821fa158a98fcee5fe7e05db1917", + "sha256:67fa45cd813821e4f5bec0ac0820869e8e37430b15509d3f5fad74ba34b53852", + "sha256:685d98593f13649ad5e7ce3e58efe689feca1badcf618ba397d3ab877ee59326", + "sha256:6c16d90a597a8c2d3ce22d6be2eb3e3f14786974c11b01886e51b3cf0d5edaf7", + "sha256:71acbc1febbe87532c7355eca3308c073d6e502ee4ce272b5028967847c8e063", + "sha256:7558622a62243be866a7e7c41da48eacd82c874b015ecf67d18ebf65ca3f7436", + "sha256:7693704c0f2f6b9beed912ff609781edf5fcf5d63aff30c92be4093e09d94b8e", + "sha256:88601de1da06c7cab3d5ed3d5c3801ef683366e769e829e96383fdab6ae2fe42", + "sha256:8d526cdcaca06a496877cfe61cc6608df2c3a6fce210e076761964ebac7f77cc", + "sha256:918f8389de29b4f41317d121f1150176fae2cdb5fa41f68b2aee0b9dc88df5c3", + "sha256:924377d398b1c48e519ad86a71903f9f36117f69e68242c99fb762a2465f5ad2", + "sha256:9f128db8997c3339f04f7f3946dd9bb2a83d15e0a40d35529774da1e9e501511", + "sha256:9fad549521c4c13bdb1e889b2855a86ec835780d534ffd8f091c2647863243be", + "sha256:a26bdf3462d5f12a4c1009fdbe54366c6ef22c7b6f6808705b51dedaaeba8296", + "sha256:ab04cf4e56e1ee65bee2adaa26a04695e92eb1ed1ccc65fbdafd0d114399595a", + "sha256:b0c8f24ae611a58782773af34dd356f1f26756272c04be2be7ea73b47e5da37d", + "sha256:bdfe4a7f033e6783c3e9a7f8d8fc0b115367330762e00a03ff35fedf663994f3", + "sha256:c23b2408e3adcedec84ea1131e238f0124a5bc0e491f60d1137ad7239b37c01a", + "sha256:ccbce292380ebf63fb9a52e6b03d91677f6a003e0c11f77473efe3913a75f289", + "sha256:cfef4ebfb4f055ce3ebc7b6c1c4d0dbfcffdca0e783ad8c6986c992915a57ed3", + "sha256:d4a2d3db2c3b8e519d5ef436cd405abd33542a7b7761fb05ef5a5f782a8ce0b1", + "sha256:dabb3b155819811b4602f7e9be936e2024e20dc99a90f103e36b45768badf9c3", + "sha256:de01f33aa53da37530ad97dcd17e9affa25a8df4ab822506bb08101bab0c2673", + "sha256:dec0ec2135a4e2a59623e40c31d6e8a8ae73305ade2634380e4263d815855750", + "sha256:e433827eccd6700a34a2ab28fd9361ff6e4d4923f718d2d1dac6d1dcd9d54da6", + "sha256:e58d82fe0e59d6e096ada3281d647a2e7420f7da5453b433b43880e1c2e8e0c5", + "sha256:e9935aff447f5400a2665ab10ed2da972591713080e1befe1bb8954e7c0c7806", + "sha256:e9a9d150e098be3daee5c9f10859ab1bd14a61abebaed86e6d71f7f18c05b9d7", + "sha256:f5fa9610f7e73fff42806a2ed8b06d862aa59ce4d178a52181771d6939c3e237" + ], + "index": "pypi", + "version": "==2.13.0" + }, "toml": { "hashes": [ "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", diff --git a/checkov/common/output/gitlab_sast.py b/checkov/common/output/gitlab_sast.py index 43fa88fc880..bf8a8bf4bdc 100644 --- a/checkov/common/output/gitlab_sast.py +++ b/checkov/common/output/gitlab_sast.py @@ -1,6 +1,6 @@ from __future__ import annotations -from datetime import datetime +from datetime import datetime, timezone from typing import TYPE_CHECKING, Any from uuid import uuid4 @@ -37,7 +37,7 @@ def create_sast_json(self) -> dict[str, Any]: } def _create_scan(self) -> dict[str, Any]: - current_datetime = datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S") + current_datetime = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%S") scanner = { "id": "checkov", "name": "Checkov", diff --git a/tests/common/checks/test_base_check.py b/tests/common/checks/test_base_check.py index e3d5ad1efb3..14edda655ba 100644 --- a/tests/common/checks/test_base_check.py +++ b/tests/common/checks/test_base_check.py @@ -1,7 +1,7 @@ import os import unittest -import mock +from unittest import mock from parameterized import parameterized from checkov.common.checks.base_check import BaseCheck diff --git a/tests/common/output/test_spdx.py b/tests/common/output/test_spdx.py index ea22b94929a..9e0be6f2271 100644 --- a/tests/common/output/test_spdx.py +++ b/tests/common/output/test_spdx.py @@ -1,4 +1,4 @@ -from freezegun import freeze_time +from time_machine import travel from checkov.common.bridgecrew.check_type import CheckType from checkov.common.output.extra_resource import ExtraResource @@ -7,7 +7,7 @@ from checkov.common.sca.output import create_report_cve_record -@freeze_time("2022-12-24") +@travel("2022-12-24") def test_sca_package_output(): # given rootless_file_path = "requirements.txt" @@ -85,7 +85,7 @@ def test_sca_package_output(): "## Creation Information\n", "Creator: Tool: checkov\n", "Creator: Organization: bridgecrew (meet@bridgecrew.io)\n", - "Created: 2022-12-24T00:00:00+00:00Z\n", + "Created: 2022-12-23T23:00:00+00:00Z\n", "\n", "## Package Information\n", "PackageName: django\n", diff --git a/tests/common/test_resource_code_logger_filter.py b/tests/common/test_resource_code_logger_filter.py index 3d1c478fd42..13551add3dd 100644 --- a/tests/common/test_resource_code_logger_filter.py +++ b/tests/common/test_resource_code_logger_filter.py @@ -1,5 +1,5 @@ import logging -import mock +from unittest import mock from checkov.common.resource_code_logger_filter import add_resource_code_filter_to_logger diff --git a/tests/github/checks/test_python_policies.py b/tests/github/checks/test_python_policies.py index 00c463b0b30..8d933044c7f 100644 --- a/tests/github/checks/test_python_policies.py +++ b/tests/github/checks/test_python_policies.py @@ -3,7 +3,7 @@ from pathlib import Path import pytest -from freezegun import freeze_time +from time_machine import travel from checkov.github.runner import Runner from checkov.runner_filter import RunnerFilter @@ -45,7 +45,7 @@ def test_GithubRequire2Approvals(): run_check(base_path=BASE_DIR / "branch_security", check="GithubRequire2Approvals") -@freeze_time("2022-12-05") +@travel("2022-12-05") def test_GithubDisallowInactiveBranch60Days(): run_check(base_path=BASE_DIR / "branch_security", check="GithubDisallowInactiveBranch60Days") diff --git a/tests/kustomize/test_runner.py b/tests/kustomize/test_runner.py index bec660e3afb..bcf3a77d2b6 100644 --- a/tests/kustomize/test_runner.py +++ b/tests/kustomize/test_runner.py @@ -1,7 +1,7 @@ import os -import mock import unittest from pathlib import Path +from unittest import mock from checkov.common.bridgecrew.check_type import CheckType from checkov.common.bridgecrew.severities import Severities, BcSeverities diff --git a/tests/kustomize/test_runner_image_referencer.py b/tests/kustomize/test_runner_image_referencer.py index b87e59ace4e..52d32695d1e 100644 --- a/tests/kustomize/test_runner_image_referencer.py +++ b/tests/kustomize/test_runner_image_referencer.py @@ -1,10 +1,9 @@ from __future__ import annotations import os -import sys from pathlib import Path +from unittest import mock -import mock import pytest from pytest_mock import MockerFixture diff --git a/tests/secrets/test_secrets_verification.py b/tests/secrets/test_secrets_verification.py index 70533800340..08648f14f82 100644 --- a/tests/secrets/test_secrets_verification.py +++ b/tests/secrets/test_secrets_verification.py @@ -1,7 +1,8 @@ from __future__ import annotations + import os +from unittest import mock -import mock import pytest import responses diff --git a/tests/secrets/test_secrets_verification_suppressions.py b/tests/secrets/test_secrets_verification_suppressions.py index c9f3f7e0ed6..81d09f89ebf 100644 --- a/tests/secrets/test_secrets_verification_suppressions.py +++ b/tests/secrets/test_secrets_verification_suppressions.py @@ -1,6 +1,6 @@ import os +from unittest import mock -import mock import responses from checkov.common.models.enums import CheckResult diff --git a/tests/terraform/checks/resource/gcp/test_GoogleComputeFirewallUnrestrictedIngress22.py b/tests/terraform/checks/resource/gcp/test_GoogleComputeFirewallUnrestrictedIngress22.py index bf887f3512c..7f32e471313 100644 --- a/tests/terraform/checks/resource/gcp/test_GoogleComputeFirewallUnrestrictedIngress22.py +++ b/tests/terraform/checks/resource/gcp/test_GoogleComputeFirewallUnrestrictedIngress22.py @@ -1,8 +1,7 @@ import os import unittest from pathlib import Path - -import mock +from unittest import mock from checkov.runner_filter import RunnerFilter from checkov.terraform.checks.resource.gcp.GoogleComputeFirewallUnrestrictedIngress22 import check diff --git a/tests/terraform/graph/checks_infra/test_base_attribute_solver.py b/tests/terraform/graph/checks_infra/test_base_attribute_solver.py index 8e957347ad0..1db956b7a1b 100644 --- a/tests/terraform/graph/checks_infra/test_base_attribute_solver.py +++ b/tests/terraform/graph/checks_infra/test_base_attribute_solver.py @@ -29,8 +29,8 @@ def test_get_cached_jsonpath_statement(mocker: MockerFixture): assert len(BaseAttributeSolver.jsonpath_parsed_statement_cache) == 1 # patch jsonpath_ng.parse to be able to check it was really not called again and the cache was properly used - with mocker.patch("checkov.common.checks_infra.solvers.attribute_solvers.base_attribute_solver.parse", side_effect=jsonpath_parse_mock): - solver_2._get_cached_jsonpath_statement(statement=statement) + mocker.patch("checkov.common.checks_infra.solvers.attribute_solvers.base_attribute_solver.parse", side_effect=jsonpath_parse_mock) + solver_2._get_cached_jsonpath_statement(statement=statement) # then assert len(BaseAttributeSolver.jsonpath_parsed_statement_cache) == 1 diff --git a/tests/terraform/graph/graph_builder/test_local_graph.py b/tests/terraform/graph/graph_builder/test_local_graph.py index 82ca433249e..b6463f1be98 100644 --- a/tests/terraform/graph/graph_builder/test_local_graph.py +++ b/tests/terraform/graph/graph_builder/test_local_graph.py @@ -1,9 +1,7 @@ import os from pathlib import Path from unittest import TestCase - -import mock -import json +from unittest import mock from checkov.common.graph.db_connectors.networkx.networkx_db_connector import NetworkxConnector from checkov.common.graph.graph_builder import EncryptionValues, EncryptionTypes diff --git a/tests/terraform/runner/test_plan_runner.py b/tests/terraform/runner/test_plan_runner.py index ef27ae85faf..0719392318a 100644 --- a/tests/terraform/runner/test_plan_runner.py +++ b/tests/terraform/runner/test_plan_runner.py @@ -4,11 +4,9 @@ from collections import defaultdict from copy import deepcopy from pathlib import Path - - from typing import Dict, Any +from unittest import mock -import mock from parameterized import parameterized_class # do not remove - prevents circular import