| 
									
										
										
										
											2010-05-19 17:15:50 +00:00
										 |  |  | """Tests for distutils.log""" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import sys | 
					
						
							|  |  |  | import unittest | 
					
						
							|  |  |  | from tempfile import NamedTemporaryFile | 
					
						
							| 
									
										
										
										
											2010-11-06 02:44:43 +00:00
										 |  |  | from test.support import run_unittest | 
					
						
							| 
									
										
										
										
											2010-05-19 17:15:50 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | from distutils import log | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TestLog(unittest.TestCase): | 
					
						
							|  |  |  |     def test_non_ascii(self): | 
					
						
							|  |  |  |         # Issue #8663: test that non-ASCII text is escaped with | 
					
						
							|  |  |  |         # backslashreplace error handler (stream use ASCII encoding and strict | 
					
						
							|  |  |  |         # error handler) | 
					
						
							|  |  |  |         old_stdout = sys.stdout | 
					
						
							|  |  |  |         old_stderr = sys.stderr | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             log.set_threshold(log.DEBUG) | 
					
						
							|  |  |  |             with NamedTemporaryFile(mode="w+", encoding='ascii') as stdout, \ | 
					
						
							|  |  |  |                  NamedTemporaryFile(mode="w+", encoding='ascii') as stderr: | 
					
						
							|  |  |  |                 sys.stdout = stdout | 
					
						
							|  |  |  |                 sys.stderr = stderr | 
					
						
							|  |  |  |                 log.debug("debug:\xe9") | 
					
						
							|  |  |  |                 log.fatal("fatal:\xe9") | 
					
						
							|  |  |  |                 stdout.seek(0) | 
					
						
							| 
									
										
										
										
											2010-11-20 19:04:17 +00:00
										 |  |  |                 self.assertEqual(stdout.read().rstrip(), "debug:\\xe9") | 
					
						
							| 
									
										
										
										
											2010-05-19 17:15:50 +00:00
										 |  |  |                 stderr.seek(0) | 
					
						
							| 
									
										
										
										
											2010-11-20 19:04:17 +00:00
										 |  |  |                 self.assertEqual(stderr.read().rstrip(), "fatal:\\xe9") | 
					
						
							| 
									
										
										
										
											2010-05-19 17:15:50 +00:00
										 |  |  |         finally: | 
					
						
							|  |  |  |             sys.stdout = old_stdout | 
					
						
							|  |  |  |             sys.stderr = old_stderr | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_suite(): | 
					
						
							|  |  |  |     return unittest.makeSuite(TestLog) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == "__main__": | 
					
						
							| 
									
										
										
										
											2010-11-06 02:44:43 +00:00
										 |  |  |     run_unittest(test_suite()) |