Mercurial > cpython-lru_cache-weakref
annotate Lib/distutils/tests/test_dist.py @ 79675:c0a2294de787 2.7
Issue #16199: Backport 2to3 typo fix from 3.2.
| author | Chris Jerdonek <chris.jerdonek@gmail.com> |
|---|---|
| date | Thu, 11 Oct 2012 16:15:46 -0700 |
| parents | 4b72d56cf42f |
| children |
| rev | line source |
|---|---|
|
54497
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
1 # -*- coding: utf8 -*- |
|
48981
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
2 |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
3 """Tests for distutils.dist.""" |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
4 import os |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
5 import StringIO |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
6 import sys |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
7 import unittest |
|
50366
ad20b69b18b7
Merged revisions 68033 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
48981
diff
changeset
|
8 import warnings |
|
57586
1c2ecd59d65a
Merged revisions 76684 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
50366
diff
changeset
|
9 import textwrap |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
10 |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
11 from distutils.dist import Distribution, fix_help_options |
|
54149
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
12 from distutils.cmd import Command |
|
56156
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
13 import distutils.dist |
|
67854
6270946115d0
Merged revisions 86236,86240,86332,86340,87271,87273,87447 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
66348
diff
changeset
|
14 from test.test_support import TESTFN, captured_stdout, run_unittest |
|
51626
e5522875b98c
Fix for #5257: refactored all tests in distutils, so they use a temporary directory.
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
50366
diff
changeset
|
15 from distutils.tests import support |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
16 |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
17 |
|
54149
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
18 class test_dist(Command): |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
19 """Sample distutils extension command.""" |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
20 |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
21 user_options = [ |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
22 ("sample-option=", "S", "help text"), |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
23 ] |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
24 |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
25 def initialize_options(self): |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
26 self.sample_option = None |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
27 |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
28 |
|
54149
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
29 class TestDistribution(Distribution): |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
30 """Distribution subclasses that avoids the default search for |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
31 configuration files. |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
32 |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
33 The ._config_files attribute must be set before |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
34 .parse_config_files() is called. |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
35 """ |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
36 |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
37 def find_config_files(self): |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
38 return self._config_files |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
39 |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
40 |
|
54497
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
41 class DistributionTestCase(support.TempdirManager, |
|
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
42 support.LoggingSilencer, |
|
56584
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
43 support.EnvironGuard, |
|
54497
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
44 unittest.TestCase): |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
45 |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
46 def setUp(self): |
|
53980
17c53fa37890
now using EnvironGuard everywhere
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51627
diff
changeset
|
47 super(DistributionTestCase, self).setUp() |
|
56584
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
48 self.argv = sys.argv, sys.argv[:] |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
49 del sys.argv[1:] |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
50 |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
51 def tearDown(self): |
|
56584
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
52 sys.argv = self.argv[0] |
|
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
53 sys.argv[:] = self.argv[1] |
|
53980
17c53fa37890
now using EnvironGuard everywhere
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51627
diff
changeset
|
54 super(DistributionTestCase, self).tearDown() |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
55 |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
56 def create_distribution(self, configfiles=()): |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
57 d = TestDistribution() |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
58 d._config_files = configfiles |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
59 d.parse_config_files() |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
60 d.parse_command_line() |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
61 return d |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
62 |
|
56156
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
63 def test_debug_mode(self): |
|
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
64 with open(TESTFN, "w") as f: |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
65 f.write("[global]\n") |
|
56156
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
66 f.write("command_packages = foo.bar, splat") |
|
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
67 |
|
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
68 files = [TESTFN] |
|
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
69 sys.argv.append("build") |
|
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
70 |
|
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
71 with captured_stdout() as stdout: |
|
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
72 self.create_distribution(files) |
|
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
73 stdout.seek(0) |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
74 self.assertEqual(stdout.read(), '') |
|
56156
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
75 distutils.dist.DEBUG = True |
|
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
76 try: |
|
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
77 with captured_stdout() as stdout: |
|
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
78 self.create_distribution(files) |
|
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
79 stdout.seek(0) |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
80 self.assertEqual(stdout.read(), '') |
|
56156
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
81 finally: |
|
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
82 distutils.dist.DEBUG = False |
|
d627c5892fd5
improving distutils coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55101
diff
changeset
|
83 |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
84 def test_command_packages_unspecified(self): |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
85 sys.argv.append("build") |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
86 d = self.create_distribution() |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
87 self.assertEqual(d.get_command_packages(), ["distutils.command"]) |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
88 |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
89 def test_command_packages_cmdline(self): |
|
46881
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
90 from distutils.tests.test_dist import test_dist |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
91 sys.argv.extend(["--command-packages", |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
92 "foo.bar,distutils.tests", |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
93 "test_dist", |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
94 "-Ssometext", |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
95 ]) |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
96 d = self.create_distribution() |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
97 # let's actually try to load our test command: |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
98 self.assertEqual(d.get_command_packages(), |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
99 ["distutils.command", "foo.bar", "distutils.tests"]) |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
100 cmd = d.get_command_obj("test_dist") |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
101 self.assertIsInstance(cmd, test_dist) |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
102 self.assertEqual(cmd.sample_option, "sometext") |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
103 |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
104 def test_command_packages_configfile(self): |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
105 sys.argv.append("build") |
|
66008
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
106 self.addCleanup(os.unlink, TESTFN) |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
107 f = open(TESTFN, "w") |
|
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
108 try: |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
109 print >> f, "[global]" |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
110 print >> f, "command_packages = foo.bar, splat" |
|
66008
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
111 finally: |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
112 f.close() |
|
66008
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
113 |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
114 d = self.create_distribution([TESTFN]) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
115 self.assertEqual(d.get_command_packages(), |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
116 ["distutils.command", "foo.bar", "splat"]) |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
117 |
|
66008
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
118 # ensure command line overrides config: |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
119 sys.argv[1:] = ["--command-packages", "spork", "build"] |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
120 d = self.create_distribution([TESTFN]) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
121 self.assertEqual(d.get_command_packages(), |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
122 ["distutils.command", "spork"]) |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
123 |
|
66008
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
124 # Setting --command-packages to '' should cause the default to |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
125 # be used even if a config file specified something else: |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
126 sys.argv[1:] = ["--command-packages", "", "build"] |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
127 d = self.create_distribution([TESTFN]) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
128 self.assertEqual(d.get_command_packages(), ["distutils.command"]) |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
129 |
|
48981
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
130 def test_write_pkg_file(self): |
|
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
131 # Check DistributionMetadata handling of Unicode fields |
|
51626
e5522875b98c
Fix for #5257: refactored all tests in distutils, so they use a temporary directory.
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
50366
diff
changeset
|
132 tmp_dir = self.mkdtemp() |
|
e5522875b98c
Fix for #5257: refactored all tests in distutils, so they use a temporary directory.
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
50366
diff
changeset
|
133 my_file = os.path.join(tmp_dir, 'f') |
|
54149
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
134 klass = Distribution |
|
48981
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
135 |
|
54497
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
136 dist = klass(attrs={'author': u'Mister Café', |
|
48981
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
137 'name': 'my.package', |
|
54497
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
138 'maintainer': u'Café Junior', |
|
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
139 'description': u'Café torréfié', |
|
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
140 'long_description': u'Héhéhé'}) |
|
48981
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
141 |
|
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
142 # let's make sure the file can be written |
|
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
143 # with Unicode fields. they are encoded with |
|
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
144 # PKG_INFO_ENCODING |
|
51626
e5522875b98c
Fix for #5257: refactored all tests in distutils, so they use a temporary directory.
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
50366
diff
changeset
|
145 dist.metadata.write_pkg_file(open(my_file, 'w')) |
|
48981
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
146 |
|
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
147 # regular ascii is of course always usable |
|
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
148 dist = klass(attrs={'author': 'Mister Cafe', |
|
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
149 'name': 'my.package', |
|
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
150 'maintainer': 'Cafe Junior', |
|
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
151 'description': 'Cafe torrefie', |
|
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
152 'long_description': 'Hehehe'}) |
|
4c683ec4415b
Issue #2562: Fix distutils PKG-INFO writing logic to allow having
Marc-André Lemburg <mal@egenix.com>
parents:
46902
diff
changeset
|
153 |
|
51626
e5522875b98c
Fix for #5257: refactored all tests in distutils, so they use a temporary directory.
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
50366
diff
changeset
|
154 my_file2 = os.path.join(tmp_dir, 'f2') |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
155 dist.metadata.write_pkg_file(open(my_file2, 'w')) |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
156 |
|
50366
ad20b69b18b7
Merged revisions 68033 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
48981
diff
changeset
|
157 def test_empty_options(self): |
|
ad20b69b18b7
Merged revisions 68033 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
48981
diff
changeset
|
158 # an empty options dictionary should not stay in the |
|
ad20b69b18b7
Merged revisions 68033 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
48981
diff
changeset
|
159 # list of attributes |
|
ad20b69b18b7
Merged revisions 68033 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
48981
diff
changeset
|
160 |
|
ad20b69b18b7
Merged revisions 68033 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
48981
diff
changeset
|
161 # catching warnings |
|
ad20b69b18b7
Merged revisions 68033 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
48981
diff
changeset
|
162 warns = [] |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
163 |
|
50366
ad20b69b18b7
Merged revisions 68033 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
48981
diff
changeset
|
164 def _warn(msg): |
|
ad20b69b18b7
Merged revisions 68033 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
48981
diff
changeset
|
165 warns.append(msg) |
|
ad20b69b18b7
Merged revisions 68033 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
48981
diff
changeset
|
166 |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
167 self.addCleanup(setattr, warnings, 'warn', warnings.warn) |
|
50366
ad20b69b18b7
Merged revisions 68033 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
48981
diff
changeset
|
168 warnings.warn = _warn |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
169 dist = Distribution(attrs={'author': 'xxx', 'name': 'xxx', |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
170 'version': 'xxx', 'url': 'xxxx', |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
171 'options': {}}) |
|
50366
ad20b69b18b7
Merged revisions 68033 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
48981
diff
changeset
|
172 |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
173 self.assertEqual(len(warns), 0) |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
174 self.assertNotIn('options', dir(dist)) |
|
50366
ad20b69b18b7
Merged revisions 68033 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
48981
diff
changeset
|
175 |
|
54497
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
176 def test_finalize_options(self): |
|
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
177 attrs = {'keywords': 'one,two', |
|
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
178 'platforms': 'one,two'} |
|
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
179 |
|
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
180 dist = Distribution(attrs=attrs) |
|
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
181 dist.finalize_options() |
|
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
182 |
|
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
183 # finalize_option splits platforms and keywords |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
184 self.assertEqual(dist.metadata.platforms, ['one', 'two']) |
|
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
185 self.assertEqual(dist.metadata.keywords, ['one', 'two']) |
|
54497
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
186 |
|
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
187 def test_get_command_packages(self): |
|
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
188 dist = Distribution() |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
189 self.assertEqual(dist.command_packages, None) |
|
54497
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
190 cmds = dist.get_command_packages() |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
191 self.assertEqual(cmds, ['distutils.command']) |
|
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
192 self.assertEqual(dist.command_packages, |
|
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
193 ['distutils.command']) |
|
54497
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
194 |
|
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
195 dist.command_packages = 'one,two' |
|
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
196 cmds = dist.get_command_packages() |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
197 self.assertEqual(cmds, ['distutils.command', 'one', 'two']) |
|
54497
d5071d9f7408
improved distutils.dist test coverage, pep-8 compliancy
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54149
diff
changeset
|
198 |
|
56158
7a7642ab11b3
#6954: Fixed crash when using DISTUTILS_DEBUG flag in Distutils.
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56156
diff
changeset
|
199 def test_announce(self): |
|
7a7642ab11b3
#6954: Fixed crash when using DISTUTILS_DEBUG flag in Distutils.
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56156
diff
changeset
|
200 # make sure the level is known |
|
7a7642ab11b3
#6954: Fixed crash when using DISTUTILS_DEBUG flag in Distutils.
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56156
diff
changeset
|
201 dist = Distribution() |
|
7a7642ab11b3
#6954: Fixed crash when using DISTUTILS_DEBUG flag in Distutils.
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56156
diff
changeset
|
202 args = ('ok',) |
|
7a7642ab11b3
#6954: Fixed crash when using DISTUTILS_DEBUG flag in Distutils.
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56156
diff
changeset
|
203 kwargs = {'level': 'ok2'} |
|
7a7642ab11b3
#6954: Fixed crash when using DISTUTILS_DEBUG flag in Distutils.
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56156
diff
changeset
|
204 self.assertRaises(ValueError, dist.announce, args, kwargs) |
|
50366
ad20b69b18b7
Merged revisions 68033 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
48981
diff
changeset
|
205 |
|
56923
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
206 def test_find_config_files_disable(self): |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
207 # Ticket #1180: Allow user to disable their home config file. |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
208 temp_home = self.mkdtemp() |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
209 if os.name == 'posix': |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
210 user_filename = os.path.join(temp_home, ".pydistutils.cfg") |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
211 else: |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
212 user_filename = os.path.join(temp_home, "pydistutils.cfg") |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
213 |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
214 with open(user_filename, 'w') as f: |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
215 f.write('[distutils]\n') |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
216 |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
217 def _expander(path): |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
218 return temp_home |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
219 |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
220 old_expander = os.path.expanduser |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
221 os.path.expanduser = _expander |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
222 try: |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
223 d = distutils.dist.Distribution() |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
224 all_files = d.find_config_files() |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
225 |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
226 d = distutils.dist.Distribution(attrs={'script_args': |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
227 ['--no-user-cfg']}) |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
228 files = d.find_config_files() |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
229 finally: |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
230 os.path.expanduser = old_expander |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
231 |
|
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
232 # make sure --no-user-cfg disables the user cfg file |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
233 self.assertEqual(len(all_files)-1, len(files)) |
|
56923
fc5a7718433a
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
234 |
|
57601
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
235 |
|
53980
17c53fa37890
now using EnvironGuard everywhere
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51627
diff
changeset
|
236 class MetadataTestCase(support.TempdirManager, support.EnvironGuard, |
|
17c53fa37890
now using EnvironGuard everywhere
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51627
diff
changeset
|
237 unittest.TestCase): |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
238 |
|
56584
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
239 def setUp(self): |
|
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
240 super(MetadataTestCase, self).setUp() |
|
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
241 self.argv = sys.argv, sys.argv[:] |
|
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
242 |
|
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
243 def tearDown(self): |
|
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
244 sys.argv = self.argv[0] |
|
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
245 sys.argv[:] = self.argv[1] |
|
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
246 super(MetadataTestCase, self).tearDown() |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
247 |
|
72362
4b72d56cf42f
Fix determination of Metadata version (#8933). Patch by Filip Gruszczyński.
Éric Araujo <merwok@netwok.org>
parents:
72361
diff
changeset
|
248 def test_classifier(self): |
|
4b72d56cf42f
Fix determination of Metadata version (#8933). Patch by Filip Gruszczyński.
Éric Araujo <merwok@netwok.org>
parents:
72361
diff
changeset
|
249 attrs = {'name': 'Boa', 'version': '3.0', |
|
4b72d56cf42f
Fix determination of Metadata version (#8933). Patch by Filip Gruszczyński.
Éric Araujo <merwok@netwok.org>
parents:
72361
diff
changeset
|
250 'classifiers': ['Programming Language :: Python :: 3']} |
|
4b72d56cf42f
Fix determination of Metadata version (#8933). Patch by Filip Gruszczyński.
Éric Araujo <merwok@netwok.org>
parents:
72361
diff
changeset
|
251 dist = Distribution(attrs) |
|
4b72d56cf42f
Fix determination of Metadata version (#8933). Patch by Filip Gruszczyński.
Éric Araujo <merwok@netwok.org>
parents:
72361
diff
changeset
|
252 meta = self.format_metadata(dist) |
|
4b72d56cf42f
Fix determination of Metadata version (#8933). Patch by Filip Gruszczyński.
Éric Araujo <merwok@netwok.org>
parents:
72361
diff
changeset
|
253 self.assertIn('Metadata-Version: 1.1', meta) |
|
4b72d56cf42f
Fix determination of Metadata version (#8933). Patch by Filip Gruszczyński.
Éric Araujo <merwok@netwok.org>
parents:
72361
diff
changeset
|
254 |
|
4b72d56cf42f
Fix determination of Metadata version (#8933). Patch by Filip Gruszczyński.
Éric Araujo <merwok@netwok.org>
parents:
72361
diff
changeset
|
255 def test_download_url(self): |
|
4b72d56cf42f
Fix determination of Metadata version (#8933). Patch by Filip Gruszczyński.
Éric Araujo <merwok@netwok.org>
parents:
72361
diff
changeset
|
256 attrs = {'name': 'Boa', 'version': '3.0', |
|
4b72d56cf42f
Fix determination of Metadata version (#8933). Patch by Filip Gruszczyński.
Éric Araujo <merwok@netwok.org>
parents:
72361
diff
changeset
|
257 'download_url': 'http://example.org/boa'} |
|
4b72d56cf42f
Fix determination of Metadata version (#8933). Patch by Filip Gruszczyński.
Éric Araujo <merwok@netwok.org>
parents:
72361
diff
changeset
|
258 dist = Distribution(attrs) |
|
4b72d56cf42f
Fix determination of Metadata version (#8933). Patch by Filip Gruszczyński.
Éric Araujo <merwok@netwok.org>
parents:
72361
diff
changeset
|
259 meta = self.format_metadata(dist) |
|
4b72d56cf42f
Fix determination of Metadata version (#8933). Patch by Filip Gruszczyński.
Éric Araujo <merwok@netwok.org>
parents:
72361
diff
changeset
|
260 self.assertIn('Metadata-Version: 1.1', meta) |
|
4b72d56cf42f
Fix determination of Metadata version (#8933). Patch by Filip Gruszczyński.
Éric Araujo <merwok@netwok.org>
parents:
72361
diff
changeset
|
261 |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
262 def test_long_description(self): |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
263 long_desc = textwrap.dedent("""\ |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
264 example:: |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
265 We start here |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
266 and continue here |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
267 and end here.""") |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
268 attrs = {"name": "package", |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
269 "version": "1.0", |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
270 "long_description": long_desc} |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
271 |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
272 dist = Distribution(attrs) |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
273 meta = self.format_metadata(dist) |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
274 meta = meta.replace('\n' + 8 * ' ', '\n') |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
275 self.assertIn(long_desc, meta) |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
276 |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
277 def test_simple_metadata(self): |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
278 attrs = {"name": "package", |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
279 "version": "1.0"} |
|
54149
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
280 dist = Distribution(attrs) |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
281 meta = self.format_metadata(dist) |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
282 self.assertIn("Metadata-Version: 1.0", meta) |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
283 self.assertNotIn("provides:", meta.lower()) |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
284 self.assertNotIn("requires:", meta.lower()) |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
285 self.assertNotIn("obsoletes:", meta.lower()) |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
286 |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
287 def test_provides(self): |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
288 attrs = {"name": "package", |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
289 "version": "1.0", |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
290 "provides": ["package", "package.sub"]} |
|
54149
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
291 dist = Distribution(attrs) |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
292 self.assertEqual(dist.metadata.get_provides(), |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
293 ["package", "package.sub"]) |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
294 self.assertEqual(dist.get_provides(), |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
295 ["package", "package.sub"]) |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
296 meta = self.format_metadata(dist) |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
297 self.assertIn("Metadata-Version: 1.1", meta) |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
298 self.assertNotIn("requires:", meta.lower()) |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
299 self.assertNotIn("obsoletes:", meta.lower()) |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
300 |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
301 def test_provides_illegal(self): |
|
54149
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
302 self.assertRaises(ValueError, Distribution, |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
303 {"name": "package", |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
304 "version": "1.0", |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
305 "provides": ["my.pkg (splat)"]}) |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
306 |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
307 def test_requires(self): |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
308 attrs = {"name": "package", |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
309 "version": "1.0", |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
310 "requires": ["other", "another (==1.0)"]} |
|
54149
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
311 dist = Distribution(attrs) |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
312 self.assertEqual(dist.metadata.get_requires(), |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
313 ["other", "another (==1.0)"]) |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
314 self.assertEqual(dist.get_requires(), |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
315 ["other", "another (==1.0)"]) |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
316 meta = self.format_metadata(dist) |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
317 self.assertIn("Metadata-Version: 1.1", meta) |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
318 self.assertNotIn("provides:", meta.lower()) |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
319 self.assertIn("Requires: other", meta) |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
320 self.assertIn("Requires: another (==1.0)", meta) |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
321 self.assertNotIn("obsoletes:", meta.lower()) |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
322 |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
323 def test_requires_illegal(self): |
|
54149
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
324 self.assertRaises(ValueError, Distribution, |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
325 {"name": "package", |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
326 "version": "1.0", |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
327 "requires": ["my.pkg (splat)"]}) |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
328 |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
329 def test_obsoletes(self): |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
330 attrs = {"name": "package", |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
331 "version": "1.0", |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
332 "obsoletes": ["other", "another (<1.0)"]} |
|
54149
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
333 dist = Distribution(attrs) |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
334 self.assertEqual(dist.metadata.get_obsoletes(), |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
335 ["other", "another (<1.0)"]) |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
336 self.assertEqual(dist.get_obsoletes(), |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
337 ["other", "another (<1.0)"]) |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
338 meta = self.format_metadata(dist) |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
339 self.assertIn("Metadata-Version: 1.1", meta) |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
340 self.assertNotIn("provides:", meta.lower()) |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
341 self.assertNotIn("requires:", meta.lower()) |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
342 self.assertIn("Obsoletes: other", meta) |
|
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
343 self.assertIn("Obsoletes: another (<1.0)", meta) |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
344 |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
345 def test_obsoletes_illegal(self): |
|
54149
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
346 self.assertRaises(ValueError, Distribution, |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
347 {"name": "package", |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
348 "version": "1.0", |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
349 "obsoletes": ["my.pkg (splat)"]}) |
|
34818
4eaab38566c9
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
34785
diff
changeset
|
350 |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
351 def format_metadata(self, dist): |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
352 sio = StringIO.StringIO() |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
353 dist.metadata.write_pkg_file(sio) |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
354 return sio.getvalue() |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
355 |
|
46881
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
356 def test_custom_pydistutils(self): |
|
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
357 # fixes #2166 |
|
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
358 # make sure pydistutils.cfg is found |
|
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
359 if os.name == 'posix': |
|
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
360 user_filename = ".pydistutils.cfg" |
|
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
361 else: |
|
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
362 user_filename = "pydistutils.cfg" |
|
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
363 |
|
51626
e5522875b98c
Fix for #5257: refactored all tests in distutils, so they use a temporary directory.
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
50366
diff
changeset
|
364 temp_dir = self.mkdtemp() |
|
e5522875b98c
Fix for #5257: refactored all tests in distutils, so they use a temporary directory.
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
50366
diff
changeset
|
365 user_filename = os.path.join(temp_dir, user_filename) |
|
46881
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
366 f = open(user_filename, 'w') |
|
66008
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
367 try: |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
368 f.write('.') |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
369 finally: |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
57601
diff
changeset
|
370 f.close() |
|
46881
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
371 |
|
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
372 try: |
|
54149
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
373 dist = Distribution() |
|
46881
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
374 |
|
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
375 # linux-style |
|
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
376 if sys.platform in ('linux', 'darwin'): |
|
56584
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
377 os.environ['HOME'] = temp_dir |
|
46881
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
378 files = dist.find_config_files() |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
379 self.assertIn(user_filename, files) |
|
46881
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
380 |
|
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
381 # win32-style |
|
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
382 if sys.platform == 'win32': |
|
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
383 # home drive should be found |
|
56584
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
384 os.environ['HOME'] = temp_dir |
|
46881
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
385 files = dist.find_config_files() |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
386 self.assertIn(user_filename, files, |
|
46896
21ae2b65bbbb
Add message to test assertion
Andrew M. Kuchling <amk@amk.ca>
parents:
46881
diff
changeset
|
387 '%r not found in %r' % (user_filename, files)) |
|
46881
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
388 finally: |
|
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
389 os.remove(user_filename) |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
390 |
|
54149
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
391 def test_fix_help_options(self): |
|
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
392 help_tuples = [('a', 'b', 'c', 'd'), (1, 2, 3, 4)] |
|
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
393 fancy_options = fix_help_options(help_tuples) |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
394 self.assertEqual(fancy_options[0], ('a', 'b', 'c')) |
|
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
395 self.assertEqual(fancy_options[1], (1, 2, 3)) |
|
54149
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
396 |
|
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
397 def test_show_help(self): |
|
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
398 # smoke test, just makes sure some help is displayed |
|
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
399 dist = Distribution() |
|
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
400 sys.argv = [] |
|
56584
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
401 dist.help = 1 |
|
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
402 dist.script_name = 'setup.py' |
|
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
403 with captured_stdout() as s: |
|
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56158
diff
changeset
|
404 dist.parse_command_line() |
|
54149
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
405 |
|
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
406 output = [line for line in s.getvalue().split('\n') |
|
f2538183d262
removed sys.platform == 'mac' support in distutils.dist.parse_command_line and improved test coverage
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53980
diff
changeset
|
407 if line.strip() != ''] |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
408 self.assertTrue(output) |
|
57586
1c2ecd59d65a
Merged revisions 76684 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
50366
diff
changeset
|
409 |
|
57601
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
410 def test_read_metadata(self): |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
411 attrs = {"name": "package", |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
412 "version": "1.0", |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
413 "long_description": "desc", |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
414 "description": "xxx", |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
415 "download_url": "http://example.com", |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
416 "keywords": ['one', 'two'], |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
417 "requires": ['foo']} |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
418 |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
419 dist = Distribution(attrs) |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
420 metadata = dist.metadata |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
421 |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
422 # write it then reloads it |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
423 PKG_INFO = StringIO.StringIO() |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
424 metadata.write_pkg_file(PKG_INFO) |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
425 PKG_INFO.seek(0) |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
426 metadata.read_pkg_file(PKG_INFO) |
|
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
427 |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
428 self.assertEqual(metadata.name, "package") |
|
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
429 self.assertEqual(metadata.version, "1.0") |
|
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
430 self.assertEqual(metadata.description, "xxx") |
|
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
431 self.assertEqual(metadata.download_url, 'http://example.com') |
|
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
432 self.assertEqual(metadata.keywords, ['one', 'two']) |
|
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
433 self.assertEqual(metadata.platforms, ['UNKNOWN']) |
|
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
434 self.assertEqual(metadata.obsoletes, None) |
|
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
435 self.assertEqual(metadata.requires, ['foo']) |
|
57601
25aede62fc17
Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
57585
diff
changeset
|
436 |
|
72361
76399f965013
Slight cleanup in distutils test_dist.
Éric Araujo <merwok@netwok.org>
parents:
68256
diff
changeset
|
437 |
|
32938
8ce344f6c954
This allows additional commands to be provided for existing setup.py
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
438 def test_suite(): |
|
34785
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
439 suite = unittest.TestSuite() |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
440 suite.addTest(unittest.makeSuite(DistributionTestCase)) |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
441 suite.addTest(unittest.makeSuite(MetadataTestCase)) |
|
dc6f315f1f7f
PEP 314 implementation (client side):
Fred Drake <fdrake@acm.org>
parents:
32938
diff
changeset
|
442 return suite |
|
46881
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
443 |
|
0df616193b98
#1858: re-apply patch for this, adding the missing files
Andrew M. Kuchling <amk@amk.ca>
parents:
46836
diff
changeset
|
444 if __name__ == "__main__": |
|
67854
6270946115d0
Merged revisions 86236,86240,86332,86340,87271,87273,87447 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
66348
diff
changeset
|
445 run_unittest(test_suite()) |
