Skip to content

Commit

Permalink
Merge pull request getmoto#2577 from mikegrima/fixtests
Browse files Browse the repository at this point in the history
Fixed the Lambda invocation due to lambci changes.
  • Loading branch information
mikegrima authored Nov 18, 2019
2 parents dab7f9f + 27f36a7 commit 6922606
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 7 deletions.
7 changes: 4 additions & 3 deletions moto/awslambda/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,9 @@
except ImportError:
from backports.tempfile import TemporaryDirectory


_stderr_regex = re.compile(r"START|END|REPORT RequestId: .*")
# The lambci container is returning a special escape character for the "RequestID" fields. Unicode 033:
# _stderr_regex = re.compile(r"START|END|REPORT RequestId: .*")
_stderr_regex = re.compile(r"\033\[\d+.*")
_orig_adapter_send = requests.adapters.HTTPAdapter.send
docker_3 = docker.__version__[0] >= "3"

Expand Down Expand Up @@ -444,7 +445,7 @@ def _invoke_lambda(self, code, event=None, context=None):
if exit_code != 0:
raise Exception("lambda invoke failed output: {}".format(output))

# strip out RequestId lines
# strip out RequestId lines (TODO: This will return an additional '\n' in the response)
output = os.linesep.join(
[
line
Expand Down
10 changes: 6 additions & 4 deletions tests/test_awslambda/test_lambda.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ def test_invoke_function_get_ec2_volume():
conn = boto3.client("lambda", "us-west-2")
conn.create_function(
FunctionName="testFunction",
Runtime="python2.7",
Runtime="python3.7",
Role="test-iam-role",
Handler="lambda_function.lambda_handler",
Code={"ZipFile": get_test_zip_file2()},
Expand All @@ -184,18 +184,20 @@ def test_invoke_function_get_ec2_volume():
vol.id,
vol.state,
vol.size,
json.dumps(in_data),
json.dumps(in_data).replace(
" ", ""
), # Makes the tests pass as the result is missing the whitespace
)

log_result = base64.b64decode(result["LogResult"]).decode("utf-8")

# fix for running under travis (TODO: investigate why it has an extra newline)
# The Docker lambda invocation will return an additional '\n', so need to replace it:
log_result = log_result.replace("\n\n", "\n")
log_result.should.equal(msg)

payload = result["Payload"].read().decode("utf-8")

# fix for running under travis (TODO: investigate why it has an extra newline)
# The Docker lambda invocation will return an additional '\n', so need to replace it:
payload = payload.replace("\n\n", "\n")
payload.should.equal(msg)

Expand Down

0 comments on commit 6922606

Please sign in to comment.