mirror of
				https://github.com/python/cpython.git
				synced 2025-10-25 02:43:41 +00:00 
			
		
		
		
	Issue 7832. Document changes to unittest.TestCase.assertSameElements and assertItemsEqual
This commit is contained in:
		
							parent
							
								
									91c9da34bc
								
							
						
					
					
						commit
						abd91d5f2c
					
				
					 4 changed files with 32 additions and 13 deletions
				
			
		|  | @ -785,7 +785,7 @@ Test cases | ||||||
|       will be included in the error message. This method is used by default |       will be included in the error message. This method is used by default | ||||||
|       when comparing strings with :meth:`assertEqual`. |       when comparing strings with :meth:`assertEqual`. | ||||||
| 
 | 
 | ||||||
|       If specified *msg* will be used as the error message on failure. |       If specified, *msg* will be used as the error message on failure. | ||||||
| 
 | 
 | ||||||
|       .. versionadded:: 3.1 |       .. versionadded:: 3.1 | ||||||
| 
 | 
 | ||||||
|  | @ -806,7 +806,7 @@ Test cases | ||||||
|       Tests that *first* is or is not in *second* with an explanatory error |       Tests that *first* is or is not in *second* with an explanatory error | ||||||
|       message as appropriate. |       message as appropriate. | ||||||
| 
 | 
 | ||||||
|       If specified *msg* will be used as the error message on failure. |       If specified, *msg* will be used as the error message on failure. | ||||||
| 
 | 
 | ||||||
|       .. versionadded:: 3.1 |       .. versionadded:: 3.1 | ||||||
| 
 | 
 | ||||||
|  | @ -819,12 +819,31 @@ Test cases | ||||||
| 
 | 
 | ||||||
|       Duplicate elements are ignored when comparing *actual* and *expected*. |       Duplicate elements are ignored when comparing *actual* and *expected*. | ||||||
|       It is the equivalent of ``assertEqual(set(expected), set(actual))`` |       It is the equivalent of ``assertEqual(set(expected), set(actual))`` | ||||||
|       but it works with sequences of unhashable objects as well. |       but it works with sequences of unhashable objects as well. Because | ||||||
|  |       duplicates are ignored, this method has been deprecated in favour of | ||||||
|  |       :meth:`assertItemsEqual`. | ||||||
| 
 | 
 | ||||||
|       If specified *msg* will be used as the error message on failure. |       If specified, *msg* will be used as the error message on failure. | ||||||
| 
 | 
 | ||||||
|       .. versionadded:: 3.1 |       .. versionadded:: 3.1 | ||||||
| 
 | 
 | ||||||
|  |       .. deprecated:: 3.2 | ||||||
|  | 
 | ||||||
|  |    .. method:: assertItemsEqual(actual, expected, msg=None) | ||||||
|  | 
 | ||||||
|  |       Test that sequence *expected* contains the same elements as *actual*, | ||||||
|  |       regardless of their order. When they don't, an error message listing the | ||||||
|  |       differences between the sequences will be generated. | ||||||
|  | 
 | ||||||
|  |       Duplicate elements are *not* ignored when comparing *actual* and | ||||||
|  |       *expected*. It verifies if each element has the same count in both | ||||||
|  |       sequences. It is the equivalent of ``assertEqual(sorted(expected), | ||||||
|  |       sorted(actual))`` but it works with sequences of unhashable objects as | ||||||
|  |       well. | ||||||
|  | 
 | ||||||
|  |       If specified, *msg* will be used as the error message on failure. | ||||||
|  | 
 | ||||||
|  |       .. versionadded:: 3.2 | ||||||
| 
 | 
 | ||||||
|    .. method:: assertSetEqual(set1, set2, msg=None) |    .. method:: assertSetEqual(set1, set2, msg=None) | ||||||
| 
 | 
 | ||||||
|  | @ -835,7 +854,7 @@ Test cases | ||||||
|       Fails if either of *set1* or *set2* does not have a :meth:`set.difference` |       Fails if either of *set1* or *set2* does not have a :meth:`set.difference` | ||||||
|       method. |       method. | ||||||
| 
 | 
 | ||||||
|       If specified *msg* will be used as the error message on failure. |       If specified, *msg* will be used as the error message on failure. | ||||||
| 
 | 
 | ||||||
|       .. versionadded:: 3.1 |       .. versionadded:: 3.1 | ||||||
| 
 | 
 | ||||||
|  | @ -847,7 +866,7 @@ Test cases | ||||||
|       method will be used by default to compare dictionaries in |       method will be used by default to compare dictionaries in | ||||||
|       calls to :meth:`assertEqual`. |       calls to :meth:`assertEqual`. | ||||||
| 
 | 
 | ||||||
|       If specified *msg* will be used as the error message on failure. |       If specified, *msg* will be used as the error message on failure. | ||||||
| 
 | 
 | ||||||
|       .. versionadded:: 3.1 |       .. versionadded:: 3.1 | ||||||
| 
 | 
 | ||||||
|  | @ -858,7 +877,7 @@ Test cases | ||||||
|       superset of those in *expected*.  If not, an error message listing |       superset of those in *expected*.  If not, an error message listing | ||||||
|       the missing keys and mismatched values is generated. |       the missing keys and mismatched values is generated. | ||||||
| 
 | 
 | ||||||
|       If specified *msg* will be used as the error message on failure. |       If specified, *msg* will be used as the error message on failure. | ||||||
| 
 | 
 | ||||||
|       .. versionadded:: 3.1 |       .. versionadded:: 3.1 | ||||||
| 
 | 
 | ||||||
|  | @ -872,7 +891,7 @@ Test cases | ||||||
|       These methods are used by default when comparing lists or tuples with |       These methods are used by default when comparing lists or tuples with | ||||||
|       :meth:`assertEqual`. |       :meth:`assertEqual`. | ||||||
| 
 | 
 | ||||||
|       If specified *msg* will be used as the error message on failure. |       If specified, *msg* will be used as the error message on failure. | ||||||
| 
 | 
 | ||||||
|       .. versionadded:: 3.1 |       .. versionadded:: 3.1 | ||||||
| 
 | 
 | ||||||
|  | @ -884,7 +903,7 @@ Test cases | ||||||
|       be raised.  If the sequences are different an error message is |       be raised.  If the sequences are different an error message is | ||||||
|       constructed that shows the difference between the two. |       constructed that shows the difference between the two. | ||||||
| 
 | 
 | ||||||
|       If specified *msg* will be used as the error message on failure. |       If specified, *msg* will be used as the error message on failure. | ||||||
| 
 | 
 | ||||||
|       This method is used to implement :meth:`assertListEqual` and |       This method is used to implement :meth:`assertListEqual` and | ||||||
|       :meth:`assertTupleEqual`. |       :meth:`assertTupleEqual`. | ||||||
|  | @ -1225,7 +1244,7 @@ Loading and running tests | ||||||
| 
 | 
 | ||||||
|    :class:`TestLoader` objects have the following methods: |    :class:`TestLoader` objects have the following methods: | ||||||
| 
 | 
 | ||||||
| 
 | a | ||||||
|    .. method:: loadTestsFromTestCase(testCaseClass) |    .. method:: loadTestsFromTestCase(testCaseClass) | ||||||
| 
 | 
 | ||||||
|       Return a suite of all tests cases contained in the :class:`TestCase`\ -derived |       Return a suite of all tests cases contained in the :class:`TestCase`\ -derived | ||||||
|  |  | ||||||
|  | @ -960,7 +960,7 @@ GvR worked on merging them into Python's version of :mod:`unittest`. | ||||||
| * :meth:`assertIn` and :meth:`assertNotIn` tests whether | * :meth:`assertIn` and :meth:`assertNotIn` tests whether | ||||||
|   *first* is or is not in  *second*. |   *first* is or is not in  *second*. | ||||||
| 
 | 
 | ||||||
| * :meth:`assertSameElements` tests whether two provided sequences | * :meth:`assertItemsEqual` tests whether two provided sequences | ||||||
|   contain the same elements. |   contain the same elements. | ||||||
| 
 | 
 | ||||||
| * :meth:`assertSetEqual` compares whether two sets are equal, and | * :meth:`assertSetEqual` compares whether two sets are equal, and | ||||||
|  |  | ||||||
|  | @ -131,7 +131,7 @@ def test_strict(self): | ||||||
|             if isinstance(expect, dict): |             if isinstance(expect, dict): | ||||||
|                 # test dict interface |                 # test dict interface | ||||||
|                 self.assertEqual(len(expect), len(fs)) |                 self.assertEqual(len(expect), len(fs)) | ||||||
|                 self.assertEqual(norm(expect.keys()), norm(fs.keys())) |                 self.assertItemsEqual(expect.keys(), fs.keys()) | ||||||
|                 ##self.assertEqual(norm(expect.values()), norm(fs.values())) |                 ##self.assertEqual(norm(expect.values()), norm(fs.values())) | ||||||
|                 ##self.assertEqual(norm(expect.items()), norm(fs.items())) |                 ##self.assertEqual(norm(expect.items()), norm(fs.items())) | ||||||
|                 self.assertEqual(fs.getvalue("nonexistent field", "default"), "default") |                 self.assertEqual(fs.getvalue("nonexistent field", "default"), "default") | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| #!/usr/bin/env python3 | #!/usr/bin/env python | ||||||
| 
 | 
 | ||||||
| # Make a reST file compliant to our pre-commit hook. | # Make a reST file compliant to our pre-commit hook. | ||||||
| # Currently just remove trailing whitespace. | # Currently just remove trailing whitespace. | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Michael Foord
						Michael Foord