Mercurial > cpython-lru_cache-weakref
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 |
| 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() |
