10c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi"""Tests for distutils.command.install_headers."""
20c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yiimport sys
30c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yiimport os
40c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yiimport unittest
50c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yiimport getpass
60c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
70c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yifrom distutils.command.install_headers import install_headers
80c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yifrom distutils.tests import support
90c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yifrom test.test_support import run_unittest
100c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
110c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yiclass InstallHeadersTestCase(support.TempdirManager,
120c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi                             support.LoggingSilencer,
130c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi                             support.EnvironGuard,
140c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi                             unittest.TestCase):
150c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
160c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi    def test_simple_run(self):
170c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi        # we have two headers
180c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi        header_list = self.mkdtemp()
190c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi        header1 = os.path.join(header_list, 'header1')
200c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi        header2 = os.path.join(header_list, 'header2')
210c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi        self.write_file(header1)
220c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi        self.write_file(header2)
230c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi        headers = [header1, header2]
240c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
250c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi        pkg_dir, dist = self.create_dist(headers=headers)
260c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi        cmd = install_headers(dist)
270c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi        self.assertEqual(cmd.get_inputs(), headers)
280c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
290c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi        # let's run the command
300c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi        cmd.install_dir = os.path.join(pkg_dir, 'inst')
310c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi        cmd.ensure_finalized()
320c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi        cmd.run()
330c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
340c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi        # let's check the results
350c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi        self.assertEqual(len(cmd.get_outputs()), 2)
360c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
370c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yidef test_suite():
380c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi    return unittest.makeSuite(InstallHeadersTestCase)
390c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi
400c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yiif __name__ == "__main__":
410c5958b1636c47ed7c284f859c8e805fd06a0e6Bill Yi    run_unittest(test_suite())
42