ยปCore Development>Code coverage>Lib/packaging/tests/test_command_install_scripts.py

Python code coverage for Lib/packaging/tests/test_command_install_scripts.py

#countcontent
1n/a"""Tests for packaging.command.install_scripts."""
2n/aimport os
3n/a
4n/afrom packaging.tests import unittest, support
5n/afrom packaging.command.install_scripts import install_scripts
6n/afrom packaging.dist import Distribution
7n/a
8n/a
9n/aclass InstallScriptsTestCase(support.TempdirManager,
10n/a support.LoggingCatcher,
11n/a unittest.TestCase):
12n/a
13n/a def test_default_settings(self):
14n/a dist = Distribution()
15n/a dist.command_obj["build"] = support.DummyCommand(
16n/a build_scripts="/foo/bar")
17n/a dist.command_obj["install_dist"] = support.DummyCommand(
18n/a install_scripts="/splat/funk",
19n/a force=True,
20n/a skip_build=True,
21n/a )
22n/a cmd = install_scripts(dist)
23n/a self.assertFalse(cmd.force)
24n/a self.assertFalse(cmd.skip_build)
25n/a self.assertIs(cmd.build_dir, None)
26n/a self.assertIs(cmd.install_dir, None)
27n/a
28n/a cmd.finalize_options()
29n/a
30n/a self.assertTrue(cmd.force)
31n/a self.assertTrue(cmd.skip_build)
32n/a self.assertEqual(cmd.build_dir, "/foo/bar")
33n/a self.assertEqual(cmd.install_dir, "/splat/funk")
34n/a
35n/a def test_installation(self):
36n/a source = self.mkdtemp()
37n/a expected = []
38n/a
39n/a def write_script(name, text):
40n/a expected.append(name)
41n/a with open(os.path.join(source, name), "w") as f:
42n/a f.write(text)
43n/a
44n/a write_script("script1.py", ("#! /usr/bin/env python2.3\n"
45n/a "# bogus script w/ Python sh-bang\n"
46n/a "pass\n"))
47n/a write_script("script2.py", ("#!/usr/bin/python\n"
48n/a "# bogus script w/ Python sh-bang\n"
49n/a "pass\n"))
50n/a write_script("shell.sh", ("#!/bin/sh\n"
51n/a "# bogus shell script w/ sh-bang\n"
52n/a "exit 0\n"))
53n/a
54n/a target = self.mkdtemp()
55n/a dist = Distribution()
56n/a dist.command_obj["build"] = support.DummyCommand(build_scripts=source)
57n/a dist.command_obj["install_dist"] = support.DummyCommand(
58n/a install_scripts=target,
59n/a force=True,
60n/a skip_build=True,
61n/a )
62n/a cmd = install_scripts(dist)
63n/a cmd.finalize_options()
64n/a cmd.run()
65n/a
66n/a installed = os.listdir(target)
67n/a for name in expected:
68n/a self.assertIn(name, installed)
69n/a
70n/a
71n/adef test_suite():
72n/a return unittest.makeSuite(InstallScriptsTestCase)
73n/a
74n/aif __name__ == "__main__":
75n/a unittest.main(defaultTest="test_suite")