Merge pull request #176 from singingwolfboy/unicode_literals

Unicode literals
This commit is contained in:
Steve Pulec 2014-08-27 21:19:50 -04:00
commit ca13c141d3
196 changed files with 230 additions and 29 deletions

View file

@ -0,0 +1 @@
from __future__ import unicode_literals

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
"""
Patch courtesy of:
https://marmida.com/blog/index.php/2012/08/08/monkey-patching-assert_raises/
@ -5,14 +6,14 @@ https://marmida.com/blog/index.php/2012/08/08/monkey-patching-assert_raises/
# code for monkey-patching
import nose.tools
# let's fix nose.tools.assert_raises (which is really unittest.assertRaises)
# so that it always supports context management
# in order for these changes to be available to other modules, you'll need
# to guarantee this module is imported by your fixture before either nose or
# unittest are imported
try:
nose.tools.assert_raises(Exception)
except TypeError:
@ -20,18 +21,18 @@ except TypeError:
class AssertRaisesContext(object):
def __init__(self, expected):
self.expected = expected
def __enter__(self):
return self
def __exit__(self, exc_type, exc_val, tb):
self.exception = exc_val
nose.tools.assert_equal(exc_type, self.expected)
# if you get to this line, the last assertion must have passed
# suppress the propagation of this exception
return True
def assert_raises_context(exc_type):
return AssertRaisesContext(exc_type)
nose.tools.assert_raises = assert_raises_context

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
from nose.plugins.skip import SkipTest

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
from boto.ec2.autoscale.launchconfig import LaunchConfiguration
from boto.ec2.autoscale.group import AutoScalingGroup

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
from boto.ec2.autoscale.launchconfig import LaunchConfiguration
from boto.ec2.blockdevicemapping import BlockDeviceType, BlockDeviceMapping

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
from boto.ec2.autoscale.launchconfig import LaunchConfiguration
from boto.ec2.autoscale.group import AutoScalingGroup

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import sure # noqa
import moto.server as server

View file

@ -0,0 +1 @@
from __future__ import unicode_literals

View file

@ -0,0 +1 @@
from __future__ import unicode_literals

View file

@ -1,3 +1,5 @@
from __future__ import unicode_literals
template = {
"Description": "AWS CloudFormation Sample Template Gollum_Single_Instance_With_EBS_Volume: Gollum is a simple wiki system built on top of Git that powers GitHub Wikis. This template installs a Gollum Wiki stack on a single EC2 instance with an EBS volume for storage and demonstrates using the AWS CloudFormation bootstrap scripts to install the packages and files necessary at instance launch time. **WARNING** This template creates an Amazon EC2 instance and an EBS volume. You will be billed for the AWS resources used if you create a stack from this template.",
"Parameters": {

View file

@ -1,3 +1,5 @@
from __future__ import unicode_literals
template = {
"Description": "AWS CloudFormation Sample Template vpc_single_instance_in_subnet.template: Sample template showing how to create a VPC and add an EC2 instance with an Elastic IP address and a security group. **WARNING** This template creates an Amazon EC2 instance. You will be billed for the AWS resources used if you create a stack from this template.",
"Parameters": {

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import json
import boto

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import json
import boto

View file

@ -0,0 +1 @@
from __future__ import unicode_literals

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import json
from mock import patch

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
from boto.exception import EC2ResponseError
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import requests
from moto import mock_ec2

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import unittest
from boto.sqs.connection import SQSConnection
@ -25,4 +26,4 @@ class TestNestedDecorators(unittest.TestCase):
self.setup_sqs_queue()
conn = EC2Connection()
conn.run_instances('ami-123456')
conn.run_instances('ami-123456')

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
from mock import patch
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import sure # noqa
from moto.core.utils import convert_regex_to_flask_path

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa
import requests

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa
from freezegun import freeze_time

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa
from freezegun import freeze_time

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import sure # noqa
import moto.server as server

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa
import requests
@ -13,10 +14,10 @@ except ImportError:
@requires_boto_gte("2.9")
@mock_dynamodb2
def test_list_tables():
name = 'TestTable'
#{'schema': }
name = 'TestTable'
#{'schema': }
dynamodb_backend2.create_table(name,schema=[
{u'KeyType': u'HASH', u'AttributeName': u'forum_name'},
{u'KeyType': u'HASH', u'AttributeName': u'forum_name'},
{u'KeyType': u'RANGE', u'AttributeName': u'subject'}
])
conn = boto.dynamodb2.connect_to_region(
@ -39,7 +40,7 @@ def test_list_tables_layer_1():
'us-west-2',
aws_access_key_id="ak",
aws_secret_access_key="sk")
res = conn.list_tables(limit=1)
expected = {"TableNames": ["test_1"], "LastEvaluatedTableName": "test_1"}
res.should.equal(expected)

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa
from freezegun import freeze_time

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa
from freezegun import freeze_time

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import sure # noqa
import moto.server as server

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
# Ensure 'assert_raises' context manager support for Python 2.6
import tests.backport_assert_raises
from nose.tools import assert_raises

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
# Ensure 'assert_raises' context manager support for Python 2.6
import tests.backport_assert_raises
from nose.tools import assert_raises

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import requests
from moto import mock_ec2

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
# Ensure 'assert_raises' context manager support for Python 2.6
import tests.backport_assert_raises
from nose.tools import assert_raises

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
# Ensure 'assert_raises' context manager support for Python 2.6
import tests.backport_assert_raises
from nose.tools import assert_raises

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
# Ensure 'assert_raises' context manager support for Python 2.6
import tests.backport_assert_raises
from nose.tools import assert_raises

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
# Ensure 'assert_raises' context manager support for Python 2.6
import tests.backport_assert_raises
from nose.tools import assert_raises

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
# Ensure 'assert_raises' context manager support for Python 2.6
import tests.backport_assert_raises
from nose.tools import assert_raises

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
# Ensure 'assert_raises' context manager support for Python 2.6
import tests.backport_assert_raises
from nose.tools import assert_raises

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto.ec2
import boto.ec2.autoscale
import sure
@ -20,7 +21,7 @@ def test_add_servers_to_a_single_region():
reservations = conn.get_all_instances()
len(reservations).should.equal(2)
reservations.sort(key=lambda x: x.instances[0].image_id)
reservations[0].instances[0].image_id.should.equal('ami-1234abcd')
reservations[1].instances[0].image_id.should.equal('ami-5678efgh')
@ -39,7 +40,7 @@ def test_add_servers_to_multiple_regions():
len(us_reservations).should.equal(1)
len(ap_reservations).should.equal(1)
us_reservations[0].instances[0].image_id.should.equal('ami-1234abcd')
ap_reservations[0].instances[0].image_id.should.equal('ami-5678efgh')
@ -129,4 +130,4 @@ def test_create_autoscaling_group():
ap_group.health_check_type.should.equal("EC2")
list(ap_group.load_balancers).should.equal(["ap_test_lb"])
ap_group.placement_group.should.equal("ap_test_placement")
list(ap_group.termination_policies).should.equal(["OldestInstance", "NewestInstance"])
list(ap_group.termination_policies).should.equal(["OldestInstance", "NewestInstance"])

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
# Ensure 'assert_raises' context manager support for Python 2.6
import tests.backport_assert_raises
from nose.tools import assert_raises

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import re
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import datetime
import boto

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
# Ensure 'assert_raises' context manager support for Python 2.6
import tests.backport_assert_raises
from nose.tools import assert_raises

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import itertools
import boto

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
# Ensure 'assert_raises' context manager support for Python 2.6
import tests.backport_assert_raises
from nose.tools import assert_raises

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
# Ensure 'assert_raises' context manager support for Python 2.6
import tests.backport_assert_raises
from nose.tools import assert_raises

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
from boto.ec2.elb import HealthCheck
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import sure # noqa
import moto.server as server

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
from boto.emr.instance_group import InstanceGroup
from boto.emr.step import StreamingStep

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import sure # noqa
import moto.server as server

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import urllib2
import boto

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import urllib2
from io import BytesIO
@ -59,8 +60,8 @@ def test_multipart_upload_too_small():
bucket = conn.create_bucket("foobar")
multipart = bucket.initiate_multipart_upload("the-key")
multipart.upload_part_from_file(BytesIO('hello'), 1)
multipart.upload_part_from_file(BytesIO('world'), 2)
multipart.upload_part_from_file(BytesIO(b'hello'), 1)
multipart.upload_part_from_file(BytesIO(b'world'), 2)
# Multipart with total size under 5MB is refused
multipart.complete_upload.should.throw(S3ResponseError)
@ -71,10 +72,10 @@ def test_multipart_upload():
bucket = conn.create_bucket("foobar")
multipart = bucket.initiate_multipart_upload("the-key")
part1 = '0' * 5242880
part1 = b'0' * 5242880
multipart.upload_part_from_file(BytesIO(part1), 1)
# last part, can be less than 5 MB
part2 = '1'
part2 = b'1'
multipart.upload_part_from_file(BytesIO(part2), 2)
multipart.complete_upload()
# we should get both parts as the key contents
@ -90,7 +91,7 @@ def test_multipart_upload_with_copy_key():
key.set_contents_from_string("key_value")
multipart = bucket.initiate_multipart_upload("the-key")
part1 = '0' * 5242880
part1 = b'0' * 5242880
multipart.upload_part_from_file(BytesIO(part1), 1)
multipart.copy_part_from_key("foobar", "original-key", 2)
multipart.complete_upload()
@ -103,7 +104,7 @@ def test_multipart_upload_cancel():
bucket = conn.create_bucket("foobar")
multipart = bucket.initiate_multipart_upload("the-key")
part1 = '0' * 5242880
part1 = b'0' * 5242880
multipart.upload_part_from_file(BytesIO(part1), 1)
multipart.cancel_upload()
# TODO we really need some sort of assertion here, but we don't currently
@ -117,10 +118,10 @@ def test_multipart_etag():
bucket = conn.create_bucket('mybucket')
multipart = bucket.initiate_multipart_upload("the-key")
part1 = '0' * 5242880
part1 = b'0' * 5242880
multipart.upload_part_from_file(BytesIO(part1), 1)
# last part, can be less than 5 MB
part2 = '1'
part2 = b'1'
multipart.upload_part_from_file(BytesIO(part2), 2)
multipart.complete_upload()
# we should get both parts as the key contents

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
from sure import expect
from moto.s3.utils import bucket_name_from_url, _VersionedKeyStore

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import sure # noqa
import moto.server as server

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import sure # noqa
import moto.server as server

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import urllib2
import boto

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
from sure import expect
from moto.s3bucket_path.utils import bucket_name_from_url

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import sure # noqa
import moto.server as server

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import email
import boto
@ -54,7 +55,7 @@ def test_send_email():
send_quota = conn.get_send_quota()
sent_count = int(send_quota['GetSendQuotaResponse']['GetSendQuotaResult']['SentLast24Hours'])
sent_count.should.equal(1)
@mock_ses
def test_send_html_email():
conn = boto.connect_ses('the_key', 'the_secret')

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
from urlparse import parse_qs
import boto

View file

@ -0,0 +1 @@
from __future__ import unicode_literals

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
import sure # noqa
@ -44,9 +45,10 @@ def test_topic_attributes():
attributes["DeliveryPolicy"].should.equal("")
attributes["EffectiveDeliveryPolicy"].should.equal(DEFAULT_EFFECTIVE_DELIVERY_POLICY)
conn.set_topic_attributes(topic_arn, "Policy", {"foo": "bar"})
# boto can't handle unicode here :(
conn.set_topic_attributes(topic_arn, "Policy", {b"foo": b"bar"})
conn.set_topic_attributes(topic_arn, "DisplayName", "My display name")
conn.set_topic_attributes(topic_arn, "DeliveryPolicy", {"http": {"defaultHealthyRetryPolicy": {"numRetries": 5}}})
conn.set_topic_attributes(topic_arn, "DeliveryPolicy", {b"http": {b"defaultHealthyRetryPolicy": {b"numRetries": 5}}})
attributes = conn.get_topic_attributes(topic_arn)['GetTopicAttributesResponse']['GetTopicAttributesResult']['Attributes']
attributes["Policy"].should.equal("{'foo': 'bar'}")

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import re
import sure # noqa

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import boto
from boto.exception import SQSError
from boto.sqs.message import RawMessage

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import sure # noqa
import moto.server as server

View file

@ -1,3 +1,4 @@
from __future__ import unicode_literals
import json
import boto