comparison tests/run-tests.py @ 21490:588ebd47cd87

run-tests: replace Test.skip() with raise SkipTest All the result functions now raise an Exception. We no longer need these functions and we can inline the raise.
author Gregory Szorc <gregory.szorc@gmail.com>
date Sun, 20 Apr 2014 17:09:52 -0700
parents f245c1fc7e96
children e9faeb21f954
comparison
equal deleted inserted replaced
21489:f245c1fc7e96 21490:588ebd47cd87
456 """Run this test instance. 456 """Run this test instance.
457 457
458 This will return a tuple describing the result of the test. 458 This will return a tuple describing the result of the test.
459 """ 459 """
460 if not os.path.exists(self._path): 460 if not os.path.exists(self._path):
461 return self.skip("Doesn't exist") 461 raise SkipTest("Doesn't exist")
462 462
463 options = self._options 463 options = self._options
464 if not (options.whitelisted and self.name in options.whitelisted): 464 if not (options.whitelisted and self.name in options.whitelisted):
465 if options.blacklist and self.name in options.blacklist: 465 if options.blacklist and self.name in options.blacklist:
466 return self.skip('blacklisted') 466 raise SkipTest('blacklisted')
467 467
468 if options.retest and not os.path.exists('%s.err' % self.name): 468 if options.retest and not os.path.exists('%s.err' % self.name):
469 return self.ignore('not retesting') 469 return self.ignore('not retesting')
470 470
471 if options.keywords: 471 if options.keywords:
477 break 477 break
478 else: 478 else:
479 return self.ignore("doesn't match keyword") 479 return self.ignore("doesn't match keyword")
480 480
481 if not os.path.basename(self.name.lower()).startswith('test-'): 481 if not os.path.basename(self.name.lower()).startswith('test-'):
482 return self.skip('not a test file') 482 raise SkipTest('not a test file')
483 483
484 replacements, port = self._getreplacements() 484 replacements, port = self._getreplacements()
485 env = self._getenv(port) 485 env = self._getenv(port)
486 self._daemonpids.append(env['DAEMON_PIDS']) 486 self._daemonpids.append(env['DAEMON_PIDS'])
487 self._createhgrc(env['HGRCPATH']) 487 self._createhgrc(env['HGRCPATH'])
523 if failed: 523 if failed:
524 self._result = self.fail('hg have failed checking for %s' % 524 self._result = self.fail('hg have failed checking for %s' %
525 failed[-1], ret) 525 failed[-1], ret)
526 else: 526 else:
527 self._skipped = True 527 self._skipped = True
528 self._result = self.skip(missing[-1]) 528 raise SkipTest(missing[-1])
529 elif ret == 'timeout': 529 elif ret == 'timeout':
530 self._result = self.fail('timed out', ret) 530 self._result = self.fail('timed out', ret)
531 elif out != self._refout: 531 elif out != self._refout:
532 info = {} 532 info = {}
533 if not options.nodiff: 533 if not options.nodiff:
582 582
583 self._runner.times.append((self.name, self._duration)) 583 self._runner.times.append((self.name, self._duration))
584 584
585 def _run(self, replacements, env): 585 def _run(self, replacements, env):
586 # This should be implemented in child classes to run tests. 586 # This should be implemented in child classes to run tests.
587 return self._skip('unknown test type') 587 raise SkipTest('unknown test type')
588 588
589 def _getreplacements(self): 589 def _getreplacements(self):
590 port = self._options.port + self._count * 3 590 port = self._options.port + self._count * 3
591 r = [ 591 r = [
592 (r':%s\b' % port, ':$HGPORT'), 592 (r':%s\b' % port, ':$HGPORT'),
684 raise WarnTest(msg) 684 raise WarnTest(msg)
685 else: 685 else:
686 # unittest differentiates between errored and failed. 686 # unittest differentiates between errored and failed.
687 # Failed is denoted by AssertionError (by default at least). 687 # Failed is denoted by AssertionError (by default at least).
688 raise AssertionError(msg) 688 raise AssertionError(msg)
689
690 def skip(self, msg):
691 raise SkipTest(msg)
692 689
693 def ignore(self, msg): 690 def ignore(self, msg):
694 raise IgnoreTest(msg) 691 raise IgnoreTest(msg)
695 692
696 class PythonTest(Test): 693 class PythonTest(Test):