17db96d56Sopenharmony_ci"""Tests for the lll script in the Tools/script directory.""" 27db96d56Sopenharmony_ci 37db96d56Sopenharmony_ciimport os 47db96d56Sopenharmony_ciimport tempfile 57db96d56Sopenharmony_cifrom test import support 67db96d56Sopenharmony_cifrom test.support import os_helper 77db96d56Sopenharmony_cifrom test.test_tools import skip_if_missing, import_tool 87db96d56Sopenharmony_ciimport unittest 97db96d56Sopenharmony_ci 107db96d56Sopenharmony_ciskip_if_missing() 117db96d56Sopenharmony_ci 127db96d56Sopenharmony_ci 137db96d56Sopenharmony_ciclass lllTests(unittest.TestCase): 147db96d56Sopenharmony_ci 157db96d56Sopenharmony_ci def setUp(self): 167db96d56Sopenharmony_ci self.lll = import_tool('lll') 177db96d56Sopenharmony_ci 187db96d56Sopenharmony_ci @os_helper.skip_unless_symlink 197db96d56Sopenharmony_ci def test_lll_multiple_dirs(self): 207db96d56Sopenharmony_ci with tempfile.TemporaryDirectory() as dir1, \ 217db96d56Sopenharmony_ci tempfile.TemporaryDirectory() as dir2: 227db96d56Sopenharmony_ci fn1 = os.path.join(dir1, 'foo1') 237db96d56Sopenharmony_ci fn2 = os.path.join(dir2, 'foo2') 247db96d56Sopenharmony_ci for fn, dir in (fn1, dir1), (fn2, dir2): 257db96d56Sopenharmony_ci open(fn, 'wb').close() 267db96d56Sopenharmony_ci os.symlink(fn, os.path.join(dir, 'symlink')) 277db96d56Sopenharmony_ci 287db96d56Sopenharmony_ci with support.captured_stdout() as output: 297db96d56Sopenharmony_ci self.lll.main([dir1, dir2]) 307db96d56Sopenharmony_ci prefix = '\\\\?\\' if os.name == 'nt' else '' 317db96d56Sopenharmony_ci self.assertEqual(output.getvalue(), 327db96d56Sopenharmony_ci f'{dir1}:\n' 337db96d56Sopenharmony_ci f'symlink -> {prefix}{fn1}\n' 347db96d56Sopenharmony_ci f'\n' 357db96d56Sopenharmony_ci f'{dir2}:\n' 367db96d56Sopenharmony_ci f'symlink -> {prefix}{fn2}\n' 377db96d56Sopenharmony_ci ) 387db96d56Sopenharmony_ci 397db96d56Sopenharmony_ci 407db96d56Sopenharmony_ciif __name__ == '__main__': 417db96d56Sopenharmony_ci unittest.main() 42