Skip to content

Commit 2da7b96

Browse files
committed
add tests for product provider
1 parent b8dd6a9 commit 2da7b96

File tree

3 files changed

+19
-26
lines changed

3 files changed

+19
-26
lines changed

src/bulk_importer/main.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,6 @@
2424
logger = logging.getLogger()
2525
logger.setLevel("INFO")
2626

27-
#from cryptography.hazmat.primitives.asymmetric import ec
28-
29-
#from aws_lambda_powertools.utilities.data_classes import S3Event
30-
#from aws_lambda_powertools.utilities.typing import LambdaContext
31-
#from aws_lambda_powertools.utilities.validation import validator
32-
33-
34-
#config = None
35-
3627
def get_certificate(certificate_id):
3728
"""Verify that the certificate is in IoT Core"""
3829
iot_client = boto3client('iot')

src/product_provider/main.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,39 +7,45 @@
77
import os
88
import json
99
import boto3
10+
from aws_lambda_powertools.utilities.typing import LambdaContext
11+
from aws_lambda_powertools.utilities.data_classes import SQSEvent
1012

1113
def process(payload):
12-
14+
"""Annotate payload with environment-passed variants, later this function
15+
will evolve to allow importing types, groups, and policies"""
1316
# queue url is
14-
queueUrl = os.environ.get('QUEUE_TARGET')
17+
queue_url = os.environ.get('QUEUE_TARGET')
1518

1619
# Policy is required.
1720
payload['policy_name'] = os.environ.get('POLICY_NAME')
1821

1922
# Thing group is desired, but optional.
20-
# The reason why 'None' has to be set is an environment variable
23+
# The reason why 'None' has to be set is an environment variable
2124
# on a Lambda function cannot be set to empty
22-
23-
if (os.environ.get('THING_GROUP_NAME') == "None"):
24-
payload['thing_group_name'] = ""
25+
if os.environ.get('THING_GROUP_NAME') == "None":
26+
payload['thing_group_name'] = None
2527
else:
2628
payload['thing_group_name'] = os.environ.get('THING_GROUP_NAME')
2729

2830
# Thing group is desired, but optional.
29-
if (os.environ.get('THING_TYPE_NAME') == "None"):
30-
payload['thing_type_name'] = ""
31+
if os.environ.get('THING_TYPE_NAME') == "None":
32+
payload['thing_type_name'] = None
3133
else:
3234
payload['thing_type_name'] = os.environ.get('THING_TYPE_NAME')
3335

3436
# Pass on to the queue for target processing.
3537
print(json.dumps(payload))
3638

3739
client = boto3.client("sqs")
38-
client.send_message( QueueUrl=queueUrl,
40+
client.send_message( QueueUrl=queue_url,
3941
MessageBody=json.dumps(payload))
42+
return payload
4043

41-
def lambda_handler(event, context):
42-
44+
def lambda_handler(event: SQSEvent, context: LambdaContext) -> dict:
45+
"""Lambda function main entry point"""
4346
# Get the payload coming in and process it. There might be more than one.
47+
result = []
4448
for record in event['Records']:
45-
process(json.loads(record["body"]))
49+
r = process(json.loads(record["body"]))
50+
result.append(r)
51+
return result

test/unit/src/test_bulk_importer.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,19 @@
44
55
Unit tests for bulk_importer
66
"""
7-
import os
87
import base64
98
from unittest import TestCase
109
from moto import mock_aws
1110
from cryptography import x509
1211
from cryptography.hazmat.backends import default_backend
1312
from cryptography.hazmat.primitives import serialization
14-
15-
1613
from boto3 import resource, client
17-
from src.bulk_importer.testable import LambdaSQSClass
1814
from src.bulk_importer.main import get_certificate_fingerprint, requeue, process_certificate
1915
# from src.bulk_importer.main import lambda_handler, get_certificate, get_thing, get_policy
2016
# from src.bulk_importer.main import get_certificate_arn, get_thing_group, get_thing_type
2117
# from src.bulk_importer.main import process_policy, process_thing
2218
# from src.bulk_importer.main import process_thing_group, get_name_from_certificate, process_sqs
23-
19+
from .model_bulk_importer import LambdaSQSClass
2420

2521
@mock_aws(config={
2622
"core": {

0 commit comments

Comments
 (0)