mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	GH-103517: Improve tests for pathlib.Path.walk() (GH-103518)
				
					
				
			This commit is contained in:
		
							parent
							
								
									2b6f5c3483
								
							
						
					
					
						commit
						0097c36e07
					
				
					 1 changed files with 45 additions and 32 deletions
				
			
		|  | @ -2702,20 +2702,20 @@ def setUp(self): | ||||||
|             del self.sub2_tree[1][:1] |             del self.sub2_tree[1][:1] | ||||||
| 
 | 
 | ||||||
|     def test_walk_topdown(self): |     def test_walk_topdown(self): | ||||||
|         all = list(self.walk_path.walk()) |         walker = self.walk_path.walk() | ||||||
| 
 |         entry = next(walker) | ||||||
|         self.assertEqual(len(all), 4) |         entry[1].sort()  # Ensure we visit SUB1 before SUB2 | ||||||
|         # We can't know which order SUB1 and SUB2 will appear in. |         self.assertEqual(entry, (self.walk_path, ["SUB1", "SUB2"], ["tmp1"])) | ||||||
|         # Not flipped:  TESTFN, SUB1, SUB11, SUB2 |         entry = next(walker) | ||||||
|         #     flipped:  TESTFN, SUB2, SUB1, SUB11 |         self.assertEqual(entry, (self.sub1_path, ["SUB11"], ["tmp2"])) | ||||||
|         flipped = all[0][1][0] != "SUB1" |         entry = next(walker) | ||||||
|         all[0][1].sort() |         self.assertEqual(entry, (self.sub11_path, [], [])) | ||||||
|         all[3 - 2 * flipped][-1].sort() |         entry = next(walker) | ||||||
|         all[3 - 2 * flipped][1].sort() |         entry[1].sort() | ||||||
|         self.assertEqual(all[0], (self.walk_path, ["SUB1", "SUB2"], ["tmp1"])) |         entry[2].sort() | ||||||
|         self.assertEqual(all[1 + flipped], (self.sub1_path, ["SUB11"], ["tmp2"])) |         self.assertEqual(entry, self.sub2_tree) | ||||||
|         self.assertEqual(all[2 + flipped], (self.sub11_path, [], [])) |         with self.assertRaises(StopIteration): | ||||||
|         self.assertEqual(all[3 - 2 * flipped], self.sub2_tree) |             next(walker) | ||||||
| 
 | 
 | ||||||
|     def test_walk_prune(self, walk_path=None): |     def test_walk_prune(self, walk_path=None): | ||||||
|         if walk_path is None: |         if walk_path is None: | ||||||
|  | @ -2739,24 +2739,37 @@ def test_file_like_path(self): | ||||||
|         self.test_walk_prune(FakePath(self.walk_path).__fspath__()) |         self.test_walk_prune(FakePath(self.walk_path).__fspath__()) | ||||||
| 
 | 
 | ||||||
|     def test_walk_bottom_up(self): |     def test_walk_bottom_up(self): | ||||||
|         all = list(self.walk_path.walk( top_down=False)) |         seen_testfn = seen_sub1 = seen_sub11 = seen_sub2 = False | ||||||
| 
 |         for path, dirnames, filenames in self.walk_path.walk(top_down=False): | ||||||
|         self.assertEqual(len(all), 4, all) |             if path == self.walk_path: | ||||||
|         # We can't know which order SUB1 and SUB2 will appear in. |                 self.assertFalse(seen_testfn) | ||||||
|         # Not flipped:  SUB11, SUB1, SUB2, TESTFN |                 self.assertTrue(seen_sub1) | ||||||
|         #     flipped:  SUB2, SUB11, SUB1, TESTFN |                 self.assertTrue(seen_sub2) | ||||||
|         flipped = all[3][1][0] != "SUB1" |                 self.assertEqual(sorted(dirnames), ["SUB1", "SUB2"]) | ||||||
|         all[3][1].sort() |                 self.assertEqual(filenames, ["tmp1"]) | ||||||
|         all[2 - 2 * flipped][-1].sort() |                 seen_testfn = True | ||||||
|         all[2 - 2 * flipped][1].sort() |             elif path == self.sub1_path: | ||||||
|         self.assertEqual(all[3], |                 self.assertFalse(seen_testfn) | ||||||
|                          (self.walk_path, ["SUB1", "SUB2"], ["tmp1"])) |                 self.assertFalse(seen_sub1) | ||||||
|         self.assertEqual(all[flipped], |                 self.assertTrue(seen_sub11) | ||||||
|                          (self.sub11_path, [], [])) |                 self.assertEqual(dirnames, ["SUB11"]) | ||||||
|         self.assertEqual(all[flipped + 1], |                 self.assertEqual(filenames, ["tmp2"]) | ||||||
|                          (self.sub1_path, ["SUB11"], ["tmp2"])) |                 seen_sub1 = True | ||||||
|         self.assertEqual(all[2 - 2 * flipped], |             elif path == self.sub11_path: | ||||||
|                          self.sub2_tree) |                 self.assertFalse(seen_sub1) | ||||||
|  |                 self.assertFalse(seen_sub11) | ||||||
|  |                 self.assertEqual(dirnames, []) | ||||||
|  |                 self.assertEqual(filenames, []) | ||||||
|  |                 seen_sub11 = True | ||||||
|  |             elif path == self.sub2_path: | ||||||
|  |                 self.assertFalse(seen_testfn) | ||||||
|  |                 self.assertFalse(seen_sub2) | ||||||
|  |                 self.assertEqual(sorted(dirnames), sorted(self.sub2_tree[1])) | ||||||
|  |                 self.assertEqual(sorted(filenames), sorted(self.sub2_tree[2])) | ||||||
|  |                 seen_sub2 = True | ||||||
|  |             else: | ||||||
|  |                 raise AssertionError(f"Unexpected path: {path}") | ||||||
|  |         self.assertTrue(seen_testfn) | ||||||
| 
 | 
 | ||||||
|     @os_helper.skip_unless_symlink |     @os_helper.skip_unless_symlink | ||||||
|     def test_walk_follow_symlinks(self): |     def test_walk_follow_symlinks(self): | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Barney Gale
						Barney Gale