From 7638c0267914bd1207f0d1d8716198a367be836a Mon Sep 17 00:00:00 2001 From: Graham Esau Date: Fri, 11 Aug 2023 10:01:49 +0100 Subject: [PATCH] Don't rely on Zip output being identical across platforms --- test.cmd | 6 ++++-- test.sh | 6 ++++-- test/test.py | 10 +++++----- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/test.cmd b/test.cmd index 8c6ff9f..ca80f2d 100644 --- a/test.cmd +++ b/test.cmd @@ -5,16 +5,18 @@ rmdir /S /Q temp-persisted-data docker compose run --rm test setup || goto :exit :: Sanity check... docker compose run --rm test verify || goto :exit -docker compose down +docker compose stop :: Ensure changes were persisted... docker compose run --rm test verify || goto :exit -docker compose down +docker compose stop rmdir /S /Q temp-persisted-data :: Ensure changes from previous runs can still be loaded (test backward-compatibility)... xcopy test-persisted-data temp-persisted-data /E /I docker compose run --rm test verify || goto :exit +docker compose stop + docker compose down :exit diff --git a/test.sh b/test.sh index e1c170a..3a28a48 100644 --- a/test.sh +++ b/test.sh @@ -8,16 +8,18 @@ sudo rm -rf temp-persisted-data docker compose run --rm test setup echo 'Sanity check...' docker compose run --rm test verify -docker compose down +docker compose stop echo 'Ensure changes were persisted...' docker compose run --rm test verify -docker compose down +docker compose stop sudo rm -rf temp-persisted-data echo 'Ensure changes from previous runs can still be loaded (test backward-compatibility)...' cp -r test-persisted-data temp-persisted-data docker compose run --rm test verify +docker compose stop + docker compose down echo 'Tests passed!' diff --git a/test/test.py b/test/test.py index 05e3eae..705007a 100644 --- a/test/test.py +++ b/test/test.py @@ -20,10 +20,6 @@ def assert_equal(a, b): lambda_client = boto3.client("lambda", endpoint_url=endpoint_url) acm = boto3.client("acm", endpoint_url=endpoint_url) -zipbuf = io.BytesIO() -with zipfile.ZipFile(zipbuf, "w") as zip: - zip.write("lambda/bootstrap", "bootstrap") - cert = open("cert.pem", "r").read() cert_key = open("key.pem", "r").read() @@ -46,6 +42,9 @@ def assert_equal(a, b): role = iam.create_role(RoleName="test-role", AssumeRolePolicyDocument="{}") + zipbuf = io.BytesIO() + with zipfile.ZipFile(zipbuf, "w") as zip: + zip.write("lambda/bootstrap", "bootstrap") lambda_client.create_function( FunctionName="test-lambda", Role=role.arn, @@ -76,7 +75,8 @@ def assert_equal(a, b): assert_equal(lambda_response["Configuration"].get("Role", None), role.arn) lambda_code_location = lambda_response["Code"].get("Location", "") with urllib.request.urlopen(lambda_code_location) as f: - assert_equal(f.read(), zipbuf.getvalue()) + with zipfile.ZipFile(io.BytesIO(f.read())) as zip: + assert_equal(zip.read("bootstrap"), open("lambda/bootstrap", "rb").read()) lambda_client.get_waiter("function_active_v2").wait(FunctionName="test-lambda") lambda_response = lambda_client.invoke( FunctionName="test-lambda", Payload="hello world"