@@ -509,47 +509,50 @@ def test_releaseOldEquations(self):
509
509
def test_show (self ):
510
510
"""Verify output from the show function.
511
511
"""
512
- sys .stdout = cStringIO .StringIO ()
513
- self .m .show ()
514
- self .assertEqual ('' , sys .stdout .getvalue ())
515
- sys .stdout = cStringIO .StringIO ()
512
+ def capture_show (* args , ** kwargs ):
513
+ sys .stdout = cStringIO .StringIO ()
514
+ self .m .show (* args , ** kwargs )
515
+ rv = sys .stdout .getvalue ()
516
+ sys .stdout = sys .__stdout__
517
+ return rv
518
+ self .assertEqual ('' , capture_show ())
516
519
self .m ._newParameter ('x' , 1 )
517
520
self .m ._newParameter ('y' , 2 )
518
- self .m .show ()
519
- out1 = sys .stdout .getvalue ()
521
+ out1 = capture_show ()
520
522
lines1 = out1 .strip ().split ('\n ' )
521
523
self .assertEqual (4 , len (lines1 ))
522
524
self .assertTrue ('Parameters' in lines1 )
523
525
self .assertFalse ('Constraints' in lines1 )
524
526
self .assertFalse ('Restraints' in lines1 )
525
527
self .m ._newParameter ('z' , 7 )
526
528
self .m .constrain ('y' , '3 * z' )
527
- sys .stdout = cStringIO .StringIO ()
528
- self .m .show ()
529
- out2 = sys .stdout .getvalue ()
529
+ out2 = capture_show ()
530
530
lines2 = out2 .strip ().split ('\n ' )
531
531
self .assertEqual (9 , len (lines2 ))
532
532
self .assertTrue ('Parameters' in lines2 )
533
533
self .assertTrue ('Constraints' in lines2 )
534
534
self .assertFalse ('Restraints' in lines2 )
535
535
self .m .restrain ('z' , lb = 2 , ub = 3 , sig = 0.001 )
536
- sys .stdout = cStringIO .StringIO ()
537
- self .m .show ()
538
- out3 = sys .stdout .getvalue ()
536
+ out3 = capture_show ()
539
537
lines3 = out3 .strip ().split ('\n ' )
540
538
self .assertEqual (13 , len (lines3 ))
541
539
self .assertTrue ('Parameters' in lines3 )
542
540
self .assertTrue ('Constraints' in lines3 )
543
541
self .assertTrue ('Restraints' in lines3 )
544
- sys .stdout = cStringIO .StringIO ()
545
- self .m .show (pattern = 'x' )
546
- out4 = sys .stdout .getvalue ()
542
+ out4 = capture_show (pattern = 'x' )
547
543
lines4 = out4 .strip ().split ('\n ' )
548
544
self .assertEqual (9 , len (lines4 ))
549
- sys .stdout = cStringIO .StringIO ()
550
- self .m .show (pattern = '^' )
551
- out5 = sys .stdout .getvalue ()
545
+ out5 = capture_show (pattern = '^' )
552
546
self .assertEqual (out3 , out5 )
547
+ # check output with another level of hierarchy
548
+ self .m ._addObject (RecipeOrganizer ("foo" ), self .m ._containers )
549
+ self .m .foo ._newParameter ("bar" , 13 )
550
+ out6 = capture_show ()
551
+ self .assertTrue ("foo.bar" in out6 )
552
+ # filter out foo.bar
553
+ out7 = capture_show ('^(?!foo).' )
554
+ self .assertFalse ("foo.bar" in out7 )
555
+ self .assertEqual (out3 , out7 )
553
556
return
554
557
555
558
# ----------------------------------------------------------------------------
0 commit comments