Skip to content

Commit

Permalink
Fix python3 integration tests and make it easy to run thme in the future
Browse files Browse the repository at this point in the history
  • Loading branch information
Jorge Bastida committed Jun 5, 2016
1 parent 8777f91 commit 738919a
Show file tree
Hide file tree
Showing 11 changed files with 36 additions and 23 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG
@@ -1,3 +1,9 @@
0.2.1
=======
* Fix typos and grammar errors all across the the documentation.
* Fix Python 3 support.
* Add tox environment for python 3 integration tests.

0.2
====
* Add ``api_key_required`` to apigateway integration.
Expand Down
10 changes: 5 additions & 5 deletions gordon/utils.py
Expand Up @@ -67,7 +67,7 @@ def get_zip_hash(obj):
digest = hashlib.sha1()
zfile = zipfile.ZipFile(obj, 'r')
for path in sorted(zfile.namelist()):
digest.update(path)
digest.update(six.text_type(path).encode('utf-8'))
digest.update(zfile.read(path))
return digest.hexdigest()

Expand All @@ -78,8 +78,8 @@ def get_file_hash(filename):

with open(filename, 'r') as f:
digest = hashlib.sha1()
digest.update(filename)
digest.update(f.read())
digest.update(six.text_type(filename).encode('utf-8'))
digest.update(six.text_type(f.read()).encode('utf-8'))
return digest.hexdigest()


Expand Down Expand Up @@ -224,7 +224,7 @@ def get_template_s3_key(filename):
data = f.read()
return 'cf_templates/{}/{}.json'.format(
datetime.now().strftime("%Y-%m-%d"),
hashlib.sha1(data).hexdigest()[:8]
hashlib.sha1(six.text_type(data).encode('utf-8')).hexdigest()[:8]
)


Expand Down Expand Up @@ -306,7 +306,7 @@ def wait_for_cf_status(stack_id, success_if, abort_if=None, spin_every=50, every
abort_if = abort_if or DELETE_STACK_STATUS
clean_output = False
stack_status = 'N/A'
for m, i in mill(xrange(0, limit, spin_every)):
for m, i in mill(range(0, limit, spin_every)):
if not (i % every):
stack = get_cf_stack(name=stack_id)
if stack:
Expand Down
2 changes: 1 addition & 1 deletion gordon/utils_tests.py
Expand Up @@ -158,7 +158,7 @@ def assert_stack_succeed(self, stack_name):
self.assertIn(stack['StackStatus'], ('CREATE_COMPLETE',))

def assert_lambda_response(self, response, value):
self.assertEqual(json.loads(response['Payload'].read()), value)
self.assertEqual(json.loads(response['Payload'].read().decode('utf-8')), value)

def get_lambda(self, function_name):
client = boto3.client('lambda')
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Expand Up @@ -18,7 +18,7 @@

setup(
name='gordon',
version='0.2.0',
version='0.2.1',
url='http://github.com/jorgebastida/gordon',
license='BSD',
author='Jorge Bastida',
Expand Down
16 changes: 8 additions & 8 deletions tests/apigateway/tests.py
Expand Up @@ -23,7 +23,7 @@ def test_0001_project(self):
self.assertEqual(lambda_['Timeout'], 123)

aliases = self.get_lambda_aliases(function_name=lambda_['FunctionName'])
self.assertEqual(aliases.keys(), ['current'])
self.assertEqual(list(aliases.keys()), ['current'])

response = self.invoke_lambda(
function_name=lambda_['FunctionName'],
Expand All @@ -38,7 +38,7 @@ def test_0001_project(self):
self.assertEqual(lambda_['Timeout'], 123)

aliases = self.get_lambda_aliases(function_name=lambda_['FunctionName'])
self.assertEqual(aliases.keys(), ['current'])
self.assertEqual(list(aliases.keys()), ['current'])

response = self.invoke_lambda(
function_name=lambda_['FunctionName'],
Expand All @@ -52,27 +52,27 @@ def test_0001_project(self):

response = requests.get(endpoint)
self.assertEqual(response.status_code, 200)
self.assertEqual(response.content, '"hello"')
self.assertEqual(response.content.decode('utf-8'), '"hello"')

response = requests.get('{}/404'.format(endpoint))
self.assertEqual(response.status_code, 404)
self.assertEqual(response.content, '"hello"')
self.assertEqual(response.content.decode('utf-8'), '"hello"')

response = requests.get('{}/shop/2'.format(endpoint))
self.assertEqual(response.status_code, 200)
self.assertEqual(response.content, '"hello"')
self.assertEqual(response.content.decode('utf-8'), '"hello"')

response = requests.get('{}/http'.format(endpoint))
self.assertEqual(response.status_code, 200)
self.assertEqual(json.loads(response.content)['args'], {'hello': 'world'})
self.assertEqual(json.loads(response.content.decode('utf-8'))['args'], {'hello': 'world'})

response = requests.get('{}/complex'.format(endpoint))
self.assertEqual(response.status_code, 200)
self.assertEqual(response.content, '"hello"')
self.assertEqual(response.content.decode('utf-8'), '"hello"')

response = requests.post('{}/complex'.format(endpoint))
self.assertEqual(response.status_code, 200)
self.assertEqual(response.content, '"bye"')
self.assertEqual(response.content.decode('utf-8'), '"bye"')


class BuildTest(BaseBuildTest):
Expand Down
2 changes: 1 addition & 1 deletion tests/kinesisstream/tests.py
Expand Up @@ -22,7 +22,7 @@ def test_0001_project(self):
self.assertEqual(lambda_['Runtime'], 'python2.7')

aliases = self.get_lambda_aliases(function_name=lambda_['FunctionName'])
self.assertEqual(aliases.keys(), ['current'])
self.assertEqual(list(aliases.keys()), ['current'])


class BuildTest(BaseBuildTest):
Expand Down
2 changes: 1 addition & 1 deletion tests/lambdajava/tests.py
Expand Up @@ -23,7 +23,7 @@ def test_0001_project(self):
self.assertEqual(lambda_['Timeout'], 123)

aliases = self.get_lambda_aliases(function_name=lambda_['FunctionName'])
self.assertEqual(aliases.keys(), ['current'])
self.assertEqual(list(aliases.keys()), ['current'])

response = self.invoke_lambda(
function_name=lambda_['FunctionName'],
Expand Down
2 changes: 1 addition & 1 deletion tests/lambdajs/tests.py
Expand Up @@ -19,7 +19,7 @@ def test_0001_project(self):
self.assertEqual(lambda_['Timeout'], 123)

aliases = self.get_lambda_aliases(function_name=lambda_['FunctionName'])
self.assertEqual(aliases.keys(), ['current'])
self.assertEqual(list(aliases.keys()), ['current'])

response = self.invoke_lambda(
function_name=lambda_['FunctionName'],
Expand Down
2 changes: 1 addition & 1 deletion tests/lambdapython/tests.py
Expand Up @@ -17,7 +17,7 @@ def test_0001_project(self):
self.assertEqual(lambda_['Timeout'], 123)

aliases = self.get_lambda_aliases(function_name=lambda_['FunctionName'])
self.assertEqual(aliases.keys(), ['current'])
self.assertEqual(list(aliases.keys()), ['current'])

response = self.invoke_lambda(
function_name=lambda_['FunctionName'],
Expand Down
4 changes: 2 additions & 2 deletions tests/projectupdate/tests.py
Expand Up @@ -17,7 +17,7 @@ def test_0001_project(self):
self.assertEqual(lambda_['Timeout'], 123)

aliases = self.get_lambda_aliases(function_name=lambda_['FunctionName'])
self.assertEqual(aliases.keys(), ['current'])
self.assertEqual(list(aliases.keys()), ['current'])

response = self.invoke_lambda(
function_name=lambda_['FunctionName'],
Expand All @@ -37,7 +37,7 @@ def test_0002_project(self):
self.assertEqual(lambda_['Timeout'], 199)

aliases = self.get_lambda_aliases(function_name=lambda_['FunctionName'])
self.assertEqual(aliases.keys(), ['current'])
self.assertEqual(list(aliases.keys()), ['current'])

response = self.invoke_lambda(
function_name=lambda_['FunctionName'],
Expand Down
11 changes: 9 additions & 2 deletions tox.ini
Expand Up @@ -6,11 +6,18 @@ passenv=AWS_ACCESS_KEY_ID AWS_DEFAULT_REGION AWS_SECRET_ACCESS_KEY AWS_SECURITY_
deps = -rtest_requirements.txt
commands = nosetests --cover-package=gordon --with-coverage -a '!integration'

[testenv:integration]
[testenv:integration2]
basepython = python2.7
deps = -rtest_requirements.txt
commands=
nosetests --cover-package=gordon --with-coverage -a 'integration'
envdir ~/.awsgordon nosetests -x --cover-package=gordon --with-coverage -a 'integration'

[testenv:integration3]
basepython = python3.5
deps = -rtest_requirements.txt
commands=
envdir ~/.awsgordon nosetests -x --cover-package=gordon --with-coverage -a 'integration'


[flake8]
max-line-length = 120
Expand Down

0 comments on commit 738919a

Please sign in to comment.