116 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			116 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|  | import boto3 | ||
|  | import pytest | ||
|  | 
 | ||
|  | from botocore.exceptions import ClientError | ||
|  | from moto import mock_apigatewayv2 | ||
|  | 
 | ||
|  | 
 | ||
|  | @mock_apigatewayv2 | ||
|  | def test_create_model(): | ||
|  |     client = boto3.client("apigatewayv2", region_name="eu-west-1") | ||
|  |     api_id = client.create_api(Name="test-api", ProtocolType="HTTP")["ApiId"] | ||
|  | 
 | ||
|  |     resp = client.create_model( | ||
|  |         ApiId=api_id, ContentType="app/xml", Description="desc", Name="nm", Schema="cs" | ||
|  |     ) | ||
|  | 
 | ||
|  |     resp.should.have.key("ContentType").equals("app/xml") | ||
|  |     resp.should.have.key("Description").equals("desc") | ||
|  |     resp.should.have.key("ModelId") | ||
|  |     resp.should.have.key("Name").equals("nm") | ||
|  |     resp.should.have.key("Schema").equals("cs") | ||
|  | 
 | ||
|  | 
 | ||
|  | @mock_apigatewayv2 | ||
|  | def test_get_model(): | ||
|  |     client = boto3.client("apigatewayv2", region_name="eu-west-1") | ||
|  |     api_id = client.create_api(Name="test-api", ProtocolType="HTTP")["ApiId"] | ||
|  | 
 | ||
|  |     model_id = client.create_model( | ||
|  |         ApiId=api_id, ContentType="app/xml", Description="desc", Name="nm", Schema="cs" | ||
|  |     )["ModelId"] | ||
|  | 
 | ||
|  |     resp = client.get_model(ApiId=api_id, ModelId=model_id) | ||
|  | 
 | ||
|  |     resp.should.have.key("ContentType").equals("app/xml") | ||
|  |     resp.should.have.key("Description").equals("desc") | ||
|  |     resp.should.have.key("ModelId") | ||
|  |     resp.should.have.key("Name").equals("nm") | ||
|  |     resp.should.have.key("Schema").equals("cs") | ||
|  | 
 | ||
|  | 
 | ||
|  | @mock_apigatewayv2 | ||
|  | def test_delete_model(): | ||
|  |     client = boto3.client("apigatewayv2", region_name="eu-west-1") | ||
|  |     api_id = client.create_api(Name="test-api", ProtocolType="HTTP")["ApiId"] | ||
|  | 
 | ||
|  |     model_id = client.create_model( | ||
|  |         ApiId=api_id, ContentType="app/xml", Description="desc", Name="nm", Schema="cs" | ||
|  |     )["ModelId"] | ||
|  | 
 | ||
|  |     client.delete_model(ApiId=api_id, ModelId=model_id) | ||
|  | 
 | ||
|  |     with pytest.raises(ClientError) as exc: | ||
|  |         client.get_model(ApiId=api_id, ModelId=model_id) | ||
|  | 
 | ||
|  |     err = exc.value.response["Error"] | ||
|  |     err["Code"].should.equal("NotFoundException") | ||
|  | 
 | ||
|  | 
 | ||
|  | @mock_apigatewayv2 | ||
|  | def test_get_model_unknown(): | ||
|  |     client = boto3.client("apigatewayv2", region_name="eu-west-1") | ||
|  |     api_id = client.create_api(Name="test-api", ProtocolType="HTTP")["ApiId"] | ||
|  | 
 | ||
|  |     with pytest.raises(ClientError) as exc: | ||
|  |         client.get_model(ApiId=api_id, ModelId="unknown") | ||
|  | 
 | ||
|  |     err = exc.value.response["Error"] | ||
|  |     err["Code"].should.equal("NotFoundException") | ||
|  | 
 | ||
|  | 
 | ||
|  | @mock_apigatewayv2 | ||
|  | def test_update_model_single_attr(): | ||
|  |     client = boto3.client("apigatewayv2", region_name="eu-west-1") | ||
|  |     api_id = client.create_api(Name="test-api", ProtocolType="HTTP")["ApiId"] | ||
|  | 
 | ||
|  |     model_id = client.create_model( | ||
|  |         ApiId=api_id, ContentType="app/xml", Description="desc", Name="nm", Schema="cs" | ||
|  |     )["ModelId"] | ||
|  | 
 | ||
|  |     model_id = client.get_model(ApiId=api_id, ModelId=model_id)["ModelId"] | ||
|  | 
 | ||
|  |     resp = client.update_model(ApiId=api_id, ModelId=model_id, Schema="cs2") | ||
|  | 
 | ||
|  |     resp.should.have.key("ContentType").equals("app/xml") | ||
|  |     resp.should.have.key("Description").equals("desc") | ||
|  |     resp.should.have.key("ModelId") | ||
|  |     resp.should.have.key("Name").equals("nm") | ||
|  |     resp.should.have.key("Schema").equals("cs2") | ||
|  | 
 | ||
|  | 
 | ||
|  | @mock_apigatewayv2 | ||
|  | def test_update_model_all_attrs(): | ||
|  |     client = boto3.client("apigatewayv2", region_name="eu-west-1") | ||
|  |     api_id = client.create_api(Name="test-api", ProtocolType="HTTP")["ApiId"] | ||
|  | 
 | ||
|  |     model_id = client.create_model( | ||
|  |         ApiId=api_id, ContentType="app/xml", Description="desc", Name="nm", Schema="cs" | ||
|  |     )["ModelId"] | ||
|  | 
 | ||
|  |     model_id = client.get_model(ApiId=api_id, ModelId=model_id)["ModelId"] | ||
|  | 
 | ||
|  |     resp = client.update_model( | ||
|  |         ApiId=api_id, | ||
|  |         ModelId=model_id, | ||
|  |         ContentType="app/html", | ||
|  |         Description="html2.x", | ||
|  |         Name="html-schema", | ||
|  |         Schema="cs2", | ||
|  |     ) | ||
|  | 
 | ||
|  |     resp.should.have.key("ContentType").equals("app/html") | ||
|  |     resp.should.have.key("Description").equals("html2.x") | ||
|  |     resp.should.have.key("Name").equals("html-schema") | ||
|  |     resp.should.have.key("Schema").equals("cs2") |