Mercurial > cpython-lru_cache-weakref
annotate Lib/distutils/tests/test_sysconfig.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 | b36cb4602e21 |
| children | 1d061f83a6bf |
| rev | line source |
|---|---|
|
53976
1bec64b8dd17
refactored test_sysconfig so it uses test.test_support.EnvironmentVarGuard
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53897
diff
changeset
|
1 """Tests for distutils.sysconfig.""" |
|
44198
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
2 import os |
|
54669
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
3 import test |
|
44198
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
4 import unittest |
|
58775
ede0f05dc6c0
Add missing import when running these tests standalone.
Georg Brandl <georg@python.org>
parents:
58450
diff
changeset
|
5 import shutil |
|
44198
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
6 |
|
53976
1bec64b8dd17
refactored test_sysconfig so it uses test.test_support.EnvironmentVarGuard
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53897
diff
changeset
|
7 from distutils import sysconfig |
|
1bec64b8dd17
refactored test_sysconfig so it uses test.test_support.EnvironmentVarGuard
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53897
diff
changeset
|
8 from distutils.tests import support |
|
44198
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
9 from test.test_support import TESTFN |
|
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
10 |
|
53976
1bec64b8dd17
refactored test_sysconfig so it uses test.test_support.EnvironmentVarGuard
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53897
diff
changeset
|
11 class SysconfigTestCase(support.EnvironGuard, |
|
1bec64b8dd17
refactored test_sysconfig so it uses test.test_support.EnvironmentVarGuard
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53897
diff
changeset
|
12 unittest.TestCase): |
|
54669
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
13 def setUp(self): |
|
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
14 super(SysconfigTestCase, self).setUp() |
|
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
15 self.makefile = None |
|
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
16 |
|
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
17 def tearDown(self): |
|
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
18 if self.makefile is not None: |
|
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
19 os.unlink(self.makefile) |
|
56584
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55002
diff
changeset
|
20 self.cleanup_testfn() |
|
54669
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
21 super(SysconfigTestCase, self).tearDown() |
|
44198
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
22 |
|
56584
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55002
diff
changeset
|
23 def cleanup_testfn(self): |
|
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55002
diff
changeset
|
24 path = test.test_support.TESTFN |
|
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55002
diff
changeset
|
25 if os.path.isfile(path): |
|
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55002
diff
changeset
|
26 os.remove(path) |
|
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55002
diff
changeset
|
27 elif os.path.isdir(path): |
|
e67eb9660041
Changed distutils tests to avoid environment alteration
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
55002
diff
changeset
|
28 shutil.rmtree(path) |
|
44198
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
29 |
|
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
30 def test_get_python_lib(self): |
|
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
31 lib_dir = sysconfig.get_python_lib() |
| 44308 | 32 # XXX doesn't work on Linux when Python was never installed before |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
54668
diff
changeset
|
33 #self.assertTrue(os.path.isdir(lib_dir), lib_dir) |
|
44198
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
34 # test for pythonxx.lib? |
|
51505
1307a66a38f8
Merged revisions 69485 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
46319
diff
changeset
|
35 self.assertNotEqual(sysconfig.get_python_lib(), |
|
1307a66a38f8
Merged revisions 69485 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
46319
diff
changeset
|
36 sysconfig.get_python_lib(prefix=TESTFN)) |
|
58450
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
37 _sysconfig = __import__('sysconfig') |
|
fa69e891edf4
taking sysconfig out of distutils
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
56584
diff
changeset
|
38 res = sysconfig.get_python_lib(True, True) |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
39 self.assertEqual(_sysconfig.get_path('platstdlib'), res) |
|
44198
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
40 |
|
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
41 def test_get_python_inc(self): |
|
56342
275d60f93d3c
Issue #7039: Fixed test_distutils when running tests on an installation with no build
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54669
diff
changeset
|
42 inc_dir = sysconfig.get_python_inc() |
|
275d60f93d3c
Issue #7039: Fixed test_distutils when running tests on an installation with no build
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54669
diff
changeset
|
43 # This is not much of a test. We make sure Python.h exists |
|
275d60f93d3c
Issue #7039: Fixed test_distutils when running tests on an installation with no build
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54669
diff
changeset
|
44 # in the directory returned by get_python_inc() but we don't know |
|
275d60f93d3c
Issue #7039: Fixed test_distutils when running tests on an installation with no build
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54669
diff
changeset
|
45 # it is the correct file. |
|
275d60f93d3c
Issue #7039: Fixed test_distutils when running tests on an installation with no build
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54669
diff
changeset
|
46 self.assertTrue(os.path.isdir(inc_dir), inc_dir) |
|
44198
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
47 python_h = os.path.join(inc_dir, "Python.h") |
|
56342
275d60f93d3c
Issue #7039: Fixed test_distutils when running tests on an installation with no build
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
54669
diff
changeset
|
48 self.assertTrue(os.path.isfile(python_h), python_h) |
|
44198
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
49 |
|
54668
65793acc0095
Fixed #5201: now distutils.sysconfig.parse_makefile() understands '53264' in Makefiles
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53976
diff
changeset
|
50 def test_parse_makefile_base(self): |
|
65793acc0095
Fixed #5201: now distutils.sysconfig.parse_makefile() understands '53264' in Makefiles
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53976
diff
changeset
|
51 self.makefile = test.test_support.TESTFN |
|
65793acc0095
Fixed #5201: now distutils.sysconfig.parse_makefile() understands '53264' in Makefiles
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53976
diff
changeset
|
52 fd = open(self.makefile, 'w') |
|
66008
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
58775
diff
changeset
|
53 try: |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
58775
diff
changeset
|
54 fd.write(r"CONFIG_ARGS= '--arg1=optarg1' 'ENV=LIB'" '\n') |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
58775
diff
changeset
|
55 fd.write('VAR=$OTHER\nOTHER=foo') |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
58775
diff
changeset
|
56 finally: |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
58775
diff
changeset
|
57 fd.close() |
|
54668
65793acc0095
Fixed #5201: now distutils.sysconfig.parse_makefile() understands '53264' in Makefiles
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
53976
diff
changeset
|
58 d = sysconfig.parse_makefile(self.makefile) |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
59 self.assertEqual(d, {'CONFIG_ARGS': "'--arg1=optarg1' 'ENV=LIB'", |
|
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
60 'OTHER': 'foo'}) |
|
44198
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
61 |
|
54669
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
62 def test_parse_makefile_literal_dollar(self): |
|
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
63 self.makefile = test.test_support.TESTFN |
|
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
64 fd = open(self.makefile, 'w') |
|
66008
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
58775
diff
changeset
|
65 try: |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
58775
diff
changeset
|
66 fd.write(r"CONFIG_ARGS= '--arg1=optarg1' 'ENV=\$$LIB'" '\n') |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
58775
diff
changeset
|
67 fd.write('VAR=$OTHER\nOTHER=foo') |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
58775
diff
changeset
|
68 finally: |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
58775
diff
changeset
|
69 fd.close() |
|
54669
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
70 d = sysconfig.parse_makefile(self.makefile) |
|
66348
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
71 self.assertEqual(d, {'CONFIG_ARGS': r"'--arg1=optarg1' 'ENV=\$LIB'", |
|
614c84670c63
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
66008
diff
changeset
|
72 'OTHER': 'foo'}) |
|
54669
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
73 |
|
44198
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
74 |
|
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
75 def test_suite(): |
|
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
76 suite = unittest.TestSuite() |
|
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
77 suite.addTest(unittest.makeSuite(SysconfigTestCase)) |
|
a53ef778590e
Fixed get_config_h_filename for Windows. Without the patch it can't find the pyconfig.h file inside a build tree.
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
78 return suite |
|
54669
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
79 |
|
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
80 |
|
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
81 if __name__ == '__main__': |
|
0adf0fa7993b
Merged revisions 73341 via svnmerge from
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
51505
diff
changeset
|
82 test.test_support.run_unittest(test_suite()) |
