Skip to content

Commit 2a3d383

Browse files
committed
complete a couple more unit tests for file handling
1 parent c6e84c0 commit 2a3d383

File tree

4 files changed

+16
-6
lines changed

4 files changed

+16
-6
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ packaged.yaml
55
/.idea/
66
.coverage
77
**/__pycache__
8+
htmlcov

src/provider_espressif/main.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ def s3_object_stream(bucket_name: str, object_name: str):
3737
# Given a bucket name and object name, return bytes representing
3838
# the object content.
3939
def s3_filebuf_bytes(bucket_name: str, object_name: str):
40-
file_stream = io.BytesIO()
4140
object_stream = s3_object_stream(bucket_name=bucket_name,
4241
object_name=object_name)
4342
return object_stream.getvalue()
@@ -62,7 +61,7 @@ def invoke_export(bucket_name: str, object_name: str, queueUrl: str):
6261
certificate_data['thing'] = thing_name
6362
sqs_client.send_message( QueueUrl=queueUrl,
6463
MessageBody=json.dumps(certificate_data) )
65-
64+
6665
def lambda_handler(event, context):
6766
queueUrl = os.environ['QUEUE_TARGET']
6867
bucket_name = event['Records'][0]['s3']['bucket']['name']

src/provider_espressif/testable.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class LambdaSQSClass:
1414
"""
1515
def __init__(self, lambda_sqs_resource):
1616
"""
17-
Initialize an S3 Resource
17+
Initialize an SQS Resource
1818
"""
1919
self.resource = lambda_sqs_resource["resource"]
2020
self.queue_name = lambda_sqs_resource["queue_name"]

test/unit/src/test_provider_espressif.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,13 @@ class TestProviderEspressif(TestCase):
2222

2323
def setUp(self):
2424
self.test_s3_bucket_name = "unit_test_s3_bucket"
25+
self.test_s3_object_content = None
2526
os.environ["S3_BUCKET_NAME"] = self.test_s3_bucket_name
2627
s3_client = client('s3', region_name="us-east-1")
2728
s3_client.create_bucket(Bucket = self.test_s3_bucket_name )
2829
with open('./test/artifacts/manifest-espressif.csv', 'rb') as data:
2930
s3_client.put_object(Bucket=self.test_s3_bucket_name, Key="manifest.csv", Body=data)
31+
self.test_s3_object_content = s3_client.get_object(Bucket=self.test_s3_bucket_name, Key="manifest.csv")['Body']
3032
mocked_s3_resource = resource("s3")
3133
mocked_s3_resource = { "resource" : resource('s3'),
3234
"bucket_name" : self.test_s3_bucket_name }
@@ -50,12 +52,20 @@ def test_neg_s3_object_resource(self):
5052
assert str(e.value) == "An error occurred (NoSuchBucket) when calling the HeadObject operation: The specified bucket does not exist"
5153

5254
def test_pos_s3_filebuf_bytes(self):
53-
s3_filebuf_bytes("unit_test_s3_bucket", "manifest.csv")
55+
# The bytes should equal to the object in the bucket
56+
v = s3_filebuf_bytes("unit_test_s3_bucket", "manifest.csv")
57+
assert v == self.test_s3_object_content.read()
5458

5559
def test_pos_invoke_export(self):
5660
invoke_export("unit_test_s3_bucket", "manifest.csv", "provider")
57-
# The number of items in the queue should be 1
58-
61+
# The number of items in the queue should be 7 since there are
62+
# seven certificates in the test file
63+
sqs_client = client("sqs", "us-east-1")
64+
sqs_queue_url_r = sqs_client.get_queue_url(QueueName=self.test_sqs_queue_name)
65+
sqs_queue_url = sqs_queue_url_r['QueueUrl']
66+
p = sqs_client.get_queue_attributes(QueueUrl=sqs_queue_url, AttributeNames=['ApproximateNumberOfMessages'])
67+
assert p['Attributes']['ApproximateNumberOfMessages'] == '7'
68+
5969
def tearDown(self):
6070
s3_resource = resource("s3",region_name="us-east-1")
6171
s3_bucket = s3_resource.Bucket( self.test_s3_bucket_name )

0 commit comments

Comments
 (0)