moto/tests/test_meteringmarketplace/test_meteringmarketplace.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

96 lines
2.7 KiB
Python
Raw Permalink Normal View History

2022-10-07 14:41:10 +00:00
import copy
from datetime import datetime
import boto3
2024-01-07 12:03:33 +00:00
from moto import mock_aws
2022-10-07 14:41:10 +00:00
from moto.meteringmarketplace.models import Result
USAGE_RECORDS = [
{
"Timestamp": datetime(2019, 8, 25, 21, 1, 38),
"CustomerIdentifier": "EqCDbVpkMBaQzPQv",
"Dimension": "HIDaByYzIxgGZqyz",
"Quantity": 6984,
},
{
"Timestamp": datetime(2019, 9, 7, 16, 4, 47),
"CustomerIdentifier": "ITrDnpWEiebXybRJ",
"Dimension": "BSWatHqyhbyTQHCS",
"Quantity": 6388,
},
{
"Timestamp": datetime(2019, 6, 15, 23, 17, 49),
"CustomerIdentifier": "YfzTVRheDsXEehgQ",
"Dimension": "FsVxwLkTAynaWwGT",
"Quantity": 3532,
},
{
"Timestamp": datetime(2019, 9, 10, 19, 56, 35),
"CustomerIdentifier": "kmgmFPcWhpDGSSDm",
"Dimension": "PBXGdBHQWVOwudRK",
"Quantity": 9897,
},
{
"Timestamp": datetime(2019, 1, 12, 1, 28, 36),
"CustomerIdentifier": "OyxECDjaaDVUeQIB",
"Dimension": "VzwLdmFjbTBBbHJg",
"Quantity": 5142,
},
{
"Timestamp": datetime(2019, 8, 5, 18, 27, 41),
"CustomerIdentifier": "PkeNkaJVfceGvYAX",
"Dimension": "mHTtIbsLAYrCVSNM",
"Quantity": 6503,
},
{
"Timestamp": datetime(2019, 7, 18, 3, 22, 18),
"CustomerIdentifier": "ARzQRYYuXGHCVDkW",
"Dimension": "RMjZbVpxehPTNtDL",
"Quantity": 5465,
},
{
"Timestamp": datetime(2019, 6, 24, 9, 19, 14),
"CustomerIdentifier": "kzlvIayJzpyfBPaH",
"Dimension": "MmsydkBEHERXDooi",
"Quantity": 6135,
},
{
"Timestamp": datetime(2019, 9, 28, 20, 29, 5),
"CustomerIdentifier": "nygdXONtkiqktTMn",
"Dimension": "GKbTFPMGRyZObEEz",
"Quantity": 3416,
},
{
"Timestamp": datetime(2019, 6, 17, 2, 5, 34),
"CustomerIdentifier": "JlIGIXHHPphnBhfV",
"Dimension": "dcBPhccyHYSdPUUO",
"Quantity": 2184,
},
]
2024-01-07 12:03:33 +00:00
@mock_aws()
2022-10-07 14:41:10 +00:00
def test_batch_meter_usage():
client = boto3.client("meteringmarketplace", region_name="us-east-1")
res = client.batch_meter_usage(
UsageRecords=USAGE_RECORDS, ProductCode="PUFXZLyUElvQvrsG"
)
assert len(res["Results"]) == 10
2022-10-07 14:41:10 +00:00
records_without_time = copy.copy(USAGE_RECORDS)
for r in records_without_time:
r.pop("Timestamp")
for record in res["Results"]:
record["UsageRecord"].pop("Timestamp")
assert record["UsageRecord"] in records_without_time
assert record["MeteringRecordId"]
assert record["Status"] in [
Result.DUPLICATE_RECORD,
Result.CUSTOMER_NOT_SUBSCRIBED,
Result.SUCCESS,
]