comparison tests/run-tests.py @ 21522:eeaec308ad5f

run-tests: raise WarnTest outside of Test.fail()
author Gregory Szorc <gregory.szorc@gmail.com>
date Tue, 22 Apr 2014 13:25:17 -0700
parents 855f092c96e5
children 9fb6f328576a
comparison
equal deleted inserted replaced
21521:855f092c96e5 21522:eeaec308ad5f
524 else: 524 else:
525 self._skipped = True 525 self._skipped = True
526 raise SkipTest(missing[-1]) 526 raise SkipTest(missing[-1])
527 elif ret == 'timeout': 527 elif ret == 'timeout':
528 self.fail('timed out', ret) 528 self.fail('timed out', ret)
529 elif ret is False:
530 raise WarnTest('no result code from test')
529 elif out != self._refout: 531 elif out != self._refout:
530 # The result object handles diff calculation for us. 532 # The result object handles diff calculation for us.
531 self._result.addOutputMismatch(self, out, self._refout) 533 self._result.addOutputMismatch(self, out, self._refout)
532 534
533 if ret: 535 if ret:
642 'have an = for assignment' % opt) 644 'have an = for assignment' % opt)
643 hgrc.write('[%s]\n%s\n' % (section, key)) 645 hgrc.write('[%s]\n%s\n' % (section, key))
644 hgrc.close() 646 hgrc.close()
645 647
646 def fail(self, msg, ret): 648 def fail(self, msg, ret):
647 warned = ret is False
648 if (not ret and self._interactive and 649 if (not ret and self._interactive and
649 os.path.exists(self.errpath)): 650 os.path.exists(self.errpath)):
650 iolock.acquire() 651 iolock.acquire()
651 print 'Accept this change? [n] ', 652 print 'Accept this change? [n] ',
652 answer = sys.stdin.readline().strip() 653 answer = sys.stdin.readline().strip()
657 else: 658 else:
658 rename(self.errpath, '%s.out' % self.path) 659 rename(self.errpath, '%s.out' % self.path)
659 660
660 return '.', self.name, '' 661 return '.', self.name, ''
661 662
662 if warned: 663 # unittest differentiates between errored and failed.
663 raise WarnTest(msg) 664 # Failed is denoted by AssertionError (by default at least).
664 else: 665 raise AssertionError(msg)
665 # unittest differentiates between errored and failed.
666 # Failed is denoted by AssertionError (by default at least).
667 raise AssertionError(msg)
668 666
669 class PythonTest(Test): 667 class PythonTest(Test):
670 """A Python-based test.""" 668 """A Python-based test."""
671 669
672 @property 670 @property