@@ -583,18 +583,18 @@ def test_compile_ast(self):
583583 with open (fname , encoding = 'utf-8' ) as f :
584584 fcontents = f .read ()
585585 sample_code = [
586- ['<assign>' , 'x = 5' ],
587- ['<ifblock>' , """if True:\n pass\n """ ],
588- ['<forblock>' , """for n in [1, 2, 3]:\n print(n)\n """ ],
589- ['<deffunc>' , """def foo():\n pass\n foo()\n """ ],
590- [fname , fcontents ],
586+ [2 , '<assign>' , 'x = 5' ],
587+ [2 , '<ifblock>' , """if True:\n pass\n """ ],
588+ [1 , '<forblock>' , """for n in [1, 2, 3]:\n print(n)\n """ ],
589+ [1 , '<deffunc>' , """def foo():\n pass\n foo()\n """ ],
590+ [0 , fname , fcontents ],
591591 ]
592592
593- for fname , code in sample_code :
594- co1 = compile (code , '%s1' % fname , 'exec' )
595- ast = compile (code , '%s2' % fname , 'exec' , _ast .PyCF_ONLY_AST )
593+ for optval , fname , code in sample_code :
594+ co1 = compile (code , '%s1' % fname , 'exec' , optimize = optval )
595+ ast = compile (code , '%s2' % fname , 'exec' , _ast .PyCF_ONLY_AST , optimize = optval )
596596 self .assertTrue (type (ast ) == _ast .Module )
597- co2 = compile (ast , '%s3' % fname , 'exec' )
597+ co2 = compile (ast , '%s3' % fname , 'exec' , optimize = optval )
598598 self .assertEqual (co1 , co2 )
599599 # the code object's filename comes from the second compilation step
600600 self .assertEqual (co2 .co_filename , '%s3' % fname )
@@ -823,8 +823,9 @@ def f():
823823 else :
824824 return "unused"
825825
826- self .assertEqual (f .__code__ .co_consts ,
827- (f .__doc__ , "used" ))
826+ if f .__doc__ is None :
827+ self .skipTest ("-OO mode: docstring removed" )
828+ self .assertEqual (f .__code__ .co_consts , expected_consts )
828829
829830 @support .cpython_only
830831 def test_remove_unused_consts_no_docstring (self ):
@@ -869,6 +870,9 @@ def test_strip_unused_None(self):
869870 def f1 ():
870871 "docstring"
871872 return 42
873+
874+ if f1 .__doc__ is None :
875+ self .skipTest ("-OO mode: docstring removed" )
872876 self .assertEqual (f1 .__code__ .co_consts , (f1 .__doc__ ,))
873877
874878 # This is a regression test for a CPython specific peephole optimizer
0 commit comments