| 
									
										
										
										
											2002-08-15 01:28:54 +00:00
										 |  |  | """test script for a few new invalid token catches""" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-18 11:27:17 -07:00
										 |  |  | import sys | 
					
						
							| 
									
										
										
										
											2008-05-20 21:35:26 +00:00
										 |  |  | from test import support | 
					
						
							| 
									
										
										
										
											2019-05-18 11:27:17 -07:00
										 |  |  | from test.support import script_helper | 
					
						
							|  |  |  | import unittest | 
					
						
							| 
									
										
										
										
											2002-08-15 01:28:54 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class EOFTestCase(unittest.TestCase): | 
					
						
							|  |  |  |     def test_EOFC(self): | 
					
						
							| 
									
										
											  
											
												Merged revisions 63066-63076,63079,63081-63085,63087-63097,63099,63101-63104 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r63066 | georg.brandl | 2008-05-11 10:56:04 -0400 (Sun, 11 May 2008) | 2 lines
  #2709 followup: better description of Tk's pros and cons.
........
  r63067 | georg.brandl | 2008-05-11 11:05:13 -0400 (Sun, 11 May 2008) | 2 lines
  #1326: document and test zipimporter.archive and zipimporter.prefix.
........
  r63068 | georg.brandl | 2008-05-11 11:07:39 -0400 (Sun, 11 May 2008) | 2 lines
  #2816: clarify error messages for EOF while scanning strings.
........
  r63069 | georg.brandl | 2008-05-11 11:17:41 -0400 (Sun, 11 May 2008) | 3 lines
  #2787: Flush stdout after writing test name, helpful when running
  hanging or long-running tests. Patch by Adam Olsen.
........
  r63070 | georg.brandl | 2008-05-11 11:20:16 -0400 (Sun, 11 May 2008) | 3 lines
  #2803: fix wrong invocation of heappush in seldom-reached code.
  Thanks to Matt Harden.
........
  r63073 | benjamin.peterson | 2008-05-11 12:38:07 -0400 (Sun, 11 May 2008) | 2 lines
  broaden .bzrignore
........
  r63076 | andrew.kuchling | 2008-05-11 15:15:52 -0400 (Sun, 11 May 2008) | 1 line
  Add message to test assertion
........
  r63083 | andrew.kuchling | 2008-05-11 16:08:33 -0400 (Sun, 11 May 2008) | 1 line
  Try setting HOME env.var to fix test on Win32
........
  r63092 | georg.brandl | 2008-05-11 16:53:55 -0400 (Sun, 11 May 2008) | 2 lines
  #2809 followup: even better split docstring.
........
  r63094 | georg.brandl | 2008-05-11 17:03:42 -0400 (Sun, 11 May 2008) | 4 lines
  - #2250: Exceptions raised during evaluation of names in rlcompleter's
    ``Completer.complete()`` method are now caught and ignored.
........
  r63095 | georg.brandl | 2008-05-11 17:16:37 -0400 (Sun, 11 May 2008) | 2 lines
  Clarify os.strerror()s exception behavior.
........
  r63097 | georg.brandl | 2008-05-11 17:34:10 -0400 (Sun, 11 May 2008) | 2 lines
  #2535: remove duplicated method.
........
  r63104 | alexandre.vassalotti | 2008-05-11 19:04:27 -0400 (Sun, 11 May 2008) | 2 lines
  Moved the Queue module stub in lib-old.
........
											
										 
											2008-05-16 00:41:41 +00:00
										 |  |  |         expect = "EOL while scanning string literal (<string>, line 1)" | 
					
						
							| 
									
										
										
										
											2002-08-15 01:28:54 +00:00
										 |  |  |         try: | 
					
						
							|  |  |  |             eval("""'this is a test\
 | 
					
						
							|  |  |  |             """)
 | 
					
						
							| 
									
										
										
										
											2007-01-10 16:19:56 +00:00
										 |  |  |         except SyntaxError as msg: | 
					
						
							| 
									
										
										
										
											2005-10-20 19:59:25 +00:00
										 |  |  |             self.assertEqual(str(msg), expect) | 
					
						
							| 
									
										
										
										
											2002-08-15 01:28:54 +00:00
										 |  |  |         else: | 
					
						
							| 
									
										
										
										
											2008-05-20 21:35:26 +00:00
										 |  |  |             raise support.TestFailed | 
					
						
							| 
									
										
										
										
											2002-08-15 01:28:54 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def test_EOFS(self): | 
					
						
							| 
									
										
											  
											
												Merged revisions 63066-63076,63079,63081-63085,63087-63097,63099,63101-63104 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r63066 | georg.brandl | 2008-05-11 10:56:04 -0400 (Sun, 11 May 2008) | 2 lines
  #2709 followup: better description of Tk's pros and cons.
........
  r63067 | georg.brandl | 2008-05-11 11:05:13 -0400 (Sun, 11 May 2008) | 2 lines
  #1326: document and test zipimporter.archive and zipimporter.prefix.
........
  r63068 | georg.brandl | 2008-05-11 11:07:39 -0400 (Sun, 11 May 2008) | 2 lines
  #2816: clarify error messages for EOF while scanning strings.
........
  r63069 | georg.brandl | 2008-05-11 11:17:41 -0400 (Sun, 11 May 2008) | 3 lines
  #2787: Flush stdout after writing test name, helpful when running
  hanging or long-running tests. Patch by Adam Olsen.
........
  r63070 | georg.brandl | 2008-05-11 11:20:16 -0400 (Sun, 11 May 2008) | 3 lines
  #2803: fix wrong invocation of heappush in seldom-reached code.
  Thanks to Matt Harden.
........
  r63073 | benjamin.peterson | 2008-05-11 12:38:07 -0400 (Sun, 11 May 2008) | 2 lines
  broaden .bzrignore
........
  r63076 | andrew.kuchling | 2008-05-11 15:15:52 -0400 (Sun, 11 May 2008) | 1 line
  Add message to test assertion
........
  r63083 | andrew.kuchling | 2008-05-11 16:08:33 -0400 (Sun, 11 May 2008) | 1 line
  Try setting HOME env.var to fix test on Win32
........
  r63092 | georg.brandl | 2008-05-11 16:53:55 -0400 (Sun, 11 May 2008) | 2 lines
  #2809 followup: even better split docstring.
........
  r63094 | georg.brandl | 2008-05-11 17:03:42 -0400 (Sun, 11 May 2008) | 4 lines
  - #2250: Exceptions raised during evaluation of names in rlcompleter's
    ``Completer.complete()`` method are now caught and ignored.
........
  r63095 | georg.brandl | 2008-05-11 17:16:37 -0400 (Sun, 11 May 2008) | 2 lines
  Clarify os.strerror()s exception behavior.
........
  r63097 | georg.brandl | 2008-05-11 17:34:10 -0400 (Sun, 11 May 2008) | 2 lines
  #2535: remove duplicated method.
........
  r63104 | alexandre.vassalotti | 2008-05-11 19:04:27 -0400 (Sun, 11 May 2008) | 2 lines
  Moved the Queue module stub in lib-old.
........
											
										 
											2008-05-16 00:41:41 +00:00
										 |  |  |         expect = ("EOF while scanning triple-quoted string literal " | 
					
						
							|  |  |  |                   "(<string>, line 1)") | 
					
						
							| 
									
										
										
										
											2002-08-15 01:28:54 +00:00
										 |  |  |         try: | 
					
						
							|  |  |  |             eval("""'''this is a test""") | 
					
						
							| 
									
										
										
										
											2007-01-10 16:19:56 +00:00
										 |  |  |         except SyntaxError as msg: | 
					
						
							| 
									
										
										
										
											2005-10-20 19:59:25 +00:00
										 |  |  |             self.assertEqual(str(msg), expect) | 
					
						
							| 
									
										
										
										
											2002-08-15 01:28:54 +00:00
										 |  |  |         else: | 
					
						
							| 
									
										
										
										
											2008-05-20 21:35:26 +00:00
										 |  |  |             raise support.TestFailed | 
					
						
							| 
									
										
										
										
											2002-08-15 01:28:54 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-22 23:29:27 +01:00
										 |  |  |     @unittest.skipIf(sys.flags.use_peg, "TODO for PEG -- fails with new parser") | 
					
						
							| 
									
										
										
										
											2019-05-18 11:27:17 -07:00
										 |  |  |     def test_line_continuation_EOF(self): | 
					
						
							| 
									
										
										
										
											2020-01-09 18:07:32 +01:00
										 |  |  |         """A continuation at the end of input must be an error; bpo2180.""" | 
					
						
							| 
									
										
										
										
											2019-05-18 11:27:17 -07:00
										 |  |  |         expect = 'unexpected EOF while parsing (<string>, line 1)' | 
					
						
							|  |  |  |         with self.assertRaises(SyntaxError) as excinfo: | 
					
						
							|  |  |  |             exec('x = 5\\') | 
					
						
							|  |  |  |         self.assertEqual(str(excinfo.exception), expect) | 
					
						
							|  |  |  |         with self.assertRaises(SyntaxError) as excinfo: | 
					
						
							|  |  |  |             exec('\\') | 
					
						
							|  |  |  |         self.assertEqual(str(excinfo.exception), expect) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-22 23:29:27 +01:00
										 |  |  |     @unittest.skip("TODO for PEG -- fails even with old parser now") | 
					
						
							| 
									
										
										
										
											2019-05-18 11:27:17 -07:00
										 |  |  |     @unittest.skipIf(not sys.executable, "sys.executable required") | 
					
						
							|  |  |  |     def test_line_continuation_EOF_from_file_bpo2180(self): | 
					
						
							|  |  |  |         """Ensure tok_nextc() does not add too many ending newlines.""" | 
					
						
							|  |  |  |         with support.temp_dir() as temp_dir: | 
					
						
							|  |  |  |             file_name = script_helper.make_script(temp_dir, 'foo', '\\') | 
					
						
							|  |  |  |             rc, out, err = script_helper.assert_python_failure(file_name) | 
					
						
							|  |  |  |             self.assertIn(b'unexpected EOF while parsing', err) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             file_name = script_helper.make_script(temp_dir, 'foo', 'y = 6\\') | 
					
						
							|  |  |  |             rc, out, err = script_helper.assert_python_failure(file_name) | 
					
						
							|  |  |  |             self.assertIn(b'unexpected EOF while parsing', err) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-08-15 01:28:54 +00:00
										 |  |  | if __name__ == "__main__": | 
					
						
							| 
									
										
										
										
											2015-04-13 15:00:43 -05:00
										 |  |  |     unittest.main() |