| 
									
										
										
										
											2011-05-19 13:07:25 +02:00
										 |  |  | """Tests for packaging.manifest.""" | 
					
						
							|  |  |  | import os | 
					
						
							|  |  |  | import logging | 
					
						
							|  |  |  | from io import StringIO | 
					
						
							|  |  |  | from packaging.manifest import Manifest | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from packaging.tests import unittest, support | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _MANIFEST = """\
 | 
					
						
							|  |  |  | recursive-include foo *.py   # ok | 
					
						
							|  |  |  | # nothing here | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | recursive-include bar \\ | 
					
						
							|  |  |  |   *.dat   *.txt | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _MANIFEST2 = """\
 | 
					
						
							|  |  |  | README | 
					
						
							|  |  |  | file1 | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ManifestTestCase(support.TempdirManager, | 
					
						
							|  |  |  |                        support.LoggingCatcher, | 
					
						
							|  |  |  |                        unittest.TestCase): | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-23 19:07:56 +02:00
										 |  |  |     def setUp(self): | 
					
						
							|  |  |  |         super(ManifestTestCase, self).setUp() | 
					
						
							|  |  |  |         self.cwd = os.getcwd() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def tearDown(self): | 
					
						
							|  |  |  |         os.chdir(self.cwd) | 
					
						
							|  |  |  |         super(ManifestTestCase, self).tearDown() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-19 13:07:25 +02:00
										 |  |  |     def test_manifest_reader(self): | 
					
						
							|  |  |  |         tmpdir = self.mkdtemp() | 
					
						
							|  |  |  |         MANIFEST = os.path.join(tmpdir, 'MANIFEST.in') | 
					
						
							|  |  |  |         with open(MANIFEST, 'w') as f: | 
					
						
							|  |  |  |             f.write(_MANIFEST) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         manifest = Manifest() | 
					
						
							|  |  |  |         manifest.read_template(MANIFEST) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         warnings = self.get_logs(logging.WARNING) | 
					
						
							|  |  |  |         # the manifest should have been read and 3 warnings issued | 
					
						
							|  |  |  |         # (we didn't provide the files) | 
					
						
							|  |  |  |         self.assertEqual(3, len(warnings)) | 
					
						
							|  |  |  |         for warning in warnings: | 
					
						
							|  |  |  |             self.assertIn('no files found matching', warning) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         # manifest also accepts file-like objects | 
					
						
							|  |  |  |         with open(MANIFEST) as f: | 
					
						
							|  |  |  |             manifest.read_template(f) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         # the manifest should have been read and 3 warnings issued | 
					
						
							|  |  |  |         # (we didn't provide the files) | 
					
						
							|  |  |  |         self.assertEqual(3, len(warnings)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_default_actions(self): | 
					
						
							|  |  |  |         tmpdir = self.mkdtemp() | 
					
						
							|  |  |  |         self.addCleanup(os.chdir, os.getcwd()) | 
					
						
							|  |  |  |         os.chdir(tmpdir) | 
					
						
							|  |  |  |         self.write_file('README', 'xxx') | 
					
						
							|  |  |  |         self.write_file('file1', 'xxx') | 
					
						
							|  |  |  |         content = StringIO(_MANIFEST2) | 
					
						
							|  |  |  |         manifest = Manifest() | 
					
						
							|  |  |  |         manifest.read_template(content) | 
					
						
							|  |  |  |         self.assertEqual(['README', 'file1'], manifest.files) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_suite(): | 
					
						
							|  |  |  |     return unittest.makeSuite(ManifestTestCase) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  |     unittest.main(defaultTest='test_suite') |