mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 18:07:37 +00:00 
			
		
		
		
	 1a6e0d0831
			
		
	
	
		1a6e0d0831
		
	
	
	
	
		
			
			svn+ssh://pythondev@svn.python.org/python/trunk ........ r66974 | benjamin.peterson | 2008-10-19 08:59:01 -0500 (Sun, 19 Oct 2008) | 1 line fix compiler warning ........ r66977 | benjamin.peterson | 2008-10-19 14:39:16 -0500 (Sun, 19 Oct 2008) | 1 line mention -n ........ r66984 | armin.ronacher | 2008-10-20 16:29:08 -0500 (Mon, 20 Oct 2008) | 3 lines Fixed #4062, added import for _ast.__version__ to ast to match the documented behavior. ........ r66989 | matthias.klose | 2008-10-21 04:12:25 -0500 (Tue, 21 Oct 2008) | 2 lines - install versioned manpage ........ r66992 | benjamin.peterson | 2008-10-21 15:51:13 -0500 (Tue, 21 Oct 2008) | 1 line make sure to call iteritems() ........ r66994 | amaury.forgeotdarc | 2008-10-21 17:01:38 -0500 (Tue, 21 Oct 2008) | 6 lines #4157 move two test functions out of platform.py. Turn them into unit tests, and correct an obvious typo: (("a", "b") ("c", "d") ("e", "f")) compiles even with the missing commas, but does not execute very well... ........ r66995 | benjamin.peterson | 2008-10-21 17:18:29 -0500 (Tue, 21 Oct 2008) | 1 line return ArgInfo from inspect.getargvalues #4092 ........ r66996 | benjamin.peterson | 2008-10-21 17:20:31 -0500 (Tue, 21 Oct 2008) | 1 line add NEWs note for last change ........ r66998 | benjamin.peterson | 2008-10-22 15:57:43 -0500 (Wed, 22 Oct 2008) | 1 line fix a few typos ........ r66999 | benjamin.peterson | 2008-10-22 16:05:30 -0500 (Wed, 22 Oct 2008) | 1 line and another typo... ........ r67000 | benjamin.peterson | 2008-10-22 16:16:34 -0500 (Wed, 22 Oct 2008) | 1 line fix #4150: pdb's up command didn't work for generators in post-mortem ........ r67007 | benjamin.peterson | 2008-10-23 16:43:48 -0500 (Thu, 23 Oct 2008) | 1 line only nonempty __slots__ don't work ........ r67015 | georg.brandl | 2008-10-25 02:00:52 -0500 (Sat, 25 Oct 2008) | 2 lines Typo fix. ........
		
			
				
	
	
		
			158 lines
		
	
	
	
		
			5.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			158 lines
		
	
	
	
		
			5.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import sys
 | |
| import os
 | |
| import unittest
 | |
| import platform
 | |
| import subprocess
 | |
| 
 | |
| from test import support
 | |
| 
 | |
| class PlatformTest(unittest.TestCase):
 | |
|     def test_architecture(self):
 | |
|         res = platform.architecture()
 | |
| 
 | |
|     if hasattr(os, "symlink"):
 | |
|         def test_architecture_via_symlink(self): # issue3762
 | |
|             def get(python):
 | |
|                 cmd = [python, '-c',
 | |
|                     'import platform; print(platform.architecture())']
 | |
|                 p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
 | |
|                 return p.communicate()
 | |
|             real = os.path.realpath(sys.executable)
 | |
|             link = os.path.abspath(support.TESTFN)
 | |
|             os.symlink(real, link)
 | |
|             try:
 | |
|                 self.assertEqual(get(real), get(link))
 | |
|             finally:
 | |
|                 os.remove(link)
 | |
| 
 | |
|     def test_machine(self):
 | |
|         res = platform.machine()
 | |
| 
 | |
|     def test_node(self):
 | |
|         res = platform.node()
 | |
| 
 | |
|     def test_platform(self):
 | |
|         for aliased in (False, True):
 | |
|             for terse in (False, True):
 | |
|                 res = platform.platform(aliased, terse)
 | |
| 
 | |
|     def test_processor(self):
 | |
|         res = platform.processor()
 | |
| 
 | |
|     def test_python_build(self):
 | |
|         res = platform.python_build()
 | |
| 
 | |
|     def test_python_compiler(self):
 | |
|         res = platform.python_compiler()
 | |
| 
 | |
|     def test_version(self):
 | |
|         res1 = platform.version()
 | |
|         res2 = platform.version_tuple()
 | |
|         self.assertEqual(res1, ".".join(res2))
 | |
| 
 | |
|     def test_release(self):
 | |
|         res = platform.release()
 | |
| 
 | |
|     def test_system(self):
 | |
|         res = platform.system()
 | |
| 
 | |
|     def test_version(self):
 | |
|         res = platform.version()
 | |
| 
 | |
|     def test_system_alias(self):
 | |
|         res = platform.system_alias(
 | |
|             platform.system(),
 | |
|             platform.release(),
 | |
|             platform.version(),
 | |
|         )
 | |
| 
 | |
|     def test_uname(self):
 | |
|         res = platform.uname()
 | |
|         self.assert_(any(res))
 | |
| 
 | |
|     def test_java_ver(self):
 | |
|         res = platform.java_ver()
 | |
|         if sys.platform == 'java':
 | |
|             self.assert_(all(res))
 | |
| 
 | |
|     def test_win32_ver(self):
 | |
|         res = platform.win32_ver()
 | |
| 
 | |
|     def test_mac_ver(self):
 | |
|         res = platform.mac_ver()
 | |
| 
 | |
|         if platform.uname()[0] == 'Darwin':
 | |
|             # We're on a MacOSX system, check that
 | |
|             # the right version information is returned
 | |
|             fd = os.popen('sw_vers', 'r')
 | |
|             real_ver = None
 | |
|             for ln in fd:
 | |
|                 if ln.startswith('ProductVersion:'):
 | |
|                     real_ver = ln.strip().split()[-1]
 | |
|                     break
 | |
|             fd.close()
 | |
|             self.failIf(real_ver is None)
 | |
|             self.assertEquals(res[0], real_ver)
 | |
| 
 | |
|             # res[1] claims to contain
 | |
|             # (version, dev_stage, non_release_version)
 | |
|             # That information is no longer available
 | |
|             self.assertEquals(res[1], ('', '', ''))
 | |
| 
 | |
|             if sys.byteorder == 'little':
 | |
|                 self.assertEquals(res[2], 'i386')
 | |
|             else:
 | |
|                 self.assertEquals(res[2], 'PowerPC')
 | |
| 
 | |
|     def test_dist(self):
 | |
|         res = platform.dist()
 | |
| 
 | |
|     def test_libc_ver(self):
 | |
|         import os
 | |
|         if os.path.isdir(sys.executable) and \
 | |
|            os.path.exists(sys.executable+'.exe'):
 | |
|             # Cygwin horror
 | |
|             executable = executable + '.exe'
 | |
|         res = platform.libc_ver(sys.executable)
 | |
| 
 | |
|     def test_parse_release_file(self):
 | |
| 
 | |
|         for input, output in (
 | |
|             # Examples of release file contents:
 | |
|             ('SuSE Linux 9.3 (x86-64)', ('SuSE Linux ', '9.3', 'x86-64')),
 | |
|             ('SUSE LINUX 10.1 (X86-64)', ('SUSE LINUX ', '10.1', 'X86-64')),
 | |
|             ('SUSE LINUX 10.1 (i586)', ('SUSE LINUX ', '10.1', 'i586')),
 | |
|             ('Fedora Core release 5 (Bordeaux)', ('Fedora Core', '5', 'Bordeaux')),
 | |
|             ('Red Hat Linux release 8.0 (Psyche)', ('Red Hat Linux', '8.0', 'Psyche')),
 | |
|             ('Red Hat Linux release 9 (Shrike)', ('Red Hat Linux', '9', 'Shrike')),
 | |
|             ('Red Hat Enterprise Linux release 4 (Nahant)', ('Red Hat Enterprise Linux', '4', 'Nahant')),
 | |
|             ('CentOS release 4', ('CentOS', '4', None)),
 | |
|             ('Rocks release 4.2.1 (Cydonia)', ('Rocks', '4.2.1', 'Cydonia')),
 | |
|             ):
 | |
|             self.assertEqual(platform._parse_release_file(input), output)
 | |
| 
 | |
|     def test_sys_version(self):
 | |
| 
 | |
|         platform._sys_version_cache.clear()
 | |
|         for input, output in (
 | |
|             ('2.4.3 (#1, Jun 21 2006, 13:54:21) \n[GCC 3.3.4 (pre 3.3.5 20040809)]',
 | |
|              ('CPython', '2.4.3', '', '', '1', 'Jun 21 2006 13:54:21', 'GCC 3.3.4 (pre 3.3.5 20040809)')),
 | |
|             ('IronPython 1.0.60816 on .NET 2.0.50727.42',
 | |
|              ('IronPython', '1.0.60816', '', '', '', '', '.NET 2.0.50727.42')),
 | |
|             ('IronPython 1.0 (1.0.61005.1977) on .NET 2.0.50727.42',
 | |
|              ('IronPython', '1.0.0', '', '', '', '', '.NET 2.0.50727.42')),
 | |
|             ):
 | |
|             # branch and revision are not "parsed", but fetched
 | |
|             # from sys.subversion.  Ignore them
 | |
|             (name, version, branch, revision, buildno, builddate, compiler) \
 | |
|                    = platform._sys_version(input)
 | |
|             self.assertEqual(
 | |
|                 (name, version, '', '', buildno, builddate, compiler), output)
 | |
| 
 | |
| def test_main():
 | |
|     support.run_unittest(
 | |
|         PlatformTest
 | |
|     )
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     test_main()
 |