chore(tests): Replace sure with standard assert (#2738)

This commit is contained in:
Pepe Fagoaga
2023-08-17 11:36:45 +02:00
committed by GitHub
parent 1677654dea
commit ac11c6729b
9 changed files with 81 additions and 87 deletions

BIN
.coverage

Binary file not shown.

1
.gitignore vendored
View File

@@ -49,4 +49,5 @@ junit-reports/
# Coverage # Coverage
.coverage* .coverage*
.coverage
coverage* coverage*

View File

@@ -2,20 +2,19 @@
##@ Testing ##@ Testing
test: ## Test with pytest test: ## Test with pytest
pytest -n auto -vvv -s -x rm -rf .coverage && \
rm -rf .coverage && \ pytest -n auto -vvv -s --cov=./prowler --cov-report=xml tests
rm -rf ./htmlcov && \
pytest -n auto --cov=./prowler --cov-report=xml tests
coverage: ## Show Test Coverage coverage: ## Show Test Coverage
coverage run --skip-covered -m pytest -v && \ coverage run --skip-covered -m pytest -v && \
coverage report -m && \ coverage report -m && \
rm -rf .coverage rm -rf .coverage && \
coverage report -m coverage report -m
coverage-html: ## Show Test Coverage coverage-html: ## Show Test Coverage
coverage html && \ rm -rf ./htmlcov && \
open htmlcov/index.html coverage html && \
open htmlcov/index.html
##@ Linting ##@ Linting
format: ## Format Code format: ## Format Code

22
poetry.lock generated
View File

@@ -1374,13 +1374,13 @@ files = [
[[package]] [[package]]
name = "mock" name = "mock"
version = "5.0.2" version = "5.1.0"
description = "Rolling backport of unittest.mock for all Pythons" description = "Rolling backport of unittest.mock for all Pythons"
optional = false optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
files = [ files = [
{file = "mock-5.0.2-py3-none-any.whl", hash = "sha256:0e0bc5ba78b8db3667ad636d964eb963dc97a59f04c6f6214c5f0e4a8f726c56"}, {file = "mock-5.1.0-py3-none-any.whl", hash = "sha256:18c694e5ae8a208cdb3d2c20a993ca1a7b0efa258c247a1e565150f477f83744"},
{file = "mock-5.0.2.tar.gz", hash = "sha256:06f18d7d65b44428202b145a9a36e99c2ee00d1eb992df0caf881d4664377891"}, {file = "mock-5.1.0.tar.gz", hash = "sha256:5e96aad5ccda4718e0a229ed94b2024df75cc2d55575ba5762d31f5767b8767d"},
] ]
[package.extras] [package.extras]
@@ -2584,20 +2584,6 @@ files = [
[package.dependencies] [package.dependencies]
pbr = ">=2.0.0,<2.1.0 || >2.1.0" pbr = ">=2.0.0,<2.1.0 || >2.1.0"
[[package]]
name = "sure"
version = "2.0.1"
description = "utility belt for automated testing in python for python"
optional = false
python-versions = "*"
files = [
{file = "sure-2.0.1.tar.gz", hash = "sha256:c8fc6fabc0e7f6984eeabb942540e45646e5bef0bb99fe59e02da634e4d4b9ca"},
]
[package.dependencies]
mock = "*"
six = "*"
[[package]] [[package]]
name = "tabulate" name = "tabulate"
version = "0.9.0" version = "0.9.0"
@@ -2907,4 +2893,4 @@ docs = ["mkdocs", "mkdocs-material"]
[metadata] [metadata]
lock-version = "2.0" lock-version = "2.0"
python-versions = "^3.9" python-versions = "^3.9"
content-hash = "3e70fe34df97f080cc7698f420ee7564b8250b223ad826fba9aabcbe71a3309e" content-hash = "7dc4127465abad1d20e55c5889ed9e3c61a241fd728c30646d48bf1f24129d5c"

View File

@@ -60,6 +60,7 @@ coverage = "7.3.0"
docker = "6.1.3" docker = "6.1.3"
flake8 = "6.1.0" flake8 = "6.1.0"
freezegun = "1.2.2" freezegun = "1.2.2"
mock = "5.1.0"
moto = "4.1.14" moto = "4.1.14"
openapi-spec-validator = "0.6.0" openapi-spec-validator = "0.6.0"
pylint = "2.17.5" pylint = "2.17.5"
@@ -68,7 +69,6 @@ pytest-cov = "4.1.0"
pytest-randomly = "3.13.0" pytest-randomly = "3.13.0"
pytest-xdist = "3.3.1" pytest-xdist = "3.3.1"
safety = "2.3.5" safety = "2.3.5"
sure = "2.0.1"
vulture = "2.8" vulture = "2.8"
[tool.poetry.scripts] [tool.poetry.scripts]

View File

@@ -1,5 +1,6 @@
from re import search
import boto3 import boto3
import sure # noqa
from mock import patch from mock import patch
from moto import mock_iam, mock_sts from moto import mock_iam, mock_sts
@@ -214,27 +215,30 @@ class Test_AWS_Provider:
credentials = assume_role_response["Credentials"] credentials = assume_role_response["Credentials"]
# Test the response # Test the response
# SessionToken # SessionToken
credentials["SessionToken"].should.have.length_of(356) assert len(credentials["SessionToken"]) == 356
credentials["SessionToken"].startswith("FQoGZXIvYXdzE") assert search(r"^FQoGZXIvYXdzE.*$", credentials["SessionToken"])
# AccessKeyId # AccessKeyId
credentials["AccessKeyId"].should.have.length_of(20) assert len(credentials["AccessKeyId"]) == 20
credentials["AccessKeyId"].startswith("ASIA") assert search(r"^ASIA.*$", credentials["AccessKeyId"])
# SecretAccessKey # SecretAccessKey
credentials["SecretAccessKey"].should.have.length_of(40) assert len(credentials["SecretAccessKey"]) == 40
# Assumed Role # Assumed Role
assume_role_response["AssumedRoleUser"]["Arn"].should.equal( assert (
f"arn:aws:sts::{ACCOUNT_ID}:assumed-role/{role_name}/{sessionName}" assume_role_response["AssumedRoleUser"]["Arn"]
== f"arn:aws:sts::{ACCOUNT_ID}:assumed-role/{role_name}/{sessionName}"
) )
# AssumedRoleUser # AssumedRoleUser
assert assume_role_response["AssumedRoleUser"]["AssumedRoleId"].startswith( assert search(
"AROA" r"^AROA.*$", assume_role_response["AssumedRoleUser"]["AssumedRoleId"]
) )
assert assume_role_response["AssumedRoleUser"]["AssumedRoleId"].endswith( assert search(
":" + sessionName rf"^.*:{sessionName}$",
assume_role_response["AssumedRoleUser"]["AssumedRoleId"],
) )
assume_role_response["AssumedRoleUser"][ assert len(
"AssumedRoleId" assume_role_response["AssumedRoleUser"]["AssumedRoleId"]
].should.have.length_of(21 + 1 + len(sessionName)) ) == 21 + 1 + len(sessionName)
@mock_iam @mock_iam
@mock_sts @mock_sts
@@ -301,27 +305,30 @@ class Test_AWS_Provider:
credentials = assume_role_response["Credentials"] credentials = assume_role_response["Credentials"]
# Test the response # Test the response
# SessionToken # SessionToken
credentials["SessionToken"].should.have.length_of(356) assert len(credentials["SessionToken"]) == 356
credentials["SessionToken"].startswith("FQoGZXIvYXdzE") assert search(r"^FQoGZXIvYXdzE.*$", credentials["SessionToken"])
# AccessKeyId # AccessKeyId
credentials["AccessKeyId"].should.have.length_of(20) assert len(credentials["AccessKeyId"]) == 20
credentials["AccessKeyId"].startswith("ASIA") assert search(r"^ASIA.*$", credentials["AccessKeyId"])
# SecretAccessKey # SecretAccessKey
credentials["SecretAccessKey"].should.have.length_of(40) assert len(credentials["SecretAccessKey"]) == 40
# Assumed Role # Assumed Role
assume_role_response["AssumedRoleUser"]["Arn"].should.equal( assert (
f"arn:aws:sts::{ACCOUNT_ID}:assumed-role/{role_name}/{sessionName}" assume_role_response["AssumedRoleUser"]["Arn"]
== f"arn:aws:sts::{ACCOUNT_ID}:assumed-role/{role_name}/{sessionName}"
) )
# AssumedRoleUser # AssumedRoleUser
assert assume_role_response["AssumedRoleUser"]["AssumedRoleId"].startswith( assert search(
"AROA" r"^AROA.*$", assume_role_response["AssumedRoleUser"]["AssumedRoleId"]
) )
assert assume_role_response["AssumedRoleUser"]["AssumedRoleId"].endswith( assert search(
":" + sessionName rf"^.*:{sessionName}$",
) assume_role_response["AssumedRoleUser"]["AssumedRoleId"],
assume_role_response["AssumedRoleUser"]["AssumedRoleId"].should.have.length_of(
21 + 1 + len(sessionName)
) )
assert len(
assume_role_response["AssumedRoleUser"]["AssumedRoleId"]
) == 21 + 1 + len(sessionName)
@mock_iam @mock_iam
@mock_sts @mock_sts
@@ -390,27 +397,30 @@ class Test_AWS_Provider:
credentials = assume_role_response["Credentials"] credentials = assume_role_response["Credentials"]
# Test the response # Test the response
# SessionToken # SessionToken
credentials["SessionToken"].should.have.length_of(356) assert len(credentials["SessionToken"]) == 356
credentials["SessionToken"].startswith("FQoGZXIvYXdzE") assert search(r"^FQoGZXIvYXdzE.*$", credentials["SessionToken"])
# AccessKeyId # AccessKeyId
credentials["AccessKeyId"].should.have.length_of(20) assert len(credentials["AccessKeyId"]) == 20
credentials["AccessKeyId"].startswith("ASIA") assert search(r"^ASIA.*$", credentials["AccessKeyId"])
# SecretAccessKey # SecretAccessKey
credentials["SecretAccessKey"].should.have.length_of(40) assert len(credentials["SecretAccessKey"]) == 40
# Assumed Role # Assumed Role
assume_role_response["AssumedRoleUser"]["Arn"].should.equal( assert (
f"arn:aws:sts::{ACCOUNT_ID}:assumed-role/{role_name}/{sessionName}" assume_role_response["AssumedRoleUser"]["Arn"]
== f"arn:aws:sts::{ACCOUNT_ID}:assumed-role/{role_name}/{sessionName}"
) )
# AssumedRoleUser # AssumedRoleUser
assert assume_role_response["AssumedRoleUser"]["AssumedRoleId"].startswith( assert search(
"AROA" r"^AROA.*$", assume_role_response["AssumedRoleUser"]["AssumedRoleId"]
) )
assert assume_role_response["AssumedRoleUser"]["AssumedRoleId"].endswith( assert search(
":" + sessionName rf"^.*:{sessionName}$",
) assume_role_response["AssumedRoleUser"]["AssumedRoleId"],
assume_role_response["AssumedRoleUser"]["AssumedRoleId"].should.have.length_of(
21 + 1 + len(sessionName)
) )
assert len(
assume_role_response["AssumedRoleUser"]["AssumedRoleId"]
) == 21 + 1 + len(sessionName)
def test_generate_regional_clients(self): def test_generate_regional_clients(self):
# New Boto3 session with the previously create user # New Boto3 session with the previously create user

View File

@@ -1,4 +1,3 @@
import sure # noqa
from pytest import raises from pytest import raises
from prowler.providers.aws.lib.arn.arn import is_valid_arn, parse_iam_credentials_arn from prowler.providers.aws.lib.arn.arn import is_valid_arn, parse_iam_credentials_arn
@@ -250,12 +249,12 @@ class Test_ARN_Parsing:
for test in test_cases: for test in test_cases:
input_arn = test["input_arn"] input_arn = test["input_arn"]
parsed_arn = parse_iam_credentials_arn(input_arn) parsed_arn = parse_iam_credentials_arn(input_arn)
parsed_arn.partition.should.equal(test["expected"]["partition"]) assert parsed_arn.partition == test["expected"]["partition"]
parsed_arn.service.should.equal(test["expected"]["service"]) assert parsed_arn.service == test["expected"]["service"]
parsed_arn.region.should.equal(test["expected"]["region"]) assert parsed_arn.region == test["expected"]["region"]
parsed_arn.account_id.should.equal(test["expected"]["account_id"]) assert parsed_arn.account_id == test["expected"]["account_id"]
parsed_arn.resource_type.should.equal(test["expected"]["resource_type"]) assert parsed_arn.resource_type == test["expected"]["resource_type"]
parsed_arn.resource.should.equal(test["expected"]["resource"]) assert parsed_arn.resource == test["expected"]["resource"]
def test_iam_credentials_arn_parsing_raising_RoleArnParsingFailedMissingFields( def test_iam_credentials_arn_parsing_raising_RoleArnParsingFailedMissingFields(
self, self,

View File

@@ -1,7 +1,6 @@
import json import json
import boto3 import boto3
import sure # noqa
from moto import mock_iam, mock_organizations, mock_sts from moto import mock_iam, mock_organizations, mock_sts
from prowler.providers.aws.lib.organizations.organizations import ( from prowler.providers.aws.lib.organizations.organizations import (
@@ -52,10 +51,11 @@ class Test_AWS_Organizations:
org = get_organizations_metadata(account_id, assumed_role) org = get_organizations_metadata(account_id, assumed_role)
org.account_details_email.should.equal(mockemail) assert org.account_details_email == mockemail
org.account_details_name.should.equal(mockname) assert org.account_details_name == mockname
org.account_details_arn.should.equal( assert (
f"arn:aws:organizations::{AWS_ACCOUNT_NUMBER}:account/{org_id}/{account_id}" org.account_details_arn
== f"arn:aws:organizations::{AWS_ACCOUNT_NUMBER}:account/{org_id}/{account_id}"
) )
org.account_details_org.should.equal(org_id) assert org.account_details_org == org_id
org.account_details_tags.should.equal("key:value,") assert org.account_details_tags == "key:value,"

View File

@@ -1,7 +1,6 @@
import boto3 import boto3
import botocore import botocore
import pytest import pytest
import sure # noqa
from boto3 import session from boto3 import session
from mock import patch from mock import patch
from moto import mock_ec2, mock_resourcegroupstaggingapi from moto import mock_ec2, mock_resourcegroupstaggingapi