annotate Lib/test/test_platform.py @ 70817:dd775b1561ba

Fix markup.
author Georg Brandl <georg@python.org>
date Tue, 14 Jun 2011 21:09:55 +0200
parents 5a745404facf
children 0025ce38fbd0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
47378
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
1 import os
47082
b630729571e6 Merged revisions 63208-63209,63211-63212,63214-63217,63219-63224,63226-63227,63229-63232,63234-63235,63237-63239,63241,63243-63246,63250-63254,63256-63259,63261,63263-63264,63266-63267,63269-63270,63272-63273,63275-63276,63278,63280-63281,63283-63284,63286-63287,63289-63290,63292-63293,63295-63296,63298-63299,63301-63302,63304-63305,63307,63309-63314,63316-63322,63324-63325,63327-63335,63337-63338,63340-63342,63344-63346,63348 via svnmerge from
Alexandre Vassalotti <alexandre@peadrop.com>
parents: 37879
diff changeset
2 import platform
49441
c2d0196ea58b Added the test for issue3762.
Hirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp>
parents: 47570
diff changeset
3 import subprocess
70755
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
4 import sys
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
5 import unittest
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
6 import warnings
47082
b630729571e6 Merged revisions 63208-63209,63211-63212,63214-63217,63219-63224,63226-63227,63229-63232,63234-63235,63237-63239,63241,63243-63246,63250-63254,63256-63259,63261,63263-63264,63266-63267,63269-63270,63272-63273,63275-63276,63278,63280-63281,63283-63284,63286-63287,63289-63290,63292-63293,63295-63296,63298-63299,63301-63302,63304-63305,63307,63309-63314,63316-63322,63324-63325,63327-63335,63337-63338,63340-63342,63344-63346,63348 via svnmerge from
Alexandre Vassalotti <alexandre@peadrop.com>
parents: 37879
diff changeset
7
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 47082
diff changeset
8 from test import support
35900
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
9
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
10 class PlatformTest(unittest.TestCase):
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
11 def test_architecture(self):
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
12 res = platform.architecture()
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
13
67183
5aa433a277f9 Fix #9333. The symlink function is always available now, raising OSError
Brian Curtin <brian.curtin@gmail.com>
parents: 66606
diff changeset
14 @support.skip_unless_symlink
62874
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
15 def test_architecture_via_symlink(self): # issue3762
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
16 # On Windows, the EXE needs to know where pythonXY.dll is at so we have
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
17 # to add the directory to the path.
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
18 if sys.platform == "win32":
62900
e97cdd5c5e4f Re-flow several long lines from #1578269.
Brian Curtin <brian.curtin@gmail.com>
parents: 62874
diff changeset
19 os.environ["Path"] = "{};{}".format(
e97cdd5c5e4f Re-flow several long lines from #1578269.
Brian Curtin <brian.curtin@gmail.com>
parents: 62874
diff changeset
20 os.path.dirname(sys.executable), os.environ["Path"])
62874
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
21
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
22 def get(python):
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
23 cmd = [python, '-c',
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
24 'import platform; print(platform.architecture())']
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
25 p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
26 return p.communicate()
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
27 real = os.path.realpath(sys.executable)
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
28 link = os.path.abspath(support.TESTFN)
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
29 os.symlink(real, link)
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
30 try:
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
31 self.assertEqual(get(real), get(link))
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
32 finally:
730b728e5aef Implement #1578269. Patch by Jason R. Coombs.
Brian Curtin <brian.curtin@gmail.com>
parents: 59974
diff changeset
33 os.remove(link)
49441
c2d0196ea58b Added the test for issue3762.
Hirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp>
parents: 47570
diff changeset
34
35900
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
35 def test_platform(self):
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
36 for aliased in (False, True):
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
37 for terse in (False, True):
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
38 res = platform.platform(aliased, terse)
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
39
52365
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
40 def test_system(self):
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
41 res = platform.system()
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
42
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
43 def test_node(self):
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
44 res = platform.node()
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
45
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
46 def test_release(self):
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
47 res = platform.release()
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
48
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
49 def test_version(self):
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
50 res = platform.version()
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
51
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
52 def test_machine(self):
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
53 res = platform.machine()
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
54
35900
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
55 def test_processor(self):
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
56 res = platform.processor()
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
57
52389
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
58 def setUp(self):
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
59 self.save_version = sys.version
68275
f3f8b39eaa1e Adapt platform and test_platform to the build identification changes.
Georg Brandl <georg@python.org>
parents: 66340
diff changeset
60 self.save_mercurial = sys._mercurial
52389
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
61 self.save_platform = sys.platform
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
62
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
63 def tearDown(self):
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
64 sys.version = self.save_version
68275
f3f8b39eaa1e Adapt platform and test_platform to the build identification changes.
Georg Brandl <georg@python.org>
parents: 66340
diff changeset
65 sys._mercurial = self.save_mercurial
52389
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
66 sys.platform = self.save_platform
52365
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
67
52389
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
68 def test_sys_version(self):
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
69 # Old test.
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
70 for input, output in (
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
71 ('2.4.3 (#1, Jun 21 2006, 13:54:21) \n[GCC 3.3.4 (pre 3.3.5 20040809)]',
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
72 ('CPython', '2.4.3', '', '', '1', 'Jun 21 2006 13:54:21', 'GCC 3.3.4 (pre 3.3.5 20040809)')),
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
73 ('IronPython 1.0.60816 on .NET 2.0.50727.42',
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
74 ('IronPython', '1.0.60816', '', '', '', '', '.NET 2.0.50727.42')),
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
75 ('IronPython 1.0 (1.0.61005.1977) on .NET 2.0.50727.42',
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
76 ('IronPython', '1.0.0', '', '', '', '', '.NET 2.0.50727.42')),
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
77 ):
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
78 # branch and revision are not "parsed", but fetched
68278
0e7e3b1621da Remove sys.subversion and svn build identification leftovers.
Georg Brandl <georg@python.org>
parents: 68277
diff changeset
79 # from sys._mercurial. Ignore them
52389
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
80 (name, version, branch, revision, buildno, builddate, compiler) \
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
81 = platform._sys_version(input)
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
82 self.assertEqual(
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
83 (name, version, '', '', buildno, builddate, compiler), output)
52365
475808698eaf Merged revisions 70628 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49587
diff changeset
84
52389
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
85 # Tests for python_implementation(), python_version(), python_branch(),
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
86 # python_revision(), python_build(), and python_compiler().
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
87 sys_versions = {
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
88 ("2.6.1 (r261:67515, Dec 6 2008, 15:26:00) \n[GCC 4.0.1 (Apple Computer, Inc. build 5370)]",
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
89 ('CPython', 'tags/r261', '67515'), self.save_platform)
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
90 :
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
91 ("CPython", "2.6.1", "tags/r261", "67515",
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
92 ('r261:67515', 'Dec 6 2008 15:26:00'),
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
93 'GCC 4.0.1 (Apple Computer, Inc. build 5370)'),
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
94 ("IronPython 2.0 (2.0.0.0) on .NET 2.0.50727.3053", None, "cli")
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
95 :
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
96 ("IronPython", "2.0.0", "", "", ("", ""),
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
97 ".NET 2.0.50727.3053"),
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
98 ("2.5 (trunk:6107, Mar 26 2009, 13:02:18) \n[Java HotSpot(TM) Client VM (\"Apple Computer, Inc.\")]",
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
99 ('Jython', 'trunk', '6107'), "java1.5.0_16")
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
100 :
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
101 ("Jython", "2.5.0", "trunk", "6107",
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
102 ('trunk:6107', 'Mar 26 2009'), "java1.5.0_16"),
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
103 ("2.5.2 (63378, Mar 26 2009, 18:03:29)\n[PyPy 1.0.0]",
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
104 ('PyPy', 'trunk', '63378'), self.save_platform)
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
105 :
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
106 ("PyPy", "2.5.2", "trunk", "63378", ('63378', 'Mar 26 2009'),
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
107 "")
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
108 }
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
109 for (version_tag, subversion, sys_platform), info in \
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
110 sys_versions.items():
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
111 sys.version = version_tag
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
112 if subversion is None:
68275
f3f8b39eaa1e Adapt platform and test_platform to the build identification changes.
Georg Brandl <georg@python.org>
parents: 66340
diff changeset
113 if hasattr(sys, "_mercurial"):
f3f8b39eaa1e Adapt platform and test_platform to the build identification changes.
Georg Brandl <georg@python.org>
parents: 66340
diff changeset
114 del sys._mercurial
52389
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
115 else:
68275
f3f8b39eaa1e Adapt platform and test_platform to the build identification changes.
Georg Brandl <georg@python.org>
parents: 66340
diff changeset
116 sys._mercurial = subversion
52389
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
117 if sys_platform is not None:
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
118 sys.platform = sys_platform
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
119 self.assertEqual(platform.python_implementation(), info[0])
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
120 self.assertEqual(platform.python_version(), info[1])
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
121 self.assertEqual(platform.python_branch(), info[2])
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
122 self.assertEqual(platform.python_revision(), info[3])
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
123 self.assertEqual(platform.python_build(), info[4])
d4e7470bd660 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 52365
diff changeset
124 self.assertEqual(platform.python_compiler(), info[5])
35900
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
125
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
126 def test_system_alias(self):
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
127 res = platform.system_alias(
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
128 platform.system(),
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
129 platform.release(),
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
130 platform.version(),
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
131 )
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
132
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
133 def test_uname(self):
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
134 res = platform.uname()
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 52389
diff changeset
135 self.assertTrue(any(res))
35900
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
136
59915
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
137 @unittest.skipUnless(sys.platform.startswith('win'), "windows only test")
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
138 def test_uname_win32_ARCHITEW6432(self):
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
139 # Issue 7860: make sure we get architecture from the correct variable
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
140 # on 64 bit Windows: if PROCESSOR_ARCHITEW6432 exists we should be
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
141 # using it, per
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
142 # http://blogs.msdn.com/david.wang/archive/2006/03/26/HOWTO-Detect-Process-Bitness.aspx
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
143 try:
59974
cd0ca56b7880 Fix porting mistake in r79298.
R. David Murray <rdmurray@bitdance.com>
parents: 59915
diff changeset
144 with support.EnvironmentVarGuard() as environ:
59915
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
145 if 'PROCESSOR_ARCHITEW6432' in environ:
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
146 del environ['PROCESSOR_ARCHITEW6432']
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
147 environ['PROCESSOR_ARCHITECTURE'] = 'foo'
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
148 platform._uname_cache = None
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
149 system, node, release, version, machine, processor = platform.uname()
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
150 self.assertEqual(machine, 'foo')
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
151 environ['PROCESSOR_ARCHITEW6432'] = 'bar'
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
152 platform._uname_cache = None
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
153 system, node, release, version, machine, processor = platform.uname()
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
154 self.assertEqual(machine, 'bar')
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
155 finally:
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
156 platform._uname_cache = None
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
157
35900
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
158 def test_java_ver(self):
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
159 res = platform.java_ver()
47082
b630729571e6 Merged revisions 63208-63209,63211-63212,63214-63217,63219-63224,63226-63227,63229-63232,63234-63235,63237-63239,63241,63243-63246,63250-63254,63256-63259,63261,63263-63264,63266-63267,63269-63270,63272-63273,63275-63276,63278,63280-63281,63283-63284,63286-63287,63289-63290,63292-63293,63295-63296,63298-63299,63301-63302,63304-63305,63307,63309-63314,63316-63322,63324-63325,63327-63335,63337-63338,63340-63342,63344-63346,63348 via svnmerge from
Alexandre Vassalotti <alexandre@peadrop.com>
parents: 37879
diff changeset
160 if sys.platform == 'java':
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 52389
diff changeset
161 self.assertTrue(all(res))
35900
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
162
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
163 def test_win32_ver(self):
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
164 res = platform.win32_ver()
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
165
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
166 def test_mac_ver(self):
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
167 res = platform.mac_ver()
47378
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
168
47570
0ca2418c7702 Windows has no os.uname. Use platform.uname() instead.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents: 47378
diff changeset
169 if platform.uname()[0] == 'Darwin':
47378
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
170 # We're on a MacOSX system, check that
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
171 # the right version information is returned
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
172 fd = os.popen('sw_vers', 'r')
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
173 real_ver = None
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
174 for ln in fd:
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
175 if ln.startswith('ProductVersion:'):
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
176 real_ver = ln.strip().split()[-1]
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
177 break
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
178 fd.close()
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 52389
diff changeset
179 self.assertFalse(real_ver is None)
55814
77ab93ca065e Merged revisions 74641 via svnmerge from
Brett Cannon <bcannon@gmail.com>
parents: 55593
diff changeset
180 result_list = res[0].split('.')
77ab93ca065e Merged revisions 74641 via svnmerge from
Brett Cannon <bcannon@gmail.com>
parents: 55593
diff changeset
181 expect_list = real_ver.split('.')
77ab93ca065e Merged revisions 74641 via svnmerge from
Brett Cannon <bcannon@gmail.com>
parents: 55593
diff changeset
182 len_diff = len(result_list) - len(expect_list)
77ab93ca065e Merged revisions 74641 via svnmerge from
Brett Cannon <bcannon@gmail.com>
parents: 55593
diff changeset
183 # On Snow Leopard, sw_vers reports 10.6.0 as 10.6
77ab93ca065e Merged revisions 74641 via svnmerge from
Brett Cannon <bcannon@gmail.com>
parents: 55593
diff changeset
184 if len_diff > 0:
77ab93ca065e Merged revisions 74641 via svnmerge from
Brett Cannon <bcannon@gmail.com>
parents: 55593
diff changeset
185 expect_list.extend(['0'] * len_diff)
66340
2beb25369289 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 63157
diff changeset
186 self.assertEqual(result_list, expect_list)
47378
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
187
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
188 # res[1] claims to contain
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
189 # (version, dev_stage, non_release_version)
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
190 # That information is no longer available
66340
2beb25369289 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 63157
diff changeset
191 self.assertEqual(res[1], ('', '', ''))
47378
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
192
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
193 if sys.byteorder == 'little':
66340
2beb25369289 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 63157
diff changeset
194 self.assertEqual(res[2], 'i386')
47378
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
195 else:
66340
2beb25369289 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 63157
diff changeset
196 self.assertEqual(res[2], 'PowerPC')
35900
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
197
63157
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
198
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
199 @unittest.skipUnless(sys.platform == 'darwin', "OSX only test")
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
200 def test_mac_ver_with_fork(self):
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
201 # Issue7895: platform.mac_ver() crashes when using fork without exec
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
202 #
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
203 # This test checks that the fix for that issue works.
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
204 #
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
205 pid = os.fork()
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
206 if pid == 0:
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
207 # child
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
208 info = platform.mac_ver()
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
209 os._exit(0)
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
210
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
211 else:
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
212 # parent
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
213 cpid, sts = os.waitpid(pid, 0)
66340
2beb25369289 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 63157
diff changeset
214 self.assertEqual(cpid, pid)
2beb25369289 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 63157
diff changeset
215 self.assertEqual(sts, 0)
63157
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
216
35900
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
217 def test_dist(self):
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
218 res = platform.dist()
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
219
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
220 def test_libc_ver(self):
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 35900
diff changeset
221 import os
47082
b630729571e6 Merged revisions 63208-63209,63211-63212,63214-63217,63219-63224,63226-63227,63229-63232,63234-63235,63237-63239,63241,63243-63246,63250-63254,63256-63259,63261,63263-63264,63266-63267,63269-63270,63272-63273,63275-63276,63278,63280-63281,63283-63284,63286-63287,63289-63290,63292-63293,63295-63296,63298-63299,63301-63302,63304-63305,63307,63309-63314,63316-63322,63324-63325,63327-63335,63337-63338,63340-63342,63344-63346,63348 via svnmerge from
Alexandre Vassalotti <alexandre@peadrop.com>
parents: 37879
diff changeset
222 if os.path.isdir(sys.executable) and \
b630729571e6 Merged revisions 63208-63209,63211-63212,63214-63217,63219-63224,63226-63227,63229-63232,63234-63235,63237-63239,63241,63243-63246,63250-63254,63256-63259,63261,63263-63264,63266-63267,63269-63270,63272-63273,63275-63276,63278,63280-63281,63283-63284,63286-63287,63289-63290,63292-63293,63295-63296,63298-63299,63301-63302,63304-63305,63307,63309-63314,63316-63322,63324-63325,63327-63335,63337-63338,63340-63342,63344-63346,63348 via svnmerge from
Alexandre Vassalotti <alexandre@peadrop.com>
parents: 37879
diff changeset
223 os.path.exists(sys.executable+'.exe'):
37879
f731859e9b3b Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents: 35900
diff changeset
224 # Cygwin horror
59613
77c71f258df7 Merged revisions 78018,78035-78040,78042-78043,78046,78048-78052,78054,78059,78075-78080 via svnmerge from
Georg Brandl <georg@python.org>
parents: 58482
diff changeset
225 executable = sys.executable + '.exe'
77c71f258df7 Merged revisions 78018,78035-78040,78042-78043,78046,78048-78052,78054,78059,78075-78080 via svnmerge from
Georg Brandl <georg@python.org>
parents: 58482
diff changeset
226 else:
77c71f258df7 Merged revisions 78018,78035-78040,78042-78043,78046,78048-78052,78054,78059,78075-78080 via svnmerge from
Georg Brandl <georg@python.org>
parents: 58482
diff changeset
227 executable = sys.executable
77c71f258df7 Merged revisions 78018,78035-78040,78042-78043,78046,78048-78052,78054,78059,78075-78080 via svnmerge from
Georg Brandl <georg@python.org>
parents: 58482
diff changeset
228 res = platform.libc_ver(executable)
35900
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
229
49587
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
230 def test_parse_release_file(self):
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
231
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
232 for input, output in (
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
233 # Examples of release file contents:
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
234 ('SuSE Linux 9.3 (x86-64)', ('SuSE Linux ', '9.3', 'x86-64')),
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
235 ('SUSE LINUX 10.1 (X86-64)', ('SUSE LINUX ', '10.1', 'X86-64')),
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
236 ('SUSE LINUX 10.1 (i586)', ('SUSE LINUX ', '10.1', 'i586')),
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
237 ('Fedora Core release 5 (Bordeaux)', ('Fedora Core', '5', 'Bordeaux')),
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
238 ('Red Hat Linux release 8.0 (Psyche)', ('Red Hat Linux', '8.0', 'Psyche')),
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
239 ('Red Hat Linux release 9 (Shrike)', ('Red Hat Linux', '9', 'Shrike')),
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
240 ('Red Hat Enterprise Linux release 4 (Nahant)', ('Red Hat Enterprise Linux', '4', 'Nahant')),
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
241 ('CentOS release 4', ('CentOS', '4', None)),
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
242 ('Rocks release 4.2.1 (Cydonia)', ('Rocks', '4.2.1', 'Cydonia')),
58482
0cce60b68e46 Merged revisions 77735 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 55814
diff changeset
243 ('', ('', '', '')), # If there's nothing there.
49587
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
244 ):
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
245 self.assertEqual(platform._parse_release_file(input), output)
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
246
68215
20a5a08c3b6c Issue #11377: Deprecate platform.popen() and reimplement it with os.popen().
Victor Stinner <victor.stinner@haypocalc.com>
parents: 67183
diff changeset
247 def test_popen(self):
68217
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
248 mswindows = (sys.platform == "win32")
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
249
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
250 if mswindows:
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
251 command = '"{}" -c "print(\'Hello\')"'.format(sys.executable)
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
252 else:
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
253 command = "'{}' -c 'print(\"Hello\")'".format(sys.executable)
70755
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
254 with warnings.catch_warnings():
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
255 warnings.simplefilter("ignore", DeprecationWarning)
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
256 with platform.popen(command) as stdout:
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
257 hello = stdout.read().strip()
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
258 stdout.close()
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
259 self.assertEqual(hello, "Hello")
68215
20a5a08c3b6c Issue #11377: Deprecate platform.popen() and reimplement it with os.popen().
Victor Stinner <victor.stinner@haypocalc.com>
parents: 67183
diff changeset
260
20a5a08c3b6c Issue #11377: Deprecate platform.popen() and reimplement it with os.popen().
Victor Stinner <victor.stinner@haypocalc.com>
parents: 67183
diff changeset
261 data = 'plop'
68217
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
262 if mswindows:
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
263 command = '"{}" -c "import sys; data=sys.stdin.read(); exit(len(data))"'
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
264 else:
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
265 command = "'{}' -c 'import sys; data=sys.stdin.read(); exit(len(data))'"
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
266 command = command.format(sys.executable)
70755
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
267 with warnings.catch_warnings():
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
268 warnings.simplefilter("ignore", DeprecationWarning)
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
269 with platform.popen(command, 'w') as stdin:
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
270 stdout = stdin.write(data)
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
271 ret = stdin.close()
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
272 self.assertIsNotNone(ret)
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
273 if os.name == 'nt':
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
274 returncode = ret
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
275 else:
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
276 returncode = ret >> 8
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
277 self.assertEqual(returncode, len(data))
68215
20a5a08c3b6c Issue #11377: Deprecate platform.popen() and reimplement it with os.popen().
Victor Stinner <victor.stinner@haypocalc.com>
parents: 67183
diff changeset
278
49587
f66688e69f66 Merged revisions 66974,66977,66984,66989,66992,66994-66996,66998-67000,67007,67015 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 49441
diff changeset
279
35900
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
280 def test_main():
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 47082
diff changeset
281 support.run_unittest(
35900
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
282 PlatformTest
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
283 )
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
284
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
285 if __name__ == '__main__':
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
286 test_main()