annotate Lib/test/test_platform.py @ 87690:66c1c9f32567 default tip

Add use_weakref option to functools.lru_cache The use_weakref option makes lru_cache create weak references to the function arguments when creating the cache key, which prevents them from staying in the memory forever even after all other references to them are gone. This is a proof of concept for http://bugs.python.org/issue19859
author Radomir Dopieralski <devel@sheep.art.pl>
date Tue, 03 Dec 2013 16:02:48 +0100
parents 10a261824b62
children
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
47079
3407bf9dac38 make test_platform a bit more assertive (We'll see what the buildbots say.)
Benjamin Peterson <benjamin@python.org>
parents: 37472
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
47079
3407bf9dac38 make test_platform a bit more assertive (We'll see what the buildbots say.)
Benjamin Peterson <benjamin@python.org>
parents: 37472
diff changeset
7
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 47079
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)'),
86530
10a261824b62 #8964: fix platform._sys_version to handle IronPython 2.6+.
Ezio Melotti <ezio.melotti@gmail.com>
parents: 77755
diff changeset
94
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
95 ("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
96 :
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 ("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
98 ".NET 2.0.50727.3053"),
86530
10a261824b62 #8964: fix platform._sys_version to handle IronPython 2.6+.
Ezio Melotti <ezio.melotti@gmail.com>
parents: 77755
diff changeset
99
10a261824b62 #8964: fix platform._sys_version to handle IronPython 2.6+.
Ezio Melotti <ezio.melotti@gmail.com>
parents: 77755
diff changeset
100 ("2.6.1 (IronPython 2.6.1 (2.6.10920.0) on .NET 2.0.50727.1433)", None, "cli")
10a261824b62 #8964: fix platform._sys_version to handle IronPython 2.6+.
Ezio Melotti <ezio.melotti@gmail.com>
parents: 77755
diff changeset
101 :
10a261824b62 #8964: fix platform._sys_version to handle IronPython 2.6+.
Ezio Melotti <ezio.melotti@gmail.com>
parents: 77755
diff changeset
102 ("IronPython", "2.6.1", "", "", ("", ""),
10a261824b62 #8964: fix platform._sys_version to handle IronPython 2.6+.
Ezio Melotti <ezio.melotti@gmail.com>
parents: 77755
diff changeset
103 ".NET 2.0.50727.1433"),
10a261824b62 #8964: fix platform._sys_version to handle IronPython 2.6+.
Ezio Melotti <ezio.melotti@gmail.com>
parents: 77755
diff changeset
104
10a261824b62 #8964: fix platform._sys_version to handle IronPython 2.6+.
Ezio Melotti <ezio.melotti@gmail.com>
parents: 77755
diff changeset
105 ("2.7.4 (IronPython 2.7.4 (2.7.0.40) on Mono 4.0.30319.1 (32-bit))", None, "cli")
10a261824b62 #8964: fix platform._sys_version to handle IronPython 2.6+.
Ezio Melotti <ezio.melotti@gmail.com>
parents: 77755
diff changeset
106 :
10a261824b62 #8964: fix platform._sys_version to handle IronPython 2.6+.
Ezio Melotti <ezio.melotti@gmail.com>
parents: 77755
diff changeset
107 ("IronPython", "2.7.4", "", "", ("", ""),
10a261824b62 #8964: fix platform._sys_version to handle IronPython 2.6+.
Ezio Melotti <ezio.melotti@gmail.com>
parents: 77755
diff changeset
108 "Mono 4.0.30319.1 (32-bit)"),
10a261824b62 #8964: fix platform._sys_version to handle IronPython 2.6+.
Ezio Melotti <ezio.melotti@gmail.com>
parents: 77755
diff changeset
109
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
110 ("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
111 ('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
112 :
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
113 ("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
114 ('trunk:6107', 'Mar 26 2009'), "java1.5.0_16"),
86530
10a261824b62 #8964: fix platform._sys_version to handle IronPython 2.6+.
Ezio Melotti <ezio.melotti@gmail.com>
parents: 77755
diff changeset
115
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
116 ("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
117 ('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
118 :
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 ("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
120 "")
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 }
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 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
123 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
124 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
125 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
126 if hasattr(sys, "_mercurial"):
f3f8b39eaa1e Adapt platform and test_platform to the build identification changes.
Georg Brandl <georg@python.org>
parents: 66340
diff changeset
127 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
128 else:
68275
f3f8b39eaa1e Adapt platform and test_platform to the build identification changes.
Georg Brandl <georg@python.org>
parents: 66340
diff changeset
129 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
130 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
131 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
132 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
133 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
134 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
135 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
136 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
137 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
138
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
139 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
140 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
141 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
142 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
143 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
144 )
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
145
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
146 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
147 res = platform.uname()
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 52389
diff changeset
148 self.assertTrue(any(res))
77755
344b06318aca Issue #15164: Change return value of platform.uname() from a
Larry Hastings <larry@hastings.org>
parents: 71318
diff changeset
149 self.assertEqual(res[0], res.system)
344b06318aca Issue #15164: Change return value of platform.uname() from a
Larry Hastings <larry@hastings.org>
parents: 71318
diff changeset
150 self.assertEqual(res[1], res.node)
344b06318aca Issue #15164: Change return value of platform.uname() from a
Larry Hastings <larry@hastings.org>
parents: 71318
diff changeset
151 self.assertEqual(res[2], res.release)
344b06318aca Issue #15164: Change return value of platform.uname() from a
Larry Hastings <larry@hastings.org>
parents: 71318
diff changeset
152 self.assertEqual(res[3], res.version)
344b06318aca Issue #15164: Change return value of platform.uname() from a
Larry Hastings <larry@hastings.org>
parents: 71318
diff changeset
153 self.assertEqual(res[4], res.machine)
344b06318aca Issue #15164: Change return value of platform.uname() from a
Larry Hastings <larry@hastings.org>
parents: 71318
diff changeset
154 self.assertEqual(res[5], res.processor)
35900
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
155
59915
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
156 @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
157 def test_uname_win32_ARCHITEW6432(self):
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
158 # 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
159 # 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
160 # using it, per
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
161 # 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
162 try:
59974
cd0ca56b7880 Fix porting mistake in r79298.
R. David Murray <rdmurray@bitdance.com>
parents: 59915
diff changeset
163 with support.EnvironmentVarGuard() as environ:
59915
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
164 if 'PROCESSOR_ARCHITEW6432' in environ:
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
165 del environ['PROCESSOR_ARCHITEW6432']
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
166 environ['PROCESSOR_ARCHITECTURE'] = 'foo'
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
167 platform._uname_cache = None
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
168 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
169 self.assertEqual(machine, 'foo')
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
170 environ['PROCESSOR_ARCHITEW6432'] = 'bar'
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
171 platform._uname_cache = None
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
172 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
173 self.assertEqual(machine, 'bar')
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
174 finally:
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
175 platform._uname_cache = None
b7872b0e8ab2 Merged revisions 79294 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 59613
diff changeset
176
35900
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
177 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
178 res = platform.java_ver()
47079
3407bf9dac38 make test_platform a bit more assertive (We'll see what the buildbots say.)
Benjamin Peterson <benjamin@python.org>
parents: 37472
diff changeset
179 if sys.platform == 'java':
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 52389
diff changeset
180 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
181
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
182 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
183 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
184
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
185 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
186 res = platform.mac_ver()
47378
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
187
77755
344b06318aca Issue #15164: Change return value of platform.uname() from a
Larry Hastings <larry@hastings.org>
parents: 71318
diff changeset
188 if platform.uname().system == 'Darwin':
47378
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
189 # 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
190 # the right version information is returned
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
191 fd = os.popen('sw_vers', 'r')
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
192 real_ver = None
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
193 for ln in fd:
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
194 if ln.startswith('ProductVersion:'):
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
195 real_ver = ln.strip().split()[-1]
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
196 break
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
197 fd.close()
55593
0bb232078b8c Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents: 52389
diff changeset
198 self.assertFalse(real_ver is None)
55814
77ab93ca065e Merged revisions 74641 via svnmerge from
Brett Cannon <bcannon@gmail.com>
parents: 55593
diff changeset
199 result_list = res[0].split('.')
77ab93ca065e Merged revisions 74641 via svnmerge from
Brett Cannon <bcannon@gmail.com>
parents: 55593
diff changeset
200 expect_list = real_ver.split('.')
77ab93ca065e Merged revisions 74641 via svnmerge from
Brett Cannon <bcannon@gmail.com>
parents: 55593
diff changeset
201 len_diff = len(result_list) - len(expect_list)
77ab93ca065e Merged revisions 74641 via svnmerge from
Brett Cannon <bcannon@gmail.com>
parents: 55593
diff changeset
202 # 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
203 if len_diff > 0:
77ab93ca065e Merged revisions 74641 via svnmerge from
Brett Cannon <bcannon@gmail.com>
parents: 55593
diff changeset
204 expect_list.extend(['0'] * len_diff)
66340
2beb25369289 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 63157
diff changeset
205 self.assertEqual(result_list, expect_list)
47378
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
206
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
207 # res[1] claims to contain
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
208 # (version, dev_stage, non_release_version)
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
209 # That information is no longer available
66340
2beb25369289 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 63157
diff changeset
210 self.assertEqual(res[1], ('', '', ''))
47378
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
211
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
212 if sys.byteorder == 'little':
71317
d050c8c9a3b3 Issue #12549: Correct test_platform to not fail when OS X returns 'x86_64'
Ned Deily <nad@acm.org>
parents: 68276
diff changeset
213 self.assertIn(res[2], ('i386', 'x86_64'))
47378
1d29bfa27368 Merged revisions 63460,63464 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
214 else:
66340
2beb25369289 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 63157
diff changeset
215 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
216
63157
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
217
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
218 @unittest.skipUnless(sys.platform == 'darwin', "OSX only test")
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
219 def test_mac_ver_with_fork(self):
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
220 # 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
221 #
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
222 # 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
223 #
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
224 pid = os.fork()
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
225 if pid == 0:
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
226 # child
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
227 info = platform.mac_ver()
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
228 os._exit(0)
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
229
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
230 else:
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
231 # parent
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
232 cpid, sts = os.waitpid(pid, 0)
66340
2beb25369289 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 63157
diff changeset
233 self.assertEqual(cpid, pid)
2beb25369289 Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 63157
diff changeset
234 self.assertEqual(sts, 0)
63157
183c5625e00b Merged revisions 83075 via svnmerge from
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 58482
diff changeset
235
35900
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
236 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
237 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
238
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
239 def test_libc_ver(self):
37472
f8fc30c0fc7c Fix test_platform on cygwin. When running from build area, sys.executable
Anthony Baxter <anthonybaxter@gmail.com>
parents: 35900
diff changeset
240 import os
47079
3407bf9dac38 make test_platform a bit more assertive (We'll see what the buildbots say.)
Benjamin Peterson <benjamin@python.org>
parents: 37472
diff changeset
241 if os.path.isdir(sys.executable) and \
3407bf9dac38 make test_platform a bit more assertive (We'll see what the buildbots say.)
Benjamin Peterson <benjamin@python.org>
parents: 37472
diff changeset
242 os.path.exists(sys.executable+'.exe'):
37472
f8fc30c0fc7c Fix test_platform on cygwin. When running from build area, sys.executable
Anthony Baxter <anthonybaxter@gmail.com>
parents: 35900
diff changeset
243 # 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
244 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
245 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
246 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
247 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
248
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
249 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
250
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
251 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
252 # 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
253 ('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
254 ('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
255 ('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
256 ('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
257 ('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
258 ('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
259 ('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
260 ('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
261 ('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
262 ('', ('', '', '')), # 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
263 ):
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
264 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
265
68215
20a5a08c3b6c Issue #11377: Deprecate platform.popen() and reimplement it with os.popen().
Victor Stinner <victor.stinner@haypocalc.com>
parents: 67183
diff changeset
266 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
267 mswindows = (sys.platform == "win32")
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
268
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
269 if mswindows:
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
270 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
271 else:
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
272 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
273 with warnings.catch_warnings():
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
274 warnings.simplefilter("ignore", DeprecationWarning)
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
275 with platform.popen(command) as stdout:
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
276 hello = stdout.read().strip()
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
277 stdout.close()
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
278 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
279
20a5a08c3b6c Issue #11377: Deprecate platform.popen() and reimplement it with os.popen().
Victor Stinner <victor.stinner@haypocalc.com>
parents: 67183
diff changeset
280 data = 'plop'
68217
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
281 if mswindows:
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
282 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
283 else:
f5398fb81428 Issue #11377: Fix quoting on Windows in test_platform
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68215
diff changeset
284 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
285 command = command.format(sys.executable)
70755
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
286 with warnings.catch_warnings():
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
287 warnings.simplefilter("ignore", DeprecationWarning)
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
288 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
289 stdout = stdin.write(data)
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
290 ret = stdin.close()
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
291 self.assertIsNotNone(ret)
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
292 if os.name == 'nt':
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
293 returncode = ret
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
294 else:
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
295 returncode = ret >> 8
5a745404facf test_platform: ignore DeprecationWarning on popen() test
Victor Stinner <victor.stinner@haypocalc.com>
parents: 68278
diff changeset
296 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
297
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
298
35900
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
299 def test_main():
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 47079
diff changeset
300 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
301 PlatformTest
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
302 )
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
303
e9be9e6188f4 Add a rudimentary test for the platform module that at least calls each
Walter Dörwald <walter@livinglogic.de>
parents:
diff changeset
304 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
305 test_main()