142 lines
3.8 KiB
Python
142 lines
3.8 KiB
Python
import boto3
|
|
|
|
from moto import mock_ecr
|
|
|
|
|
|
@mock_ecr
|
|
def test_batch_get_repository_scanning_configuration():
|
|
client = boto3.client("ecr", region_name="us-east-1")
|
|
repo_name = "test-repo"
|
|
repo_arn = client.create_repository(repositoryName=repo_name)["repository"][
|
|
"repositoryArn"
|
|
]
|
|
|
|
# Default ScanningConfig is returned
|
|
resp = client.batch_get_repository_scanning_configuration(
|
|
repositoryNames=[repo_name]
|
|
)
|
|
|
|
assert resp["scanningConfigurations"] == [
|
|
{
|
|
"repositoryArn": repo_arn,
|
|
"repositoryName": repo_name,
|
|
"scanOnPush": False,
|
|
"scanFrequency": "MANUAL",
|
|
"appliedScanFilters": [],
|
|
}
|
|
]
|
|
assert resp["failures"] == []
|
|
|
|
# Non-existing repositories are returned as failures
|
|
resp = client.batch_get_repository_scanning_configuration(
|
|
repositoryNames=["unknown"]
|
|
)
|
|
|
|
assert resp["scanningConfigurations"] == []
|
|
assert resp["failures"] == [
|
|
{
|
|
"repositoryName": "unknown",
|
|
"failureCode": "REPOSITORY_NOT_FOUND",
|
|
"failureReason": "REPOSITORY_NOT_FOUND",
|
|
}
|
|
]
|
|
|
|
|
|
@mock_ecr
|
|
def test_put_registry_scanning_configuration():
|
|
client = boto3.client("ecr", region_name="us-east-1")
|
|
repo_name = "test-repo"
|
|
repo_arn = client.create_repository(repositoryName=repo_name)["repository"][
|
|
"repositoryArn"
|
|
]
|
|
|
|
#####
|
|
# Creating a ScanningConfig where
|
|
# filter == repo_name
|
|
####
|
|
client.put_registry_scanning_configuration(
|
|
scanType="ENHANCED",
|
|
rules=[
|
|
{
|
|
"scanFrequency": "CONTINUOUS_SCAN",
|
|
"repositoryFilters": [{"filter": repo_name, "filterType": "WILDCARD"}],
|
|
}
|
|
],
|
|
)
|
|
|
|
resp = client.batch_get_repository_scanning_configuration(
|
|
repositoryNames=[repo_name]
|
|
)
|
|
|
|
assert resp["scanningConfigurations"] == [
|
|
{
|
|
"repositoryArn": repo_arn,
|
|
"repositoryName": repo_name,
|
|
"scanOnPush": False,
|
|
"scanFrequency": "CONTINUOUS_SCAN",
|
|
"appliedScanFilters": [{"filter": repo_name, "filterType": "WILDCARD"}],
|
|
}
|
|
]
|
|
|
|
#####
|
|
# Creating a ScanningConfig where
|
|
# filter == repo*
|
|
####
|
|
client.put_registry_scanning_configuration(
|
|
scanType="ENHANCED",
|
|
rules=[
|
|
{
|
|
"scanFrequency": "SCAN_ON_PUSH",
|
|
"repositoryFilters": [
|
|
{"filter": f"{repo_name[:4]}*", "filterType": "WILDCARD"}
|
|
],
|
|
}
|
|
],
|
|
)
|
|
|
|
resp = client.batch_get_repository_scanning_configuration(
|
|
repositoryNames=[repo_name]
|
|
)
|
|
|
|
assert resp["scanningConfigurations"] == [
|
|
{
|
|
"repositoryArn": repo_arn,
|
|
"repositoryName": repo_name,
|
|
"scanOnPush": False,
|
|
"scanFrequency": "SCAN_ON_PUSH",
|
|
"appliedScanFilters": [
|
|
{"filter": f"{repo_name[:4]}*", "filterType": "WILDCARD"}
|
|
],
|
|
}
|
|
]
|
|
|
|
#####
|
|
# Creating a ScanningConfig where
|
|
# filter == unknown_repo
|
|
####
|
|
client.put_registry_scanning_configuration(
|
|
scanType="ENHANCED",
|
|
rules=[
|
|
{
|
|
"scanFrequency": "MANUAL",
|
|
"repositoryFilters": [{"filter": "unknown", "filterType": "WILDCARD"}],
|
|
}
|
|
],
|
|
)
|
|
|
|
resp = client.batch_get_repository_scanning_configuration(
|
|
repositoryNames=[repo_name]
|
|
)
|
|
|
|
assert resp["scanningConfigurations"] == [
|
|
{
|
|
"repositoryArn": repo_arn,
|
|
"repositoryName": repo_name,
|
|
"scanOnPush": False,
|
|
"scanFrequency": "SCAN_ON_PUSH",
|
|
"appliedScanFilters": [
|
|
{"filter": f"{repo_name[:4]}*", "filterType": "WILDCARD"}
|
|
],
|
|
}
|
|
]
|