| 
									
										
										
										
											2009-12-10 15:35:35 +00:00
										 |  |  | """Tests for distutils.dep_util.""" | 
					
						
							|  |  |  | import unittest | 
					
						
							|  |  |  | import os | 
					
						
							|  |  |  | import time | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from distutils.dep_util import newer, newer_pairwise, newer_group | 
					
						
							|  |  |  | from distutils.errors import DistutilsFileError | 
					
						
							|  |  |  | from distutils.tests import support | 
					
						
							| 
									
										
										
										
											2010-11-06 02:44:43 +00:00
										 |  |  | from test.support import run_unittest | 
					
						
							| 
									
										
										
										
											2009-12-10 15:35:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class DepUtilTestCase(support.TempdirManager, unittest.TestCase): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_newer(self): | 
					
						
							| 
									
										
										
										
											2009-12-10 19:37:05 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-10 15:35:35 +00:00
										 |  |  |         tmpdir = self.mkdtemp() | 
					
						
							| 
									
										
										
										
											2009-12-10 19:37:05 +00:00
										 |  |  |         new_file = os.path.join(tmpdir, 'new') | 
					
						
							|  |  |  |         old_file = os.path.abspath(__file__) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         # Raise DistutilsFileError if 'new_file' does not exist. | 
					
						
							|  |  |  |         self.assertRaises(DistutilsFileError, newer, new_file, old_file) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         # Return true if 'new_file' exists and is more recently modified than | 
					
						
							|  |  |  |         # 'old_file', or if 'new_file' exists and 'old_file' doesn't. | 
					
						
							|  |  |  |         self.write_file(new_file) | 
					
						
							|  |  |  |         self.assertTrue(newer(new_file, 'I_dont_exist')) | 
					
						
							|  |  |  |         self.assertTrue(newer(new_file, old_file)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         # Return false if both exist and 'old_file' is the same age or younger | 
					
						
							|  |  |  |         # than 'new_file'. | 
					
						
							|  |  |  |         self.assertFalse(newer(old_file, new_file)) | 
					
						
							| 
									
										
										
										
											2009-12-10 15:35:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def test_newer_pairwise(self): | 
					
						
							|  |  |  |         tmpdir = self.mkdtemp() | 
					
						
							|  |  |  |         sources = os.path.join(tmpdir, 'sources') | 
					
						
							|  |  |  |         targets = os.path.join(tmpdir, 'targets') | 
					
						
							|  |  |  |         os.mkdir(sources) | 
					
						
							|  |  |  |         os.mkdir(targets) | 
					
						
							|  |  |  |         one = os.path.join(sources, 'one') | 
					
						
							|  |  |  |         two = os.path.join(sources, 'two') | 
					
						
							| 
									
										
										
										
											2009-12-10 19:37:05 +00:00
										 |  |  |         three = os.path.abspath(__file__)    # I am the old file | 
					
						
							| 
									
										
										
										
											2009-12-10 15:35:35 +00:00
										 |  |  |         four = os.path.join(targets, 'four') | 
					
						
							|  |  |  |         self.write_file(one) | 
					
						
							|  |  |  |         self.write_file(two) | 
					
						
							| 
									
										
										
										
											2009-12-10 19:37:05 +00:00
										 |  |  |         self.write_file(four) | 
					
						
							| 
									
										
										
										
											2009-12-10 15:35:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-20 19:04:17 +00:00
										 |  |  |         self.assertEqual(newer_pairwise([one, two], [three, four]), | 
					
						
							|  |  |  |                          ([one],[three])) | 
					
						
							| 
									
										
										
										
											2009-12-10 15:35:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def test_newer_group(self): | 
					
						
							|  |  |  |         tmpdir = self.mkdtemp() | 
					
						
							|  |  |  |         sources = os.path.join(tmpdir, 'sources') | 
					
						
							|  |  |  |         os.mkdir(sources) | 
					
						
							|  |  |  |         one = os.path.join(sources, 'one') | 
					
						
							|  |  |  |         two = os.path.join(sources, 'two') | 
					
						
							|  |  |  |         three = os.path.join(sources, 'three') | 
					
						
							| 
									
										
										
										
											2009-12-10 19:37:05 +00:00
										 |  |  |         old_file = os.path.abspath(__file__) | 
					
						
							| 
									
										
										
										
											2009-12-10 15:35:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-10 19:37:05 +00:00
										 |  |  |         # return true if 'old_file' is out-of-date with respect to any file | 
					
						
							| 
									
										
										
										
											2009-12-10 15:35:35 +00:00
										 |  |  |         # listed in 'sources'. | 
					
						
							|  |  |  |         self.write_file(one) | 
					
						
							|  |  |  |         self.write_file(two) | 
					
						
							|  |  |  |         self.write_file(three) | 
					
						
							| 
									
										
										
										
											2009-12-10 19:37:05 +00:00
										 |  |  |         self.assertTrue(newer_group([one, two, three], old_file)) | 
					
						
							|  |  |  |         self.assertFalse(newer_group([one, two, old_file], three)) | 
					
						
							| 
									
										
										
										
											2009-12-10 15:35:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         # missing handling | 
					
						
							|  |  |  |         os.remove(one) | 
					
						
							| 
									
										
										
										
											2009-12-10 19:37:05 +00:00
										 |  |  |         self.assertRaises(OSError, newer_group, [one, two, old_file], three) | 
					
						
							| 
									
										
										
										
											2009-12-10 15:35:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-10 19:37:05 +00:00
										 |  |  |         self.assertFalse(newer_group([one, two, old_file], three, | 
					
						
							| 
									
										
										
										
											2009-12-10 15:35:35 +00:00
										 |  |  |                                      missing='ignore')) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-10 19:37:05 +00:00
										 |  |  |         self.assertTrue(newer_group([one, two, old_file], three, | 
					
						
							| 
									
										
										
										
											2009-12-10 15:35:35 +00:00
										 |  |  |                                     missing='newer')) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_suite(): | 
					
						
							|  |  |  |     return unittest.makeSuite(DepUtilTestCase) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == "__main__": | 
					
						
							| 
									
										
										
										
											2010-11-06 02:44:43 +00:00
										 |  |  |     run_unittest(test_suite()) |