17db96d56Sopenharmony_ci"""Tests for the pdeps script in the Tools directory.""" 27db96d56Sopenharmony_ci 37db96d56Sopenharmony_ciimport os 47db96d56Sopenharmony_ciimport unittest 57db96d56Sopenharmony_ciimport tempfile 67db96d56Sopenharmony_ci 77db96d56Sopenharmony_cifrom test.test_tools import skip_if_missing, import_tool 87db96d56Sopenharmony_ci 97db96d56Sopenharmony_ciskip_if_missing() 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ci 127db96d56Sopenharmony_ciclass PdepsTests(unittest.TestCase): 137db96d56Sopenharmony_ci 147db96d56Sopenharmony_ci @classmethod 157db96d56Sopenharmony_ci def setUpClass(self): 167db96d56Sopenharmony_ci self.pdeps = import_tool('pdeps') 177db96d56Sopenharmony_ci 187db96d56Sopenharmony_ci def test_process_errors(self): 197db96d56Sopenharmony_ci # Issue #14492: m_import.match(line) can be None. 207db96d56Sopenharmony_ci with tempfile.TemporaryDirectory() as tmpdir: 217db96d56Sopenharmony_ci fn = os.path.join(tmpdir, 'foo') 227db96d56Sopenharmony_ci with open(fn, 'w', encoding='utf-8') as stream: 237db96d56Sopenharmony_ci stream.write("#!/this/will/fail") 247db96d56Sopenharmony_ci self.pdeps.process(fn, {}) 257db96d56Sopenharmony_ci 267db96d56Sopenharmony_ci def test_inverse_attribute_error(self): 277db96d56Sopenharmony_ci # Issue #14492: this used to fail with an AttributeError. 287db96d56Sopenharmony_ci self.pdeps.inverse({'a': []}) 297db96d56Sopenharmony_ci 307db96d56Sopenharmony_ci 317db96d56Sopenharmony_ciif __name__ == '__main__': 327db96d56Sopenharmony_ci unittest.main() 33