b5c63ce757
* Migrate to python3; drop python support. * Update Windows toolchain support. * Remove some unused methods. * Python 2.7 is still needed on Windows. * Update gsutil to a version that supports python3. Fixes: https://github.com/dart-lang/sdk/issues/28793 TEST=Manually tested common user journeys. Change-Id: I663a22b237a548bb82dc2e601e399e3bc3649211 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192182 Reviewed-by: William Hesse <whesse@google.com> Reviewed-by: Alexander Aprelev <aam@google.com>
130 lines
3.1 KiB
Python
Executable File
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, 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()
|