attmpt 2 to resolve StringIO not being within Python 3 anymore

This commit is contained in:
rocky4570fft 2016-10-07 00:14:47 +10:00
commit 7c3005e582
2 changed files with 15 additions and 10 deletions

View file

@ -1,14 +1,19 @@
from __future__ import unicode_literals
import StringIO
import base64
import datetime
import hashlib
import io
import json
import StringIO
import sys
import zipfile
try:
from StringIO import StringIO
except:
from io import StringIO
import boto.awslambda
from moto.core import BaseBackend
from moto.s3.models import s3_backend
@ -104,18 +109,18 @@ class LambdaFunction(object):
def _invoke_lambda(self, code, event={}, context={}):
# TO DO: context not yet implemented
try:
codeOut = StringIO.StringIO()
codeErr = StringIO.StringIO()
mycode = "\n".join([self.code, 'print lambda_handler(%s, %s)' % (event, context)])
codeOut = StringIO()
codeErr = StringIO()
mycode = "\n".join([self.code, 'print lambda_handler(%s, %s)' % (event, context)])
#print "moto_lambda_debug: ", mycode
sys.stdout = codeOut
sys.stderr = codeErr
exec(mycode, {'event': event, 'context': context})
exec mycode
exec_err = codeErr.getvalue()
exec_out = codeOut.getvalue()
result = "\n".join([exec_out, exec_err])
except Exception as ex:
result = 'Exception %s, %s' % (ex, ex.message)
result = '%s\n\n\nException %s, %s' % (mycode, ex, ex.message)
finally:
codeErr.close()
codeOut.close()