| 
									
										
										
										
											2022-06-29 20:12:56 +00:00
										 |  |  | import boto3 | 
					
						
							|  |  |  | from moto import mock_cloudfront | 
					
						
							|  |  |  | from . import cloudfront_test_scaffolding as scaffold | 
					
						
							|  |  |  | import sure  # noqa # pylint: disable=unused-import | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_cloudfront | 
					
						
							|  |  |  | def test_create_invalidation(): | 
					
						
							|  |  |  |     client = boto3.client("cloudfront", region_name="us-west-1") | 
					
						
							|  |  |  |     config = scaffold.example_distribution_config("ref") | 
					
						
							|  |  |  |     resp = client.create_distribution(DistributionConfig=config) | 
					
						
							|  |  |  |     dist_id = resp["Distribution"]["Id"] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     resp = client.create_invalidation( | 
					
						
							|  |  |  |         DistributionId=dist_id, | 
					
						
							|  |  |  |         InvalidationBatch={ | 
					
						
							|  |  |  |             "Paths": {"Quantity": 2, "Items": ["/path1", "/path2"]}, | 
					
						
							|  |  |  |             "CallerReference": "ref2", | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     resp.should.have.key("Location") | 
					
						
							|  |  |  |     resp.should.have.key("Invalidation") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     resp["Invalidation"].should.have.key("Id") | 
					
						
							|  |  |  |     resp["Invalidation"].should.have.key("Status").equals("COMPLETED") | 
					
						
							|  |  |  |     resp["Invalidation"].should.have.key("CreateTime") | 
					
						
							|  |  |  |     resp["Invalidation"].should.have.key("InvalidationBatch").equals( | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             "Paths": {"Quantity": 2, "Items": ["/path1", "/path2"]}, | 
					
						
							|  |  |  |             "CallerReference": "ref2", | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     ) | 
					
						
							| 
									
										
										
										
											2022-10-18 12:07:10 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_cloudfront | 
					
						
							|  |  |  | def test_list_invalidations(): | 
					
						
							|  |  |  |     client = boto3.client("cloudfront", region_name="us-west-1") | 
					
						
							|  |  |  |     config = scaffold.example_distribution_config("ref") | 
					
						
							|  |  |  |     resp = client.create_distribution(DistributionConfig=config) | 
					
						
							|  |  |  |     dist_id = resp["Distribution"]["Id"] | 
					
						
							|  |  |  |     resp = client.create_invalidation( | 
					
						
							|  |  |  |         DistributionId=dist_id, | 
					
						
							|  |  |  |         InvalidationBatch={ | 
					
						
							|  |  |  |             "Paths": {"Quantity": 2, "Items": ["/path1", "/path2"]}, | 
					
						
							|  |  |  |             "CallerReference": "ref2", | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  |     invalidation_id = resp["Invalidation"]["Id"] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     resp = client.list_invalidations( | 
					
						
							|  |  |  |         DistributionId=dist_id, | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     resp.should.have.key("InvalidationList") | 
					
						
							|  |  |  |     resp["InvalidationList"].shouldnt.have.key("NextMarker") | 
					
						
							|  |  |  |     resp["InvalidationList"].should.have.key("MaxItems").equal(100) | 
					
						
							|  |  |  |     resp["InvalidationList"].should.have.key("IsTruncated").equal(False) | 
					
						
							|  |  |  |     resp["InvalidationList"].should.have.key("Quantity").equal(1) | 
					
						
							|  |  |  |     resp["InvalidationList"].should.have.key("Items").length_of(1) | 
					
						
							|  |  |  |     resp["InvalidationList"]["Items"][0].should.have.key("Id").equal(invalidation_id) | 
					
						
							|  |  |  |     resp["InvalidationList"]["Items"][0].should.have.key("CreateTime") | 
					
						
							|  |  |  |     resp["InvalidationList"]["Items"][0].should.have.key("Status").equal("COMPLETED") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_cloudfront | 
					
						
							|  |  |  | def test_list_invalidations__no_entries(): | 
					
						
							|  |  |  |     client = boto3.client("cloudfront", region_name="us-west-1") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     resp = client.list_invalidations( | 
					
						
							|  |  |  |         DistributionId="SPAM", | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     resp.should.have.key("InvalidationList") | 
					
						
							|  |  |  |     resp["InvalidationList"].shouldnt.have.key("NextMarker") | 
					
						
							|  |  |  |     resp["InvalidationList"].should.have.key("MaxItems").equal(100) | 
					
						
							|  |  |  |     resp["InvalidationList"].should.have.key("IsTruncated").equal(False) | 
					
						
							|  |  |  |     resp["InvalidationList"].should.have.key("Quantity").equal(0) | 
					
						
							| 
									
										
										
										
											2022-11-22 17:23:21 +00:00
										 |  |  |     resp["InvalidationList"].shouldnt.have.key("Items") |