dart-sdk/tools/dom/scripts/templateloader_test.py
Srujan Gaddam f34eef5b91 [dart:html] Migrate python scripts to python 3
Migrates syntax and semantics from python 2.7.

Major changes include:

- filters
- sorting
- print statements
- higher-order functions
- hashing and comparison

and other misc changes. go.sh consistently gives the libraries
in this and the previous commits with these changes.

Change-Id: I66365739887158d8f321015d36e556447da1bcd3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/211542
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Riley Porter <rileyporter@google.com>
2021-09-08 22:10:53 +00:00

130 lines
3.1 KiB
Python
Executable file

#!/usr/bin/env python3
# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
import logging.config
import unittest
import templateloader
class TemplateLoaderTestCase(unittest.TestCase):
def _preprocess(self, input_text, conds):
loader = templateloader.TemplateLoader('.', [], conds)
return loader._Preprocess(input_text, '<file>', conds)
def _preprocess_test(self, input_text, conds, expected_text):
output_text = self._preprocess(input_text, conds)
if output_text != expected_text:
msg = '''
EXPECTED:
%s
---
ACTUAL :
%s
---''' % (expected_text, output_text)
self.fail(msg)
def _preprocess_error_test(self, input_text, conds, expected_message):
threw = False
try:
output_text = self._preprocess(input_text, conds)
except Exception as e:
threw = True
if str(e).find(expected_message) == -1:
self.fail("'%s' does not contain '%s'" % (e, expected_message))
if not threw:
self.fail("missing error, expected '%s'" % expected_message)
def test_freevar(self):
input_text = '''$A
$B'''
self._preprocess_test(input_text, {}, input_text)
def test_comments(self):
input_text = '''//$ comment 1
Hello
//$ comment 2'''
self._preprocess_test(input_text, {}, 'Hello\n')
def test_ite1(self):
input_text = '''
aaa
$if A
bbb
$else
ccc
$endif
ddd
'''
self._preprocess_test(
input_text, {'A': True}, '''
aaa
bbb
ddd
''')
def test_ite2(self):
input_text = '''
aaa
$if A
bbb
$else
ccc
$endif
ddd
'''
self._preprocess_test(
input_text, {'A': False}, '''
aaa
ccc
ddd
''')
def test_if1(self):
input_text = '''
$if
'''
self._preprocess_error_test(input_text, {},
'$if does not have single variable')
def test_if2(self):
input_text = '''
$if A
'''
self._preprocess_error_test(input_text, {}, 'Unknown $if variable')
def test_else1(self):
input_text = '''
$else
'''
self._preprocess_error_test(input_text, {}, '$else without $if')
def test_else2(self):
input_text = '''
$if A
$else
$else
'''
self._preprocess_error_test(input_text, {'A': True}, 'Double $else')
def test_eof1(self):
input_text = '''
$if A
'''
self._preprocess_error_test(input_text, {'A': True}, 'Unterminated')
def test_eof2(self):
input_text = '''
$if A
$else
'''
self._preprocess_error_test(input_text, {'A': True}, 'Unterminated')
if __name__ == "__main__":
logging.config.fileConfig("logging.conf")
if __name__ == '__main__':
unittest.main()