Updating dynamodb2 tests for newer boto.
This commit is contained in:
		
							parent
							
								
									415291d11a
								
							
						
					
					
						commit
						12d61ede41
					
				| @ -4,13 +4,10 @@ python: | ||||
|   - 2.7 | ||||
| env: | ||||
|     matrix: | ||||
|       - BOTO_VERSION==2.31.1 | ||||
|       - BOTO_VERSION=2.25.0 | ||||
|       - BOTO_VERSION=2.19.0 | ||||
|       - BOTO_VERSION=2.12.0 | ||||
|       - BOTO_VERSION=2.11.0 | ||||
|       - BOTO_VERSION=2.10.0 | ||||
|       - BOTO_VERSION=2.9.9 | ||||
|       - BOTO_VERSION=2.8 | ||||
|       - BOTO_VERSION=2.7 | ||||
| install: | ||||
|   - pip install boto==$BOTO_VERSION | ||||
|  | ||||
| @ -9,11 +9,10 @@ try: | ||||
|     from boto.dynamodb2.fields import RangeKey | ||||
|     from boto.dynamodb2.table import Table | ||||
|     from boto.dynamodb2.table import Item | ||||
|     from boto.dynamodb.exceptions import DynamoDBKeyNotFoundError | ||||
|     from boto.dynamodb2.exceptions import ValidationException | ||||
|     from boto.dynamodb2.exceptions import ConditionalCheckFailedException | ||||
| except ImportError: | ||||
|     print "This boto version is not supported" | ||||
|     pass | ||||
| 
 | ||||
| 
 | ||||
| def create_table(): | ||||
|     table = Table.create('messages', schema=[ | ||||
| @ -25,10 +24,10 @@ def create_table(): | ||||
|     }) | ||||
|     return table | ||||
| 
 | ||||
| 
 | ||||
| def iterate_results(res): | ||||
|     for i in res: | ||||
|         print i | ||||
| 
 | ||||
|         pass | ||||
| 
 | ||||
| 
 | ||||
| @requires_boto_gte("2.9") | ||||
| @ -108,7 +107,7 @@ def test_item_add_and_describe_and_update(): | ||||
|     }) | ||||
|     ok.should.equal(True) | ||||
| 
 | ||||
|     table.get_item(forum_name="LOLCat Forum",subject='Check this out!').should_not.be.none | ||||
|     table.get_item(forum_name="LOLCat Forum", subject='Check this out!').should_not.be.none | ||||
| 
 | ||||
|     returned_item = table.get_item( | ||||
|         forum_name='LOLCat Forum', | ||||
| @ -149,7 +148,7 @@ def test_item_put_without_table(): | ||||
|         'SentBy': 'User A', | ||||
|         'ReceivedTime': '12/9/2011 11:36:03 PM', | ||||
|     } | ||||
|     item =Item(table,item_data)    | ||||
|     item = Item(table, item_data) | ||||
|     item.save.when.called_with().should.throw(JSONResponseError) | ||||
| 
 | ||||
| 
 | ||||
| @ -185,7 +184,7 @@ def test_get_item_without_range_key(): | ||||
| 
 | ||||
|     hash_key = 3241526475 | ||||
|     range_key = 1234567890987 | ||||
|     table.put_item( data = {'test_hash':hash_key, 'test_range':range_key}) | ||||
|     table.put_item(data={'test_hash': hash_key, 'test_range': range_key}) | ||||
|     table.get_item.when.called_with(test_hash=hash_key).should.throw(ValidationException) | ||||
| 
 | ||||
| 
 | ||||
| @ -199,7 +198,7 @@ def test_delete_item(): | ||||
|         'SentBy': 'User A', | ||||
|         'ReceivedTime': '12/9/2011 11:36:03 PM', | ||||
|     } | ||||
|     item =Item(table,item_data) | ||||
|     item = Item(table, item_data) | ||||
|     item['subject'] = 'Check this out!' | ||||
|     item.save() | ||||
|     table.count().should.equal(1) | ||||
| @ -208,13 +207,12 @@ def test_delete_item(): | ||||
|     response.should.equal(True) | ||||
| 
 | ||||
|     table.count().should.equal(0) | ||||
|     item.delete.when.called_with().should.throw(ConditionalCheckFailedException) | ||||
|     item.delete().should.equal(False) | ||||
| 
 | ||||
| 
 | ||||
| @requires_boto_gte("2.9") | ||||
| @mock_dynamodb2 | ||||
| def test_delete_item_with_undeclared_table(): | ||||
|     conn = boto.connect_dynamodb() | ||||
|     table = Table("undeclared-table") | ||||
|     item_data = { | ||||
|         'forum_name': 'LOLCat Forum', | ||||
| @ -222,7 +220,7 @@ def test_delete_item_with_undeclared_table(): | ||||
|         'SentBy': 'User A', | ||||
|         'ReceivedTime': '12/9/2011 11:36:03 PM', | ||||
|     } | ||||
|     item =Item(table,item_data) | ||||
|     item = Item(table, item_data) | ||||
|     item.delete.when.called_with().should.throw(JSONResponseError) | ||||
| 
 | ||||
| 
 | ||||
| @ -239,7 +237,7 @@ def test_query(): | ||||
|         'ReceivedTime': '12/9/2011 11:36:03 PM', | ||||
|         'subject': 'Check this out!' | ||||
|     } | ||||
|     item =Item(table,item_data)      | ||||
|     item = Item(table, item_data) | ||||
|     item.save(overwrite=True) | ||||
| 
 | ||||
|     item['forum_name'] = 'the-key' | ||||
| @ -256,19 +254,19 @@ def test_query(): | ||||
| 
 | ||||
|     table.count().should.equal(4) | ||||
| 
 | ||||
|     results = table.query(forum_name__eq='the-key', subject__gt='1',consistent=True) | ||||
|     results = table.query(forum_name__eq='the-key', subject__gt='1', consistent=True) | ||||
|     expected = ["123", "456", "789"] | ||||
|     for index, item in enumerate(results): | ||||
|         item["subject"].should.equal(expected[index]) | ||||
| 
 | ||||
|     results = table.query(forum_name__eq="the-key", subject__gt='1', reverse=True) | ||||
|     for index, item in enumerate(results): | ||||
|         item["subject"].should.equal(expected[len(expected)-1-index]) | ||||
|         item["subject"].should.equal(expected[len(expected) - 1 - index]) | ||||
| 
 | ||||
|     results = table.query(forum_name__eq='the-key', subject__gt='1',consistent=True) | ||||
|     results = table.query(forum_name__eq='the-key', subject__gt='1', consistent=True) | ||||
|     sum(1 for _ in results).should.equal(3) | ||||
| 
 | ||||
|     results = table.query(forum_name__eq='the-key', subject__gt='234',consistent=True) | ||||
|     results = table.query(forum_name__eq='the-key', subject__gt='234', consistent=True) | ||||
|     sum(1 for _ in results).should.equal(2) | ||||
| 
 | ||||
|     results = table.query(forum_name__eq='the-key', subject__gt='9999') | ||||
| @ -308,7 +306,7 @@ def test_scan(): | ||||
|     item_data['forum_name'] = 'the-key' | ||||
|     item_data['subject'] = '456' | ||||
| 
 | ||||
|     item = Item(table,item_data)      | ||||
|     item = Item(table, item_data) | ||||
|     item.save() | ||||
| 
 | ||||
|     item['forum_name'] = 'the-key' | ||||
| @ -326,7 +324,7 @@ def test_scan(): | ||||
|     item_data['forum_name'] = 'the-key' | ||||
|     item_data['subject'] = '789' | ||||
| 
 | ||||
|     item = Item(table,item_data)      | ||||
|     item = Item(table, item_data) | ||||
|     item.save() | ||||
| 
 | ||||
|     results = table.scan() | ||||
| @ -411,10 +409,10 @@ def test_batch_read(): | ||||
|     item_data['forum_name'] = 'the-key' | ||||
|     item_data['subject'] = '456' | ||||
| 
 | ||||
|     item = Item(table,item_data)      | ||||
|     item = Item(table, item_data) | ||||
|     item.save() | ||||
| 
 | ||||
|     item = Item(table,item_data)  | ||||
|     item = Item(table, item_data) | ||||
|     item_data['forum_name'] = 'the-key' | ||||
|     item_data['subject'] = '123' | ||||
|     item.save() | ||||
| @ -426,21 +424,25 @@ def test_batch_read(): | ||||
|         'Ids': set([1, 2, 3]), | ||||
|         'PK': 7, | ||||
|     } | ||||
|     item = Item(table,item_data)  | ||||
|     item = Item(table, item_data) | ||||
|     item_data['forum_name'] = 'another-key' | ||||
|     item_data['subject'] = '789' | ||||
|     item.save() | ||||
|     results = table.batch_get(keys=[ | ||||
|     results = table.batch_get( | ||||
|         keys=[ | ||||
|             {'forum_name': 'the-key', 'subject': '123'}, | ||||
|                 {'forum_name': 'another-key', 'subject': '789'}]) | ||||
|             {'forum_name': 'another-key', 'subject': '789'}, | ||||
|         ] | ||||
|     ) | ||||
| 
 | ||||
|     # Iterate through so that batch_item gets called | ||||
|     count = len([x for x in results]) | ||||
|     count.should.equal(2) | ||||
| 
 | ||||
| 
 | ||||
| @requires_boto_gte("2.9") | ||||
| @mock_dynamodb2 | ||||
| def test_get_key_fields(): | ||||
|     table = create_table() | ||||
|     kf = table.get_key_fields() | ||||
|     kf.should.equal(['forum_name','subject']) | ||||
|     kf.should.equal(['forum_name', 'subject']) | ||||
|  | ||||
| @ -6,11 +6,11 @@ from moto import mock_dynamodb2 | ||||
| from tests.helpers import requires_boto_gte | ||||
| try: | ||||
|     from boto.dynamodb2.fields import HashKey | ||||
|     from boto.dynamodb2.fields import RangeKey | ||||
|     from boto.dynamodb2.table import Table | ||||
|     from boto.dynamodb2.table import Item | ||||
| except ImportError: | ||||
|     print "This boto version is not supported" | ||||
|     pass | ||||
| 
 | ||||
| 
 | ||||
| def create_table(): | ||||
|     table = Table.create('messages', schema=[ | ||||
| @ -22,12 +22,11 @@ def create_table(): | ||||
|     return table | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @requires_boto_gte("2.9") | ||||
| @mock_dynamodb2 | ||||
| @freeze_time("2012-01-14") | ||||
| def test_create_table(): | ||||
|     table = create_table() | ||||
|     create_table() | ||||
|     expected = { | ||||
|         'Table': { | ||||
|             'AttributeDefinitions': [ | ||||
| @ -48,7 +47,8 @@ def test_create_table(): | ||||
|     conn = boto.dynamodb2.connect_to_region( | ||||
|         'us-west-2', | ||||
|         aws_access_key_id="ak", | ||||
|         aws_secret_access_key="sk") | ||||
|         aws_secret_access_key="sk" | ||||
|     ) | ||||
| 
 | ||||
|     conn.describe_table('messages').should.equal(expected) | ||||
| 
 | ||||
| @ -78,7 +78,6 @@ def test_update_table_throughput(): | ||||
|         'write': 6, | ||||
|     }) | ||||
| 
 | ||||
| 
 | ||||
|     table.throughput["read"].should.equal(5) | ||||
|     table.throughput["write"].should.equal(6) | ||||
| 
 | ||||
| @ -88,13 +87,13 @@ def test_update_table_throughput(): | ||||
| def test_item_add_and_describe_and_update(): | ||||
|     table = create_table() | ||||
| 
 | ||||
|     data={ | ||||
|     data = { | ||||
|         'forum_name': 'LOLCat Forum', | ||||
|         'Body': 'http://url_to_lolcat.gif', | ||||
|         'SentBy': 'User A', | ||||
|     } | ||||
| 
 | ||||
|     table.put_item(data = data) | ||||
|     table.put_item(data=data) | ||||
|     returned_item = table.get_item(forum_name="LOLCat Forum") | ||||
|     returned_item.should_not.be.none | ||||
| 
 | ||||
| @ -162,7 +161,7 @@ def test_delete_item(): | ||||
|         'SentBy': 'User A', | ||||
|         'ReceivedTime': '12/9/2011 11:36:03 PM', | ||||
|     } | ||||
|     item =Item(table,item_data) | ||||
|     item = Item(table, item_data) | ||||
|     item.save() | ||||
|     table.count().should.equal(1) | ||||
| 
 | ||||
| @ -172,7 +171,7 @@ def test_delete_item(): | ||||
| 
 | ||||
|     table.count().should.equal(0) | ||||
| 
 | ||||
|     item.delete.when.called_with().should.throw(JSONResponseError) | ||||
|     item.delete().should.equal(False) | ||||
| 
 | ||||
| 
 | ||||
| @requires_boto_gte("2.9") | ||||
| @ -197,8 +196,8 @@ def test_query(): | ||||
|         'SentBy': 'User A', | ||||
|         'ReceivedTime': '12/9/2011 11:36:03 PM', | ||||
|     } | ||||
|     item =Item(table,item_data)      | ||||
|     item.save(overwrite = True) | ||||
|     item = Item(table, item_data) | ||||
|     item.save(overwrite=True) | ||||
|     table.count().should.equal(1) | ||||
|     table = Table("messages") | ||||
| 
 | ||||
| @ -213,7 +212,7 @@ def test_query_with_undeclared_table(): | ||||
| 
 | ||||
|     conn.query.when.called_with( | ||||
|         table_name='undeclared-table', | ||||
|          key_conditions= {"forum_name": {"ComparisonOperator": "EQ", "AttributeValueList": [{"S": "the-key"}]}} | ||||
|         key_conditions={"forum_name": {"ComparisonOperator": "EQ", "AttributeValueList": [{"S": "the-key"}]}} | ||||
|     ).should.throw(JSONResponseError) | ||||
| 
 | ||||
| 
 | ||||
| @ -229,7 +228,7 @@ def test_scan(): | ||||
|     } | ||||
|     item_data['forum_name'] = 'the-key' | ||||
| 
 | ||||
|     item = Item(table,item_data)      | ||||
|     item = Item(table, item_data) | ||||
|     item.save() | ||||
| 
 | ||||
|     item['forum_name'] = 'the-key2' | ||||
| @ -243,7 +242,7 @@ def test_scan(): | ||||
|         'PK': 7, | ||||
|     } | ||||
|     item_data['forum_name'] = 'the-key3' | ||||
|     item = Item(table,item_data)      | ||||
|     item = Item(table, item_data) | ||||
|     item.save() | ||||
| 
 | ||||
|     results = table.scan() | ||||
| @ -328,12 +327,12 @@ def test_batch_read(): | ||||
|         'ReceivedTime': '12/9/2011 11:36:03 PM', | ||||
|     } | ||||
|     item_data['forum_name'] = 'the-key1' | ||||
|     item = Item(table,item_data)      | ||||
|     item = Item(table, item_data) | ||||
|     item.save() | ||||
| 
 | ||||
|     item = Item(table,item_data) | ||||
|     item = Item(table, item_data) | ||||
|     item_data['forum_name'] = 'the-key2' | ||||
|     item.save(overwrite = True) | ||||
|     item.save(overwrite=True) | ||||
| 
 | ||||
|     item_data = { | ||||
|         'Body': 'http://url_to_lolcat.gif', | ||||
| @ -342,13 +341,16 @@ def test_batch_read(): | ||||
|         'Ids': set([1, 2, 3]), | ||||
|         'PK': 7, | ||||
|     } | ||||
|     item = Item(table,item_data)  | ||||
|     item = Item(table, item_data) | ||||
|     item_data['forum_name'] = 'another-key' | ||||
|     item.save(overwrite = True) | ||||
|     item.save(overwrite=True) | ||||
| 
 | ||||
|     results = table.batch_get(keys=[ | ||||
|     results = table.batch_get( | ||||
|         keys=[ | ||||
|             {'forum_name': 'the-key1'}, | ||||
|                 {'forum_name': 'another-key'}]) | ||||
|             {'forum_name': 'another-key'}, | ||||
|         ] | ||||
|     ) | ||||
| 
 | ||||
|     # Iterate through so that batch_item gets called | ||||
|     count = len([x for x in results]) | ||||
| @ -373,11 +375,10 @@ def test_get_special_item(): | ||||
|         'write': 10, | ||||
|     }) | ||||
| 
 | ||||
|     data={ | ||||
|     data = { | ||||
|         'date-joined': 127549192, | ||||
|         'SentBy': 'User A', | ||||
|     } | ||||
|     table.put_item(data = data) | ||||
|     table.put_item(data=data) | ||||
|     returned_item = table.get_item(**{'date-joined': 127549192}) | ||||
|     dict(returned_item).should.equal(data) | ||||
|      | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user