Remove newlines from XML responses
This is a second attempt at resolving the issues with producing an XML consistent with what is produced from AWS (i.e., no spaces/new lines between tags). Another attempt (https://github.com/spulec/moto/pull/2205) is currently failing in tests. This attempt uses precompiled regex patterns as class attributes of the `_TemplateEnvironmentMixin` to remove trailing spaces and newlines after a `">"`, and preceding newlines/spaces before a `"<"`. This *explicitly* wasn't done with a single regex to ensure that even things like `"...<ID>\n 12345\n </ID>"` are properly collapsed.
This commit is contained in:
parent
8f3116220c
commit
5cccb03c91
@ -83,6 +83,8 @@ class DynamicDictLoader(DictLoader):
|
|||||||
|
|
||||||
|
|
||||||
class _TemplateEnvironmentMixin(object):
|
class _TemplateEnvironmentMixin(object):
|
||||||
|
LEFT_PATTERN = re.compile(r"[\s\n]+<")
|
||||||
|
RIGHT_PATTERN = re.compile(r">[\s\n]+")
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(_TemplateEnvironmentMixin, self).__init__()
|
super(_TemplateEnvironmentMixin, self).__init__()
|
||||||
@ -101,7 +103,12 @@ class _TemplateEnvironmentMixin(object):
|
|||||||
def response_template(self, source):
|
def response_template(self, source):
|
||||||
template_id = id(source)
|
template_id = id(source)
|
||||||
if not self.contains_template(template_id):
|
if not self.contains_template(template_id):
|
||||||
self.loader.update({template_id: source})
|
collapsed = re.sub(
|
||||||
|
self.RIGHT_PATTERN,
|
||||||
|
">",
|
||||||
|
re.sub(self.LEFT_PATTERN, "<", source)
|
||||||
|
)
|
||||||
|
self.loader.update({template_id: collapsed})
|
||||||
self.environment = Environment(loader=self.loader, autoescape=self.should_autoescape, trim_blocks=True,
|
self.environment = Environment(loader=self.loader, autoescape=self.should_autoescape, trim_blocks=True,
|
||||||
lstrip_blocks=True)
|
lstrip_blocks=True)
|
||||||
return self.environment.get_template(template_id)
|
return self.environment.get_template(template_id)
|
||||||
|
Loading…
Reference in New Issue
Block a user