]>
Commit | Line | Data |
---|---|---|
4710c53d | 1 | # -*- coding: utf-8 -*-\r |
2 | import sys\r | |
3 | import codecs\r | |
4 | import logging\r | |
5 | import StringIO\r | |
6 | import unittest\r | |
7 | \r | |
8 | from lib2to3 import main\r | |
9 | \r | |
10 | \r | |
11 | class TestMain(unittest.TestCase):\r | |
12 | \r | |
13 | def tearDown(self):\r | |
14 | # Clean up logging configuration down by main.\r | |
15 | del logging.root.handlers[:]\r | |
16 | \r | |
17 | def run_2to3_capture(self, args, in_capture, out_capture, err_capture):\r | |
18 | save_stdin = sys.stdin\r | |
19 | save_stdout = sys.stdout\r | |
20 | save_stderr = sys.stderr\r | |
21 | sys.stdin = in_capture\r | |
22 | sys.stdout = out_capture\r | |
23 | sys.stderr = err_capture\r | |
24 | try:\r | |
25 | return main.main("lib2to3.fixes", args)\r | |
26 | finally:\r | |
27 | sys.stdin = save_stdin\r | |
28 | sys.stdout = save_stdout\r | |
29 | sys.stderr = save_stderr\r | |
30 | \r | |
31 | def test_unencodable_diff(self):\r | |
32 | input_stream = StringIO.StringIO(u"print 'nothing'\nprint u'über'\n")\r | |
33 | out = StringIO.StringIO()\r | |
34 | out_enc = codecs.getwriter("ascii")(out)\r | |
35 | err = StringIO.StringIO()\r | |
36 | ret = self.run_2to3_capture(["-"], input_stream, out_enc, err)\r | |
37 | self.assertEqual(ret, 0)\r | |
38 | output = out.getvalue()\r | |
39 | self.assertTrue("-print 'nothing'" in output)\r | |
40 | self.assertTrue("WARNING: couldn't encode <stdin>'s diff for "\r | |
41 | "your terminal" in err.getvalue())\r |