17db96d56Sopenharmony_ci"""Tests for distutils.command.install_data.""" 27db96d56Sopenharmony_ciimport os 37db96d56Sopenharmony_ciimport unittest 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_cifrom distutils.command.install_data import install_data 67db96d56Sopenharmony_cifrom distutils.tests import support 77db96d56Sopenharmony_cifrom test.support import run_unittest 87db96d56Sopenharmony_ci 97db96d56Sopenharmony_ciclass InstallDataTestCase(support.TempdirManager, 107db96d56Sopenharmony_ci support.LoggingSilencer, 117db96d56Sopenharmony_ci support.EnvironGuard, 127db96d56Sopenharmony_ci unittest.TestCase): 137db96d56Sopenharmony_ci 147db96d56Sopenharmony_ci def test_simple_run(self): 157db96d56Sopenharmony_ci pkg_dir, dist = self.create_dist() 167db96d56Sopenharmony_ci cmd = install_data(dist) 177db96d56Sopenharmony_ci cmd.install_dir = inst = os.path.join(pkg_dir, 'inst') 187db96d56Sopenharmony_ci 197db96d56Sopenharmony_ci # data_files can contain 207db96d56Sopenharmony_ci # - simple files 217db96d56Sopenharmony_ci # - a tuple with a path, and a list of file 227db96d56Sopenharmony_ci one = os.path.join(pkg_dir, 'one') 237db96d56Sopenharmony_ci self.write_file(one, 'xxx') 247db96d56Sopenharmony_ci inst2 = os.path.join(pkg_dir, 'inst2') 257db96d56Sopenharmony_ci two = os.path.join(pkg_dir, 'two') 267db96d56Sopenharmony_ci self.write_file(two, 'xxx') 277db96d56Sopenharmony_ci 287db96d56Sopenharmony_ci cmd.data_files = [one, (inst2, [two])] 297db96d56Sopenharmony_ci self.assertEqual(cmd.get_inputs(), [one, (inst2, [two])]) 307db96d56Sopenharmony_ci 317db96d56Sopenharmony_ci # let's run the command 327db96d56Sopenharmony_ci cmd.ensure_finalized() 337db96d56Sopenharmony_ci cmd.run() 347db96d56Sopenharmony_ci 357db96d56Sopenharmony_ci # let's check the result 367db96d56Sopenharmony_ci self.assertEqual(len(cmd.get_outputs()), 2) 377db96d56Sopenharmony_ci rtwo = os.path.split(two)[-1] 387db96d56Sopenharmony_ci self.assertTrue(os.path.exists(os.path.join(inst2, rtwo))) 397db96d56Sopenharmony_ci rone = os.path.split(one)[-1] 407db96d56Sopenharmony_ci self.assertTrue(os.path.exists(os.path.join(inst, rone))) 417db96d56Sopenharmony_ci cmd.outfiles = [] 427db96d56Sopenharmony_ci 437db96d56Sopenharmony_ci # let's try with warn_dir one 447db96d56Sopenharmony_ci cmd.warn_dir = 1 457db96d56Sopenharmony_ci cmd.ensure_finalized() 467db96d56Sopenharmony_ci cmd.run() 477db96d56Sopenharmony_ci 487db96d56Sopenharmony_ci # let's check the result 497db96d56Sopenharmony_ci self.assertEqual(len(cmd.get_outputs()), 2) 507db96d56Sopenharmony_ci self.assertTrue(os.path.exists(os.path.join(inst2, rtwo))) 517db96d56Sopenharmony_ci self.assertTrue(os.path.exists(os.path.join(inst, rone))) 527db96d56Sopenharmony_ci cmd.outfiles = [] 537db96d56Sopenharmony_ci 547db96d56Sopenharmony_ci # now using root and empty dir 557db96d56Sopenharmony_ci cmd.root = os.path.join(pkg_dir, 'root') 567db96d56Sopenharmony_ci inst3 = os.path.join(cmd.install_dir, 'inst3') 577db96d56Sopenharmony_ci inst4 = os.path.join(pkg_dir, 'inst4') 587db96d56Sopenharmony_ci three = os.path.join(cmd.install_dir, 'three') 597db96d56Sopenharmony_ci self.write_file(three, 'xx') 607db96d56Sopenharmony_ci cmd.data_files = [one, (inst2, [two]), 617db96d56Sopenharmony_ci ('inst3', [three]), 627db96d56Sopenharmony_ci (inst4, [])] 637db96d56Sopenharmony_ci cmd.ensure_finalized() 647db96d56Sopenharmony_ci cmd.run() 657db96d56Sopenharmony_ci 667db96d56Sopenharmony_ci # let's check the result 677db96d56Sopenharmony_ci self.assertEqual(len(cmd.get_outputs()), 4) 687db96d56Sopenharmony_ci self.assertTrue(os.path.exists(os.path.join(inst2, rtwo))) 697db96d56Sopenharmony_ci self.assertTrue(os.path.exists(os.path.join(inst, rone))) 707db96d56Sopenharmony_ci 717db96d56Sopenharmony_cidef test_suite(): 727db96d56Sopenharmony_ci return unittest.TestLoader().loadTestsFromTestCase(InstallDataTestCase) 737db96d56Sopenharmony_ci 747db96d56Sopenharmony_ciif __name__ == "__main__": 757db96d56Sopenharmony_ci run_unittest(test_suite()) 76