mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	
		
			
	
	
		
			120 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			120 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | import unittest | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestHashing(object): | ||
|  |     """Used as a mixin for TestCase""" | ||
|  | 
 | ||
|  |     # Check for a valid __hash__ implementation | ||
|  |     def test_hash(self): | ||
|  |         for obj_1, obj_2 in self.eq_pairs: | ||
|  |             try: | ||
|  |                 if not hash(obj_1) == hash(obj_2): | ||
|  |                     self.fail("%r and %r do not hash equal" % (obj_1, obj_2)) | ||
|  |             except KeyboardInterrupt: | ||
|  |                 raise | ||
|  |             except Exception, e: | ||
|  |                 self.fail("Problem hashing %r and %r: %s" % (obj_1, obj_2, e)) | ||
|  | 
 | ||
|  |         for obj_1, obj_2 in self.ne_pairs: | ||
|  |             try: | ||
|  |                 if hash(obj_1) == hash(obj_2): | ||
|  |                     self.fail("%s and %s hash equal, but shouldn't" % | ||
|  |                               (obj_1, obj_2)) | ||
|  |             except KeyboardInterrupt: | ||
|  |                 raise | ||
|  |             except Exception, e: | ||
|  |                 self.fail("Problem hashing %s and %s: %s" % (obj_1, obj_2, e)) | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestEquality(object): | ||
|  |     """Used as a mixin for TestCase""" | ||
|  | 
 | ||
|  |     # Check for a valid __eq__ implementation | ||
|  |     def test_eq(self): | ||
|  |         for obj_1, obj_2 in self.eq_pairs: | ||
|  |             self.assertEqual(obj_1, obj_2) | ||
|  |             self.assertEqual(obj_2, obj_1) | ||
|  | 
 | ||
|  |     # Check for a valid __ne__ implementation | ||
|  |     def test_ne(self): | ||
|  |         for obj_1, obj_2 in self.ne_pairs: | ||
|  |             self.assertNotEqual(obj_1, obj_2) | ||
|  |             self.assertNotEqual(obj_2, obj_1) | ||
|  | 
 | ||
|  | 
 | ||
|  | class LoggingResult(unittest.TestResult): | ||
|  |     def __init__(self, log): | ||
|  |         self._events = log | ||
|  |         super(LoggingResult, self).__init__() | ||
|  | 
 | ||
|  |     def startTest(self, test): | ||
|  |         self._events.append('startTest') | ||
|  |         super(LoggingResult, self).startTest(test) | ||
|  | 
 | ||
|  |     def startTestRun(self): | ||
|  |         self._events.append('startTestRun') | ||
|  |         super(LoggingResult, self).startTestRun() | ||
|  | 
 | ||
|  |     def stopTest(self, test): | ||
|  |         self._events.append('stopTest') | ||
|  |         super(LoggingResult, self).stopTest(test) | ||
|  | 
 | ||
|  |     def stopTestRun(self): | ||
|  |         self._events.append('stopTestRun') | ||
|  |         super(LoggingResult, self).stopTestRun() | ||
|  | 
 | ||
|  |     def addFailure(self, *args): | ||
|  |         self._events.append('addFailure') | ||
|  |         super(LoggingResult, self).addFailure(*args) | ||
|  | 
 | ||
|  |     def addSuccess(self, *args): | ||
|  |         self._events.append('addSuccess') | ||
|  |         super(LoggingResult, self).addSuccess(*args) | ||
|  | 
 | ||
|  |     def addError(self, *args): | ||
|  |         self._events.append('addError') | ||
|  |         super(LoggingResult, self).addError(*args) | ||
|  | 
 | ||
|  |     def addSkip(self, *args): | ||
|  |         self._events.append('addSkip') | ||
|  |         super(LoggingResult, self).addSkip(*args) | ||
|  | 
 | ||
|  |     def addExpectedFailure(self, *args): | ||
|  |         self._events.append('addExpectedFailure') | ||
|  |         super(LoggingResult, self).addExpectedFailure(*args) | ||
|  | 
 | ||
|  |     def addUnexpectedSuccess(self, *args): | ||
|  |         self._events.append('addUnexpectedSuccess') | ||
|  |         super(LoggingResult, self).addUnexpectedSuccess(*args) | ||
|  | 
 | ||
|  | 
 | ||
|  | class ResultWithNoStartTestRunStopTestRun(object): | ||
|  |     """An object honouring TestResult before startTestRun/stopTestRun.""" | ||
|  | 
 | ||
|  |     def __init__(self): | ||
|  |         self.failures = [] | ||
|  |         self.errors = [] | ||
|  |         self.testsRun = 0 | ||
|  |         self.skipped = [] | ||
|  |         self.expectedFailures = [] | ||
|  |         self.unexpectedSuccesses = [] | ||
|  |         self.shouldStop = False | ||
|  | 
 | ||
|  |     def startTest(self, test): | ||
|  |         pass | ||
|  | 
 | ||
|  |     def stopTest(self, test): | ||
|  |         pass | ||
|  | 
 | ||
|  |     def addError(self, test): | ||
|  |         pass | ||
|  | 
 | ||
|  |     def addFailure(self, test): | ||
|  |         pass | ||
|  | 
 | ||
|  |     def addSuccess(self, test): | ||
|  |         pass | ||
|  | 
 | ||
|  |     def wasSuccessful(self): | ||
|  |         return True |