You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.4 KiB
92 lines
2.4 KiB
7 months ago
|
#!/usr/bin/python2
|
||
|
|
||
|
# Copyright (c) 2020 The Chromium Authors. All rights reserved.
|
||
|
# Use of this source code is governed by a BSD-style license that can be
|
||
|
# found in the LICENSE file.
|
||
|
|
||
|
from __future__ import print_function
|
||
|
|
||
|
import os
|
||
|
import sys
|
||
|
import tempfile
|
||
|
import unittest
|
||
|
|
||
|
import seven
|
||
|
|
||
|
|
||
|
class TestExecCompileFile(unittest.TestCase):
|
||
|
def _remove_tempfile(self):
|
||
|
if hasattr(self, "tempfile"):
|
||
|
try:
|
||
|
os.remove(self.tempfile)
|
||
|
except OSError:
|
||
|
pass
|
||
|
return None
|
||
|
|
||
|
def setUp(self):
|
||
|
try:
|
||
|
with tempfile.NamedTemporaryFile(delete=False) as fh:
|
||
|
self.tempfile = fh.name
|
||
|
except Exception: # pylint: disable=broad-except
|
||
|
self._remove_tempfile()
|
||
|
super(TestExecCompileFile, self).setUp()
|
||
|
|
||
|
def tearDown(self):
|
||
|
super(TestExecCompileFile, self).tearDown()
|
||
|
self._remove_tempfile()
|
||
|
|
||
|
def testExecSyntaxError(self):
|
||
|
with open(self.tempfile, "wb") as fh:
|
||
|
fh.write(br"(")
|
||
|
|
||
|
try:
|
||
|
seven.exec_file(
|
||
|
filename=self.tempfile,
|
||
|
globals_={},
|
||
|
locals_={},
|
||
|
)
|
||
|
exn = None
|
||
|
except Exception as e: # pylint: disable=broad-except
|
||
|
exn = e
|
||
|
|
||
|
self.assertIsInstance(exn, SyntaxError)
|
||
|
|
||
|
def testExecPrint(self):
|
||
|
with open(self.tempfile, "wb") as fh:
|
||
|
fh.write(br"print 'hi'")
|
||
|
|
||
|
try:
|
||
|
seven.exec_file(
|
||
|
filename=self.tempfile,
|
||
|
globals_={},
|
||
|
locals_={},
|
||
|
)
|
||
|
exn = None
|
||
|
except Exception as e: # pylint: disable=broad-except
|
||
|
exn = e
|
||
|
|
||
|
if sys.version_info[0] <= 2:
|
||
|
self.assertIsNone(exn)
|
||
|
else:
|
||
|
self.assertIsInstance(exn, SyntaxError)
|
||
|
|
||
|
def testExecPrintWithFutureImport(self):
|
||
|
with open(self.tempfile, "wb") as fh:
|
||
|
fh.write(br"from __future__ import print_function; print 'hi'")
|
||
|
|
||
|
try:
|
||
|
seven.exec_file(
|
||
|
filename=self.tempfile,
|
||
|
globals_={},
|
||
|
locals_={},
|
||
|
)
|
||
|
exn = None
|
||
|
except Exception as e: # pylint: disable=broad-except
|
||
|
exn = e
|
||
|
|
||
|
self.assertIsInstance(exn, SyntaxError)
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
unittest.main()
|