mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Add test cases to make sure we get the right SyntaxError message for
various illegal uses of "continue".
This commit is contained in:
		
							parent
							
								
									fd1f1be98d
								
							
						
					
					
						commit
						72e48bd05f
					
				
					 2 changed files with 59 additions and 0 deletions
				
			
		|  | @ -27,6 +27,16 @@ RuntimeError | ||||||
| (not used any more?) | (not used any more?) | ||||||
| spam | spam | ||||||
| SyntaxError | SyntaxError | ||||||
|  | 'continue' not supported inside 'try' clause | ||||||
|  | ok | ||||||
|  | 'continue' not supported inside 'try' clause | ||||||
|  | ok | ||||||
|  | 'continue' not supported inside 'try' clause | ||||||
|  | ok | ||||||
|  | 'continue' not properly in loop | ||||||
|  | ok | ||||||
|  | 'continue' not properly in loop | ||||||
|  | ok | ||||||
| spam | spam | ||||||
| IndentationError | IndentationError | ||||||
| spam | spam | ||||||
|  |  | ||||||
|  | @ -86,6 +86,55 @@ def r(thing): | ||||||
| try: exec '/\n' | try: exec '/\n' | ||||||
| except SyntaxError: pass | except SyntaxError: pass | ||||||
| 
 | 
 | ||||||
|  | # make sure the right exception message is raised for each of these | ||||||
|  | # code fragments: | ||||||
|  | 
 | ||||||
|  | def ckmsg(src, msg): | ||||||
|  |     try: | ||||||
|  |         compile(src, '<fragment>', 'exec') | ||||||
|  |     except SyntaxError, e: | ||||||
|  |         print e.msg | ||||||
|  |         if e.msg == msg: | ||||||
|  |             print "ok" | ||||||
|  |         else: | ||||||
|  |             print "expected:", msg | ||||||
|  |     else: | ||||||
|  |         print "failed to get expected SyntaxError" | ||||||
|  | 
 | ||||||
|  | s = '''\ | ||||||
|  | while 1: | ||||||
|  |     try: | ||||||
|  |         continue | ||||||
|  |     except: | ||||||
|  |         pass | ||||||
|  | ''' | ||||||
|  | ckmsg(s, "'continue' not supported inside 'try' clause") | ||||||
|  | s = '''\ | ||||||
|  | while 1: | ||||||
|  |     try: | ||||||
|  |         continue | ||||||
|  |     finally: | ||||||
|  |         pass | ||||||
|  | ''' | ||||||
|  | ckmsg(s, "'continue' not supported inside 'try' clause") | ||||||
|  | s = '''\ | ||||||
|  | while 1: | ||||||
|  |     try: | ||||||
|  |         if 1: | ||||||
|  |             continue | ||||||
|  |     finally: | ||||||
|  |         pass | ||||||
|  | ''' | ||||||
|  | ckmsg(s, "'continue' not supported inside 'try' clause") | ||||||
|  | s = '''\ | ||||||
|  | try: | ||||||
|  |     continue | ||||||
|  | except: | ||||||
|  |     pass | ||||||
|  | ''' | ||||||
|  | ckmsg(s, "'continue' not properly in loop") | ||||||
|  | ckmsg("continue\n", "'continue' not properly in loop") | ||||||
|  | 
 | ||||||
| r(IndentationError) | r(IndentationError) | ||||||
| 
 | 
 | ||||||
| r(TabError) | r(TabError) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Fred Drake
						Fred Drake