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