test_platform.py revision a4e4ef1cea957795b45e9956a6fc6eec76ceebaf
15915a4dcfebf74d0a2c99848ede619f5bf7d2899Benjamin Petersonimport sys
2913c15c1c6641195b492837eee1189369abe04b7Benjamin Petersonimport os
3c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwaldimport unittest
4c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwaldimport platform
5c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
65915a4dcfebf74d0a2c99848ede619f5bf7d2899Benjamin Petersonfrom test import test_support
75915a4dcfebf74d0a2c99848ede619f5bf7d2899Benjamin Peterson
8c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwaldclass PlatformTest(unittest.TestCase):
9c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_architecture(self):
10c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res = platform.architecture()
11c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
12c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_machine(self):
13c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res = platform.machine()
14c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
15c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_node(self):
16c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res = platform.node()
17c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
18c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_platform(self):
19c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        for aliased in (False, True):
20c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald            for terse in (False, True):
21c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald                res = platform.platform(aliased, terse)
22c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
23c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_processor(self):
24c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res = platform.processor()
25c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
26c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_python_build(self):
27c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res = platform.python_build()
28c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
29c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_python_compiler(self):
30c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res = platform.python_compiler()
31c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
32c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_version(self):
33c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res1 = platform.version()
34c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res2 = platform.version_tuple()
35c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        self.assertEqual(res1, ".".join(res2))
36c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
37c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_release(self):
38c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res = platform.release()
39c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
40c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_system(self):
41c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res = platform.system()
42c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
43c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_version(self):
44c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res = platform.version()
45c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
46c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_system_alias(self):
47c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res = platform.system_alias(
48c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald            platform.system(),
49c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald            platform.release(),
50c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald            platform.version(),
51c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        )
52c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
53c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_uname(self):
54c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res = platform.uname()
555915a4dcfebf74d0a2c99848ede619f5bf7d2899Benjamin Peterson        self.assert_(any(res))
56c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
57c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_java_ver(self):
58c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res = platform.java_ver()
595915a4dcfebf74d0a2c99848ede619f5bf7d2899Benjamin Peterson        if sys.platform == 'java':
605915a4dcfebf74d0a2c99848ede619f5bf7d2899Benjamin Peterson            self.assert_(all(res))
61c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
62c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_win32_ver(self):
63c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res = platform.win32_ver()
64c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
65c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_mac_ver(self):
66c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res = platform.mac_ver()
677a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren
68a4e4ef1cea957795b45e9956a6fc6eec76ceebafBenjamin Peterson        try:
69a4e4ef1cea957795b45e9956a6fc6eec76ceebafBenjamin Peterson            import gestalt
70a4e4ef1cea957795b45e9956a6fc6eec76ceebafBenjamin Peterson        except ImportError:
71a4e4ef1cea957795b45e9956a6fc6eec76ceebafBenjamin Peterson            have_toolbox_glue = False
72a4e4ef1cea957795b45e9956a6fc6eec76ceebafBenjamin Peterson        else:
73a4e4ef1cea957795b45e9956a6fc6eec76ceebafBenjamin Peterson            have_toolbox_glue = True
74a4e4ef1cea957795b45e9956a6fc6eec76ceebafBenjamin Peterson
75a4e4ef1cea957795b45e9956a6fc6eec76ceebafBenjamin Peterson        if have_toolbox_glue and os.uname()[0] == 'Darwin':
767a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren            # We're on a MacOSX system, check that
777a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren            # the right version information is returned
787a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren            fd = os.popen('sw_vers', 'r')
797a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren            real_ver = None
807a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren            for ln in fd:
817a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren                if ln.startswith('ProductVersion:'):
827a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren                    real_ver = ln.strip().split()[-1]
837a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren                    break
847a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren            fd.close()
857a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren            self.failIf(real_ver is None)
867a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren            self.assertEquals(res[0], real_ver)
877a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren
887a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren            # res[1] claims to contain
897a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren            # (version, dev_stage, non_release_version)
907a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren            # That information is no longer available
917a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren            self.assertEquals(res[1], ('', '', ''))
927a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren
937a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren            if sys.byteorder == 'little':
947a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren                self.assertEquals(res[2], 'i386')
957a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren            else:
967a0f4c75b1d2e3ceb758970ad39d468e95dfc6edRonald Oussoren                self.assertEquals(res[2], 'PowerPC')
97c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
98c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_dist(self):
99c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        res = platform.dist()
100c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
101c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    def test_libc_ver(self):
10206853fc15055686ec02fd2671fd37cda0f69209bAnthony Baxter        import os
1035915a4dcfebf74d0a2c99848ede619f5bf7d2899Benjamin Peterson        if os.path.isdir(sys.executable) and \
1045915a4dcfebf74d0a2c99848ede619f5bf7d2899Benjamin Peterson           os.path.exists(sys.executable+'.exe'):
10506853fc15055686ec02fd2671fd37cda0f69209bAnthony Baxter            # Cygwin horror
10606853fc15055686ec02fd2671fd37cda0f69209bAnthony Baxter            executable = executable + '.exe'
1075915a4dcfebf74d0a2c99848ede619f5bf7d2899Benjamin Peterson        res = platform.libc_ver(sys.executable)
108c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
109c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwalddef test_main():
110c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    test_support.run_unittest(
111c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald        PlatformTest
112c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    )
113c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald
114c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwaldif __name__ == '__main__':
115c69d1c498f3896803f78de613a54d17be88bbeafWalter Dörwald    test_main()
116