Correct several issues in scripts/scaffold.py (#4349)
This commit is contained in:
parent
73b7fcce26
commit
25d5db2063
@ -11,10 +11,10 @@ protocol is `query`, `json` or `rest-json`. Even if aws adds new
|
|||||||
services, this script will work as long as the protocol is known.
|
services, this script will work as long as the protocol is known.
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- This scripts don't generates functions in `responses.py` for
|
- This script doesn't generates functions in `responses.py` for
|
||||||
`rest-json`, because I don't know the rule of it. want someone fix this.
|
`rest-json`. Someone will need to add this logic.
|
||||||
- In some services's operations, this scripts might crash. Make new
|
- In some services's operations, this script might crash. Create an
|
||||||
issue on github then.
|
issue on github for the problem.
|
||||||
"""
|
"""
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
@ -132,7 +132,7 @@ def append_mock_to_init_py(service):
|
|||||||
get_escaped_service(service),
|
get_escaped_service(service),
|
||||||
get_escaped_service(service),
|
get_escaped_service(service),
|
||||||
get_escaped_service(service),
|
get_escaped_service(service),
|
||||||
service
|
service,
|
||||||
)
|
)
|
||||||
lines.insert(last_import_line_index + 1, new_line)
|
lines.insert(last_import_line_index + 1, new_line)
|
||||||
|
|
||||||
@ -141,30 +141,7 @@ def append_mock_to_init_py(service):
|
|||||||
fhandle.write(body)
|
fhandle.write(body)
|
||||||
|
|
||||||
|
|
||||||
def append_mock_dict_to_backends_py(service):
|
def initialize_service(service, api_protocol):
|
||||||
path = os.path.join(os.path.dirname(__file__), "..", "moto", "backends.py")
|
|
||||||
with open(path) as fhandle:
|
|
||||||
lines = [_.replace("\n", "") for _ in fhandle.readlines()]
|
|
||||||
|
|
||||||
if any(_ for _ in lines if re.match(f'.*"{service}": {service}_backends.*', _)):
|
|
||||||
return
|
|
||||||
filtered_lines = [_ for _ in lines if re.match('.*".*":.*_backends.*', _)]
|
|
||||||
last_elem_line_index = lines.index(filtered_lines[-1])
|
|
||||||
|
|
||||||
new_line = ' "{}": ("{}", "{}_backends"),'.format(
|
|
||||||
service, get_escaped_service(service), get_escaped_service(service)
|
|
||||||
)
|
|
||||||
prev_line = lines[last_elem_line_index]
|
|
||||||
if not prev_line.endswith("{") and not prev_line.endswith(","):
|
|
||||||
lines[last_elem_line_index] += ","
|
|
||||||
lines.insert(last_elem_line_index + 1, new_line)
|
|
||||||
|
|
||||||
body = "\n".join(lines) + "\n"
|
|
||||||
with open(path, "w") as fhandle:
|
|
||||||
fhandle.write(body)
|
|
||||||
|
|
||||||
|
|
||||||
def initialize_service(service, operation, api_protocol):
|
|
||||||
"""create lib and test dirs if not exist"""
|
"""create lib and test dirs if not exist"""
|
||||||
lib_dir = get_lib_dir(service)
|
lib_dir = get_lib_dir(service)
|
||||||
test_dir = get_test_dir(service)
|
test_dir = get_test_dir(service)
|
||||||
@ -208,8 +185,7 @@ def initialize_service(service, operation, api_protocol):
|
|||||||
else None
|
else None
|
||||||
)
|
)
|
||||||
render_template(tmpl_dir, tmpl_filename, tmpl_context, service, alt_filename)
|
render_template(tmpl_dir, tmpl_filename, tmpl_context, service, alt_filename)
|
||||||
|
# append mock to initi files
|
||||||
# append mock to init files
|
|
||||||
append_mock_to_init_py(service)
|
append_mock_to_init_py(service)
|
||||||
|
|
||||||
|
|
||||||
@ -532,8 +508,10 @@ def main():
|
|||||||
)
|
)
|
||||||
|
|
||||||
click.echo(
|
click.echo(
|
||||||
'You will still need to add the mock into "docs/index.rst" and '
|
'Remaining setup:\n'
|
||||||
'"IMPLEMENTATION_COVERAGE.md"'
|
'- Add the mock into "docs/index.rst",\n'
|
||||||
|
'- Add the mock into "IMPLEMENTATION_COVERAGE.md",\n'
|
||||||
|
'- Run scripts/update_backend_index.py.'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user