diff --git a/third_party/mako/README.chromium b/third_party/mako/README.chromium index 307da9d172728..8a76367a000cb 100644 --- a/third_party/mako/README.chromium +++ b/third_party/mako/README.chromium @@ -1,8 +1,8 @@ Name: Mako Templates for Python Short Name: python-mako URL: https://www.makotemplates.org -Version: 1.2.0 -Date: March 11, 2022 +Version: 1.2.1 +Date: July 1, 2022 License: MIT License File: NOT_SHIPPED Security Critical: no @@ -10,11 +10,11 @@ Security Critical: no Description: Template engine in Python, used for code generation in Blink. -Source: https://files.pythonhosted.org/packages/50/ec/1d687348f0954bda388bfd1330c158ba8d7dea4044fc160e74e080babdb9/Mako-1.2.0.tar.gz -SHA-256: 9a7c7e922b87db3686210cf49d5d767033a41d4010b284e747682c92bddd8b39 +Source: https://files.pythonhosted.org/packages/ad/dd/34201dae727bb183ca14fd8417e61f936fa068d6f503991f09ee3cac6697/Mako-1.2.1.tar.gz +SHA-256: f054a5ff4743492f1aa9ecc47172cb33b42b9d993cffcc146c9de17e717b0307 Local Modifications: * add DIR_METADATA, OWNERS, README.chromium, and .gitattributes files in this directory. * run following commands to pass PRESUBMIT. - $ rm -rf mako/doc/ mako/example/ mako/Mako.egg-info mako/PKG-INFO + $ rm -rf mako/doc/ mako/examples/ mako/Mako.egg-info mako/PKG-INFO $ chmod -x mako/mako/cmd.py diff --git a/third_party/mako/mako/LICENSE b/third_party/mako/mako/LICENSE index 2342a9d3d028b..be84a38ef9f41 100644 --- a/third_party/mako/mako/LICENSE +++ b/third_party/mako/mako/LICENSE @@ -1,4 +1,4 @@ -Copyright 2006-2021 the Mako authors and contributors . +Copyright 2006-2022 the Mako authors and contributors . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in @@ -16,4 +16,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file +SOFTWARE. diff --git a/third_party/mako/mako/mako/__init__.py b/third_party/mako/mako/mako/__init__.py index 5ae5501135aa4..f105e78cd1685 100644 --- a/third_party/mako/mako/mako/__init__.py +++ b/third_party/mako/mako/mako/__init__.py @@ -1,8 +1,8 @@ # mako/__init__.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -__version__ = "1.2.0" +__version__ = "1.2.1" diff --git a/third_party/mako/mako/mako/_ast_util.py b/third_party/mako/mako/mako/_ast_util.py index b8615335d6b29..95742835f0f2b 100644 --- a/third_party/mako/mako/mako/_ast_util.py +++ b/third_party/mako/mako/mako/_ast_util.py @@ -1,5 +1,5 @@ # mako/_ast_util.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/ast.py b/third_party/mako/mako/mako/ast.py index f879e8b4bf60f..a3f3ee3ec630a 100644 --- a/third_party/mako/mako/mako/ast.py +++ b/third_party/mako/mako/mako/ast.py @@ -1,5 +1,5 @@ # mako/ast.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/cache.py b/third_party/mako/mako/mako/cache.py index d77be271159fe..db21bb3e9ea5a 100644 --- a/third_party/mako/mako/mako/cache.py +++ b/third_party/mako/mako/mako/cache.py @@ -1,5 +1,5 @@ # mako/cache.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/cmd.py b/third_party/mako/mako/mako/cmd.py index 7592fb279df1a..93a6733fcba03 100644 --- a/third_party/mako/mako/mako/cmd.py +++ b/third_party/mako/mako/mako/cmd.py @@ -1,5 +1,5 @@ # mako/cmd.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/codegen.py b/third_party/mako/mako/mako/codegen.py index c897f0fff178a..a9dbcb6799fbd 100644 --- a/third_party/mako/mako/mako/codegen.py +++ b/third_party/mako/mako/mako/codegen.py @@ -1,5 +1,5 @@ # mako/codegen.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/compat.py b/third_party/mako/mako/mako/compat.py index 68bc03b1dd7c0..48df30d6e2294 100644 --- a/third_party/mako/mako/mako/compat.py +++ b/third_party/mako/mako/mako/compat.py @@ -1,5 +1,5 @@ # mako/compat.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/exceptions.py b/third_party/mako/mako/mako/exceptions.py index a0a5feca77d87..31c695fd78f18 100644 --- a/third_party/mako/mako/mako/exceptions.py +++ b/third_party/mako/mako/mako/exceptions.py @@ -1,5 +1,5 @@ # mako/exceptions.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/ext/autohandler.py b/third_party/mako/mako/mako/ext/autohandler.py index e8fdac89f6155..5bcfc28584b81 100644 --- a/third_party/mako/mako/mako/ext/autohandler.py +++ b/third_party/mako/mako/mako/ext/autohandler.py @@ -1,5 +1,5 @@ # ext/autohandler.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/ext/babelplugin.py b/third_party/mako/mako/mako/ext/babelplugin.py index f015ec2547704..907d0b80869ce 100644 --- a/third_party/mako/mako/mako/ext/babelplugin.py +++ b/third_party/mako/mako/mako/ext/babelplugin.py @@ -1,5 +1,5 @@ # ext/babelplugin.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/ext/beaker_cache.py b/third_party/mako/mako/mako/ext/beaker_cache.py index a40b09cf488a0..9aa35b068423a 100644 --- a/third_party/mako/mako/mako/ext/beaker_cache.py +++ b/third_party/mako/mako/mako/ext/beaker_cache.py @@ -1,5 +1,5 @@ # ext/beaker_cache.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/ext/extract.py b/third_party/mako/mako/mako/ext/extract.py index 74d067d8495b5..9d33ee1841a8f 100644 --- a/third_party/mako/mako/mako/ext/extract.py +++ b/third_party/mako/mako/mako/ext/extract.py @@ -1,5 +1,5 @@ # ext/extract.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/ext/linguaplugin.py b/third_party/mako/mako/mako/ext/linguaplugin.py index 4cce6262b72bf..efb04c70a94eb 100644 --- a/third_party/mako/mako/mako/ext/linguaplugin.py +++ b/third_party/mako/mako/mako/ext/linguaplugin.py @@ -1,5 +1,5 @@ # ext/linguaplugin.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/ext/preprocessors.py b/third_party/mako/mako/mako/ext/preprocessors.py index 6855eeb437803..80403ecdaebed 100644 --- a/third_party/mako/mako/mako/ext/preprocessors.py +++ b/third_party/mako/mako/mako/ext/preprocessors.py @@ -1,5 +1,5 @@ # ext/preprocessors.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/ext/pygmentplugin.py b/third_party/mako/mako/mako/ext/pygmentplugin.py index 38d6a71ba04e1..9acbf4cd67a43 100644 --- a/third_party/mako/mako/mako/ext/pygmentplugin.py +++ b/third_party/mako/mako/mako/ext/pygmentplugin.py @@ -1,5 +1,5 @@ # ext/pygmentplugin.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/ext/turbogears.py b/third_party/mako/mako/mako/ext/turbogears.py index 413d9f74021e5..2ebf074686728 100644 --- a/third_party/mako/mako/mako/ext/turbogears.py +++ b/third_party/mako/mako/mako/ext/turbogears.py @@ -1,5 +1,5 @@ # ext/turbogears.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/filters.py b/third_party/mako/mako/mako/filters.py index 26edd8ee88771..af202f3f52946 100644 --- a/third_party/mako/mako/mako/filters.py +++ b/third_party/mako/mako/mako/filters.py @@ -1,5 +1,5 @@ # mako/filters.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/lexer.py b/third_party/mako/mako/mako/lexer.py index 527c4b51820e2..bfcf28691a5cc 100644 --- a/third_party/mako/mako/mako/lexer.py +++ b/third_party/mako/mako/mako/lexer.py @@ -1,5 +1,5 @@ # mako/lexer.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php @@ -74,12 +74,11 @@ def match_reg(self, reg): (start, end) = match.span() self.match_position = end + 1 if end == start else end self.matched_lineno = self.lineno - lines = re.findall(r"\n", self.text[mp : self.match_position]) cp = mp - 1 - while cp >= 0 and cp < self.textlength and self.text[cp] != "\n": - cp -= 1 + if cp >= 0 and cp < self.textlength: + cp = self.text[: cp + 1].rfind("\n") self.matched_charpos = mp - cp - self.lineno += len(lines) + self.lineno += self.text[mp : self.match_position].count("\n") return match def parse_until_text(self, watch_nesting, *text): diff --git a/third_party/mako/mako/mako/lookup.py b/third_party/mako/mako/mako/lookup.py index 7afe242b76380..f7410ce3b1f78 100644 --- a/third_party/mako/mako/mako/lookup.py +++ b/third_party/mako/mako/mako/lookup.py @@ -1,5 +1,5 @@ # mako/lookup.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/parsetree.py b/third_party/mako/mako/mako/parsetree.py index 2135769f0693b..c5a12d1d5efa0 100644 --- a/third_party/mako/mako/mako/parsetree.py +++ b/third_party/mako/mako/mako/parsetree.py @@ -1,5 +1,5 @@ # mako/parsetree.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/pygen.py b/third_party/mako/mako/mako/pygen.py index 46b0b52ffece0..57c697931f590 100644 --- a/third_party/mako/mako/mako/pygen.py +++ b/third_party/mako/mako/mako/pygen.py @@ -1,5 +1,5 @@ # mako/pygen.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php @@ -43,6 +43,15 @@ def __init__(self, stream): # source lines self.source_map = {} + self._re_space_comment = re.compile(r"^\s*#") + self._re_space = re.compile(r"^\s*$") + self._re_indent = re.compile(r":[ \t]*(?:#.*)?$") + self._re_compound = re.compile(r"^\s*(if|try|elif|while|for|with)") + self._re_indent_keyword = re.compile( + r"^\s*(def|class|else|elif|except|finally)" + ) + self._re_unindentor = re.compile(r"^\s*(else|elif|except|finally).*\:") + def _update_lineno(self, num): self.lineno += num @@ -86,8 +95,8 @@ def writeline(self, line): if ( line is None - or re.match(r"^\s*#", line) - or re.match(r"^\s*$", line) + or self._re_space_comment.match(line) + or self._re_space.match(line) ): hastext = False else: @@ -121,12 +130,12 @@ def writeline(self, line): # note that a line can both decrase (before printing) and # then increase (after printing) the indentation level. - if re.search(r":[ \t]*(?:#.*)?$", line): + if self._re_indent.search(line): # increment indentation count, and also # keep track of what the keyword was that indented us, # if it is a python compound statement keyword # where we might have to look for an "unindent" keyword - match = re.match(r"^\s*(if|try|elif|while|for|with)", line) + match = self._re_compound.match(line) if match: # its a "compound" keyword, so we will check for "unindentors" indentor = match.group(1) @@ -137,9 +146,7 @@ def writeline(self, line): # its not a "compound" keyword. but lets also # test for valid Python keywords that might be indenting us, # else assume its a non-indenting line - m2 = re.match( - r"^\s*(def|class|else|elif|except|finally)", line - ) + m2 = self._re_indent_keyword.match(line) if m2: self.indent += 1 self.indent_detail.append(indentor) @@ -167,7 +174,7 @@ def _is_unindentor(self, line): # if the current line doesnt have one of the "unindentor" keywords, # return False - match = re.match(r"^\s*(else|elif|except|finally).*\:", line) + match = self._re_unindentor.match(line) # if True, whitespace matches up, we have a compound indentor, # and this line has an unindentor, this # is probably good enough @@ -193,6 +200,9 @@ def _indent_line(self, line, stripspace=""): stripspace is a string of space that will be truncated from the start of the line before indenting.""" + if stripspace == "": + # Fast path optimization. + return self.indentstring * self.indent + line return re.sub( r"^%s" % stripspace, self.indentstring * self.indent, line diff --git a/third_party/mako/mako/mako/pyparser.py b/third_party/mako/mako/mako/pyparser.py index 5c55505ba002b..d9b090c6fa1e0 100644 --- a/third_party/mako/mako/mako/pyparser.py +++ b/third_party/mako/mako/mako/pyparser.py @@ -1,5 +1,5 @@ # mako/pyparser.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/template.py b/third_party/mako/mako/mako/template.py index bbbe73cb2520b..8c70731dc1c58 100644 --- a/third_party/mako/mako/mako/template.py +++ b/third_party/mako/mako/mako/template.py @@ -1,5 +1,5 @@ # mako/template.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/mako/testing/fixtures.py b/third_party/mako/mako/mako/testing/fixtures.py index c9379c0c7f255..01e996171d16b 100644 --- a/third_party/mako/mako/mako/testing/fixtures.py +++ b/third_party/mako/mako/mako/testing/fixtures.py @@ -80,6 +80,16 @@ def _do_test( output = filters(output) eq_(output, expected) + def indicates_unbound_local_error(self, rendered_output, unbound_var): + var = f"'{unbound_var}'" + error_msgs = ( + # < 3.11 + f"local variable {var} referenced before assignment", + # >= 3.11 + f"cannot access local variable {var} where it is not associated", + ) + return any((msg in rendered_output) for msg in error_msgs) + class PlainCacheImpl(CacheImpl): """Simple memory cache impl so that tests which diff --git a/third_party/mako/mako/mako/util.py b/third_party/mako/mako/mako/util.py index 74c8b9eb25fa8..5fb683b4f1548 100644 --- a/third_party/mako/mako/mako/util.py +++ b/third_party/mako/mako/mako/util.py @@ -1,5 +1,5 @@ # mako/util.py -# Copyright 2006-2021 the Mako authors and contributors +# Copyright 2006-2022 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/third_party/mako/mako/setup.cfg b/third_party/mako/mako/setup.cfg index b7272dbaaa4e9..bcfefa1b50c77 100644 --- a/third_party/mako/mako/setup.cfg +++ b/third_party/mako/mako/setup.cfg @@ -8,7 +8,7 @@ url = https://www.makotemplates.org/ author = Mike Bayer author_email = mike@zzzcomputing.com license = MIT -license_file = LICENSE +license_files = LICENSE classifiers = Development Status :: 5 - Production/Stable License :: OSI Approved :: MIT License @@ -69,9 +69,12 @@ tag_build = tag_date = 0 [tool:pytest] -addopts = --tb native -v -r fxX -W error +addopts = --tb native -v -r fxX -p warnings python_files = test/*test_*.py python_classes = *Test +filterwarnings = + error::DeprecationWarning:test + error::DeprecationWarning:mako [upload] sign = 1 diff --git a/third_party/mako/mako/test/ext/test_babelplugin.py b/third_party/mako/mako/test/ext/test_babelplugin.py index de3e461057721..cfe79b62e8a0f 100644 --- a/third_party/mako/mako/test/ext/test_babelplugin.py +++ b/third_party/mako/mako/test/ext/test_babelplugin.py @@ -1,26 +1,35 @@ import io import os -from mako.ext.babelplugin import extract +import pytest + from mako.testing.assertions import eq_ from mako.testing.config import config from mako.testing.exclusions import requires_babel from mako.testing.fixtures import TemplateTest +class UsesExtract: + @pytest.fixture(scope="class") + def extract(self): + from mako.ext.babelplugin import extract + + return extract + + @requires_babel -class PluginExtractTest: - def test_parse_python_expression(self): +class PluginExtractTest(UsesExtract): + def test_parse_python_expression(self, extract): input_ = io.BytesIO(b'

${_("Message")}

') messages = list(extract(input_, ["_"], [], {})) eq_(messages, [(1, "_", ("Message"), [])]) - def test_python_gettext_call(self): + def test_python_gettext_call(self, extract): input_ = io.BytesIO(b'

${_("Message")}

') messages = list(extract(input_, ["_"], [], {})) eq_(messages, [(1, "_", ("Message"), [])]) - def test_translator_comment(self): + def test_translator_comment(self, extract): input_ = io.BytesIO( b"""

@@ -43,8 +52,8 @@ def test_translator_comment(self): @requires_babel -class MakoExtractTest(TemplateTest): - def test_extract(self): +class MakoExtractTest(UsesExtract, TemplateTest): + def test_extract(self, extract): with open( os.path.join(config.template_base, "gettext.mako") ) as mako_tmpl: @@ -83,7 +92,7 @@ def test_extract(self): ] eq_(expected, messages) - def test_extract_utf8(self): + def test_extract_utf8(self, extract): with open( os.path.join(config.template_base, "gettext_utf8.mako"), "rb" ) as mako_tmpl: @@ -92,7 +101,7 @@ def test_extract_utf8(self): ) assert message == (1, "_", "K\xf6ln", []) - def test_extract_cp1251(self): + def test_extract_cp1251(self, extract): with open( os.path.join(config.template_base, "gettext_cp1251.mako"), "rb" ) as mako_tmpl: diff --git a/third_party/mako/mako/test/ext/test_linguaplugin.py b/third_party/mako/mako/test/ext/test_linguaplugin.py index ae24f6755a519..5aafcff541e5b 100644 --- a/third_party/mako/mako/test/ext/test_linguaplugin.py +++ b/third_party/mako/mako/test/ext/test_linguaplugin.py @@ -2,7 +2,6 @@ import pytest -from mako.ext.linguaplugin import LinguaMakoExtractor from mako.testing.assertions import eq_ from mako.testing.config import config from mako.testing.exclusions import requires_lingua @@ -19,11 +18,14 @@ class MockOptions: class MakoExtractTest(TemplateTest): @pytest.fixture(autouse=True) def register_lingua_extractors(self): + from lingua.extractors import register_extractors register_extractors() def test_extract(self): + from mako.ext.linguaplugin import LinguaMakoExtractor + plugin = LinguaMakoExtractor({"comment-tags": "TRANSLATOR"}) messages = list( plugin( diff --git a/third_party/mako/mako/test/test_exceptions.py b/third_party/mako/mako/test/test_exceptions.py index b1930c563e45f..be573e6391ed3 100644 --- a/third_party/mako/mako/test/test_exceptions.py +++ b/third_party/mako/mako/test/test_exceptions.py @@ -173,7 +173,7 @@ def test_format_exceptions_pygments(self): ) assert ( - '

' + '
' in l.get_template("foo.html").render_unicode() ) @@ -274,10 +274,8 @@ def test_tback_no_trace_from_py_file(self): html_error = exceptions.html_error_template().render_unicode( error=v, traceback=None ) - assert ( - "local variable 'y' referenced before assignment" - in html_error - ) + + assert self.indicates_unbound_local_error(html_error, "y") def test_tback_trace_from_py_file(self): t = self._file_template("runtimeerr.html") @@ -287,10 +285,7 @@ def test_tback_trace_from_py_file(self): except: html_error = exceptions.html_error_template().render_unicode() - assert ( - "local variable 'y' referenced before assignment" - in html_error - ) + assert self.indicates_unbound_local_error(html_error, "y") def test_code_block_line_number(self): l = TemplateLookup() diff --git a/third_party/mako/mako/test/test_template.py b/third_party/mako/mako/test/test_template.py index fc1aecad5bfbf..6e7a309800959 100644 --- a/third_party/mako/mako/test/test_template.py +++ b/third_party/mako/mako/test/test_template.py @@ -940,18 +940,15 @@ def test_control(self): %endfor """ ) - assert ( - result_lines( - t.render( - y=[ - {"test": "one"}, - {"foo": "bar"}, - {"foo": "bar", "test": "two"}, - ] - ) + assert result_lines( + t.render( + y=[ + {"test": "one"}, + {"foo": "bar"}, + {"foo": "bar", "test": "two"}, + ] ) - == ["yes x has test", "no x does not have test", "yes x has test"] - ) + ) == ["yes x has test", "no x does not have test", "yes x has test"] def test_blank_control_1(self): self._do_memory_test( diff --git a/third_party/mako/mako/tox.ini b/third_party/mako/mako/tox.ini index d8edd3cb03da5..6f7cefdbc7ddc 100644 --- a/third_party/mako/mako/tox.ini +++ b/third_party/mako/mako/tox.ini @@ -30,7 +30,7 @@ deps= pydocstyle<4.0.0 # used by flake8-rst-docstrings pygments - black==21.9b0 + black==22.3.0 commands = flake8 ./mako/ ./test/ setup.py --exclude test/templates,test/foo {posargs} black --check .