Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v8plus / lib / python2.4 / distutils / tests / test_dist.py
CommitLineData
920dae64
AT
1"""Tests for distutils.dist."""
2
3import distutils.cmd
4import distutils.dist
5import os
6import shutil
7import sys
8import tempfile
9import unittest
10
11from test.test_support import TESTFN
12
13
14class test_dist(distutils.cmd.Command):
15 """Sample distutils extension command."""
16
17 user_options = [
18 ("sample-option=", "S", "help text"),
19 ]
20
21 def initialize_options(self):
22 self.sample_option = None
23
24
25class TestDistribution(distutils.dist.Distribution):
26 """Distribution subclasses that avoids the default search for
27 configuration files.
28
29 The ._config_files attribute must be set before
30 .parse_config_files() is called.
31 """
32
33 def find_config_files(self):
34 return self._config_files
35
36
37class DistributionTestCase(unittest.TestCase):
38
39 def setUp(self):
40 self.argv = sys.argv[:]
41 del sys.argv[1:]
42
43 def tearDown(self):
44 sys.argv[:] = self.argv
45
46 def create_distribution(self, configfiles=()):
47 d = TestDistribution()
48 d._config_files = configfiles
49 d.parse_config_files()
50 d.parse_command_line()
51 return d
52
53 def test_command_packages_unspecified(self):
54 sys.argv.append("build")
55 d = self.create_distribution()
56 self.assertEqual(d.get_command_packages(), ["distutils.command"])
57
58 def test_command_packages_cmdline(self):
59 sys.argv.extend(["--command-packages",
60 "foo.bar,distutils.tests",
61 "test_dist",
62 "-Ssometext",
63 ])
64 d = self.create_distribution()
65 # let's actually try to load our test command:
66 self.assertEqual(d.get_command_packages(),
67 ["distutils.command", "foo.bar", "distutils.tests"])
68 cmd = d.get_command_obj("test_dist")
69 self.assert_(isinstance(cmd, test_dist))
70 self.assertEqual(cmd.sample_option, "sometext")
71
72 def test_command_packages_configfile(self):
73 sys.argv.append("build")
74 f = open(TESTFN, "w")
75 try:
76 print >>f, "[global]"
77 print >>f, "command_packages = foo.bar, splat"
78 f.close()
79 d = self.create_distribution([TESTFN])
80 self.assertEqual(d.get_command_packages(),
81 ["distutils.command", "foo.bar", "splat"])
82
83 # ensure command line overrides config:
84 sys.argv[1:] = ["--command-packages", "spork", "build"]
85 d = self.create_distribution([TESTFN])
86 self.assertEqual(d.get_command_packages(),
87 ["distutils.command", "spork"])
88
89 # Setting --command-packages to '' should cause the default to
90 # be used even if a config file specified something else:
91 sys.argv[1:] = ["--command-packages", "", "build"]
92 d = self.create_distribution([TESTFN])
93 self.assertEqual(d.get_command_packages(), ["distutils.command"])
94
95 finally:
96 os.unlink(TESTFN)
97
98
99def test_suite():
100 return unittest.makeSuite(DistributionTestCase)