1a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé"""Tests for distutils.command.install_data.""" 2a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadéimport sys 3a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadéimport os 4a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadéimport unittest 5a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadéimport getpass 6a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé 7a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadéfrom distutils.command.install_data import install_data 8a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadéfrom distutils.tests import support 954274ad96aa033b9f3744dce395d08047467cca9Éric Araujofrom test.test_support import run_unittest 10a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé 11a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadéclass InstallDataTestCase(support.TempdirManager, 12a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé support.LoggingSilencer, 132b06d42db58e333ee932b5718ef2cb14b9ccfa91Tarek Ziadé support.EnvironGuard, 14a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé unittest.TestCase): 15a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé 16a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé def test_simple_run(self): 17a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé pkg_dir, dist = self.create_dist() 18a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé cmd = install_data(dist) 19a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé cmd.install_dir = inst = os.path.join(pkg_dir, 'inst') 20a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé 21a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé # data_files can contain 22a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé # - simple files 23a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé # - a tuple with a path, and a list of file 24a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé one = os.path.join(pkg_dir, 'one') 25a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé self.write_file(one, 'xxx') 26a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé inst2 = os.path.join(pkg_dir, 'inst2') 27a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé two = os.path.join(pkg_dir, 'two') 28a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé self.write_file(two, 'xxx') 29a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé 30a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé cmd.data_files = [one, (inst2, [two])] 312623a37852153363335956afab010cb0beb7e74eEzio Melotti self.assertEqual(cmd.get_inputs(), [one, (inst2, [two])]) 32a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé 33a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé # let's run the command 34a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé cmd.ensure_finalized() 35a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé cmd.run() 36a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé 37a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé # let's check the result 382623a37852153363335956afab010cb0beb7e74eEzio Melotti self.assertEqual(len(cmd.get_outputs()), 2) 39a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé rtwo = os.path.split(two)[-1] 405c8da86f3a515ce1a6d5f27fd15e3c5f4d8e931eBenjamin Peterson self.assertTrue(os.path.exists(os.path.join(inst2, rtwo))) 41a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé rone = os.path.split(one)[-1] 425c8da86f3a515ce1a6d5f27fd15e3c5f4d8e931eBenjamin Peterson self.assertTrue(os.path.exists(os.path.join(inst, rone))) 43a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé cmd.outfiles = [] 44a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé 45a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé # let's try with warn_dir one 46a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé cmd.warn_dir = 1 47a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé cmd.ensure_finalized() 48a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé cmd.run() 49a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé 50a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé # let's check the result 512623a37852153363335956afab010cb0beb7e74eEzio Melotti self.assertEqual(len(cmd.get_outputs()), 2) 525c8da86f3a515ce1a6d5f27fd15e3c5f4d8e931eBenjamin Peterson self.assertTrue(os.path.exists(os.path.join(inst2, rtwo))) 535c8da86f3a515ce1a6d5f27fd15e3c5f4d8e931eBenjamin Peterson self.assertTrue(os.path.exists(os.path.join(inst, rone))) 54a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé cmd.outfiles = [] 55a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé 56a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé # now using root and empty dir 57a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé cmd.root = os.path.join(pkg_dir, 'root') 58a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé inst3 = os.path.join(cmd.install_dir, 'inst3') 59a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé inst4 = os.path.join(pkg_dir, 'inst4') 60a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé three = os.path.join(cmd.install_dir, 'three') 61a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé self.write_file(three, 'xx') 62a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé cmd.data_files = [one, (inst2, [two]), 63a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé ('inst3', [three]), 64a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé (inst4, [])] 65a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé cmd.ensure_finalized() 66a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé cmd.run() 67a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé 68a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé # let's check the result 692623a37852153363335956afab010cb0beb7e74eEzio Melotti self.assertEqual(len(cmd.get_outputs()), 4) 705c8da86f3a515ce1a6d5f27fd15e3c5f4d8e931eBenjamin Peterson self.assertTrue(os.path.exists(os.path.join(inst2, rtwo))) 715c8da86f3a515ce1a6d5f27fd15e3c5f4d8e931eBenjamin Peterson self.assertTrue(os.path.exists(os.path.join(inst, rone))) 72a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé 73a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadédef test_suite(): 74a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé return unittest.makeSuite(InstallDataTestCase) 75a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadé 76a961a0444dd759963f903cafb3d96f6dc9bb7078Tarek Ziadéif __name__ == "__main__": 7754274ad96aa033b9f3744dce395d08047467cca9Éric Araujo run_unittest(test_suite()) 78