mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	SequenceMatcher(None, [], []).get_grouped_opcodes() now returns a generator
that behaves as if both lists has an empty string in each of them. Closes bug #979794 (and duplicate bug #980117).
This commit is contained in:
		
							parent
							
								
									b8e1717041
								
							
						
					
					
						commit
						d2c5b4b549
					
				
					 3 changed files with 13 additions and 0 deletions
				
			
		|  | @ -572,6 +572,8 @@ def get_grouped_opcodes(self, n=3): | ||||||
|         """ |         """ | ||||||
| 
 | 
 | ||||||
|         codes = self.get_opcodes() |         codes = self.get_opcodes() | ||||||
|  |         if not codes: | ||||||
|  |             codes = [("equal", 0, 1, 0, 1)] | ||||||
|         # Fixup leading and trailing groups if they show no changes. |         # Fixup leading and trailing groups if they show no changes. | ||||||
|         if codes[0][0] == 'equal': |         if codes[0][0] == 'equal': | ||||||
|             tag, i1, i2, j1, j2 = codes[0] |             tag, i1, i2, j1, j2 = codes[0] | ||||||
|  |  | ||||||
|  | @ -12,6 +12,13 @@ def test_ratio_for_null_seqn(self): | ||||||
|         self.assertEqual(s.quick_ratio(), 1) |         self.assertEqual(s.quick_ratio(), 1) | ||||||
|         self.assertEqual(s.real_quick_ratio(), 1) |         self.assertEqual(s.real_quick_ratio(), 1) | ||||||
| 
 | 
 | ||||||
|  |     def test_comparing_empty_lists(self): | ||||||
|  |         # Check fix for bug #979794 | ||||||
|  |         group_gen = difflib.SequenceMatcher(None, [], []).get_grouped_opcodes() | ||||||
|  |         self.assertRaises(StopIteration, group_gen.next) | ||||||
|  |         diff_gen = difflib.unified_diff([], []) | ||||||
|  |         self.assertRaises(StopIteration, diff_gen.next) | ||||||
|  | 
 | ||||||
| Doctests = doctest.DocTestSuite(difflib) | Doctests = doctest.DocTestSuite(difflib) | ||||||
| 
 | 
 | ||||||
| test_support.run_unittest(TestSFbugs, Doctests) | test_support.run_unittest(TestSFbugs, Doctests) | ||||||
|  |  | ||||||
|  | @ -29,6 +29,10 @@ Extension modules | ||||||
| Library | Library | ||||||
| ------- | ------- | ||||||
| 
 | 
 | ||||||
|  | - Bug #979794: difflib.get_grouped_opcodes() now handles the case of when it is | ||||||
|  |   comparing two empty lists.  Was affecting both context_diff() and | ||||||
|  |   unified_diff().  Was also a duplicate of bug #980117. | ||||||
|  | 
 | ||||||
| - Bug #980938: smtplib now prints debug output to sys.stderr. | - Bug #980938: smtplib now prints debug output to sys.stderr. | ||||||
| 
 | 
 | ||||||
| - Bug #930024: posixpath.realpath() now handles infinite loops in symlinks by | - Bug #930024: posixpath.realpath() now handles infinite loops in symlinks by | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Brett Cannon
						Brett Cannon