Fix scaffold to support rest-json style API (#1291)
* append appropriate urls when scaffolding * make dispatch for rest-api * fix dispatch for rest-json * fix moto/core/response to obtain path and body parameters * small fixes * remove unused import * fix get_int_param * fix scaffold * fix formatting of scaffold * fix misc * escape service to handle service w/ hyphen like iot-data * escape service w/ hyphen * fix regexp to extract region from url * escape service * fix syntax * skip loading body to json object when request body is None
This commit is contained in:
parent
20ef9db885
commit
56793a3b2a
9 changed files with 159 additions and 89 deletions
|
|
@ -1,7 +1,7 @@
|
|||
from __future__ import unicode_literals
|
||||
from .models import {{ service }}_backends
|
||||
from .models import {{ escaped_service }}_backends
|
||||
from ..core.models import base_decorator
|
||||
|
||||
{{ service }}_backend = {{ service }}_backends['us-east-1']
|
||||
mock_{{ service }} = base_decorator({{ service }}_backends)
|
||||
{{ escaped_service }}_backend = {{ escaped_service }}_backends['us-east-1']
|
||||
mock_{{ escaped_service }} = base_decorator({{ escaped_service }}_backends)
|
||||
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@ class {{ service_class }}Backend(BaseBackend):
|
|||
|
||||
|
||||
available_regions = boto3.session.Session().get_available_regions("{{ service }}")
|
||||
{{ service }}_backends = {region: {{ service_class }}Backend(region) for region in available_regions}
|
||||
{{ escaped_service }}_backends = {region: {{ service_class }}Backend(region) for region in available_regions}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
from __future__ import unicode_literals
|
||||
from moto.core.responses import BaseResponse
|
||||
from .models import {{ service }}_backends
|
||||
from .models import {{ escaped_service }}_backends
|
||||
import json
|
||||
|
||||
|
||||
class {{ service_class }}Response(BaseResponse):
|
||||
SERVICE_NAME = '{{ service }}'
|
||||
@property
|
||||
def {{ service }}_backend(self):
|
||||
return {{ service }}_backends[self.region]
|
||||
def {{ escaped_service }}_backend(self):
|
||||
return {{ escaped_service }}_backends[self.region]
|
||||
|
||||
# add methods from here
|
||||
|
||||
|
|
|
|||
|
|
@ -5,5 +5,9 @@ url_bases = [
|
|||
"https?://{{ endpoint_prefix }}.(.+).amazonaws.com",
|
||||
]
|
||||
|
||||
{% if api_protocol == 'rest-json' %}
|
||||
response = {{ service_class }}Response()
|
||||
{% endif %}
|
||||
|
||||
url_paths = {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,14 +3,14 @@ from __future__ import unicode_literals
|
|||
import sure # noqa
|
||||
|
||||
import moto.server as server
|
||||
from moto import mock_{{ service }}
|
||||
from moto import mock_{{ escaped_service }}
|
||||
|
||||
'''
|
||||
Test the different server responses
|
||||
'''
|
||||
|
||||
@mock_{{ service }}
|
||||
def test_{{ service }}_list():
|
||||
@mock_{{ escaped_service }}
|
||||
def test_{{ escaped_service }}_list():
|
||||
backend = server.create_backend_app("{{ service }}")
|
||||
test_client = backend.test_client()
|
||||
# do test
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@ from __future__ import unicode_literals
|
|||
|
||||
import boto3
|
||||
import sure # noqa
|
||||
from moto import mock_{{ service }}
|
||||
from moto import mock_{{ escaped_service }}
|
||||
|
||||
|
||||
@mock_{{ service }}
|
||||
@mock_{{ escaped_service }}
|
||||
def test_list():
|
||||
# do test
|
||||
pass
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue