| 
									
										
										
										
											2000-04-24 14:01:51 +00:00
										 |  |  | # Ridiculously simple test of the winsound module for Windows. | 
					
						
							| 
									
										
										
										
											2000-04-21 21:28:47 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  | import unittest | 
					
						
							| 
									
										
										
										
											2008-05-20 21:35:26 +00:00
										 |  |  | from test import support | 
					
						
							|  |  |  | support.requires('audio') | 
					
						
							| 
									
										
											  
											
												Merged revisions 70734,70775,70856,70874,70876-70877 via svnmerge
........
  r70734 | r.david.murray | 2009-03-30 15:04:00 -0400 (Mon, 30 Mar 2009) | 7 lines
  Add import_function method to test.test_support, and modify a number of
  tests that expect to be skipped if imports fail or functions don't
  exist to use import_function and import_module.  The ultimate goal is
  to change regrtest to not skip automatically on ImportError.  Checking
  in now to make sure the buldbots don't show any errors on platforms
  I can't direct test on.
........
  r70775 | r.david.murray | 2009-03-30 19:05:48 -0400 (Mon, 30 Mar 2009) | 4 lines
  Change more tests to use import_module for the modules that
  should cause tests to be skipped.  Also rename import_function
  to the more descriptive get_attribute and add a docstring.
........
  r70856 | r.david.murray | 2009-03-31 14:32:17 -0400 (Tue, 31 Mar 2009) | 7 lines
  A few more test skips via import_module, and change import_module to
  return the error message produced by importlib, so that if an import
  in the package whose import is being wrapped is what failed the skip
  message will contain the name of that module instead of the name of the
  wrapped module.  Also fixed formatting of some previous comments.
........
  r70874 | r.david.murray | 2009-03-31 15:33:15 -0400 (Tue, 31 Mar 2009) | 5 lines
  Improve test_support.import_module docstring, remove
  deprecated flag from get_attribute since it isn't likely
  to do anything useful.
........
  r70876 | r.david.murray | 2009-03-31 15:49:15 -0400 (Tue, 31 Mar 2009) | 4 lines
  Remove the regrtest check that turns any ImportError into a skipped test.
  Hopefully all modules whose imports legitimately result in a skipped
  test have been properly wrapped by the previous commits.
........
  r70877 | r.david.murray | 2009-03-31 15:57:24 -0400 (Tue, 31 Mar 2009) | 2 lines
  Add NEWS entry for regrtest change.
........
											
										 
											2009-03-31 23:16:50 +00:00
										 |  |  | import time | 
					
						
							| 
									
										
										
										
											2006-04-21 10:40:58 +00:00
										 |  |  | import os | 
					
						
							|  |  |  | import subprocess | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Merged revisions 70734,70775,70856,70874,70876-70877 via svnmerge
........
  r70734 | r.david.murray | 2009-03-30 15:04:00 -0400 (Mon, 30 Mar 2009) | 7 lines
  Add import_function method to test.test_support, and modify a number of
  tests that expect to be skipped if imports fail or functions don't
  exist to use import_function and import_module.  The ultimate goal is
  to change regrtest to not skip automatically on ImportError.  Checking
  in now to make sure the buldbots don't show any errors on platforms
  I can't direct test on.
........
  r70775 | r.david.murray | 2009-03-30 19:05:48 -0400 (Mon, 30 Mar 2009) | 4 lines
  Change more tests to use import_module for the modules that
  should cause tests to be skipped.  Also rename import_function
  to the more descriptive get_attribute and add a docstring.
........
  r70856 | r.david.murray | 2009-03-31 14:32:17 -0400 (Tue, 31 Mar 2009) | 7 lines
  A few more test skips via import_module, and change import_module to
  return the error message produced by importlib, so that if an import
  in the package whose import is being wrapped is what failed the skip
  message will contain the name of that module instead of the name of the
  wrapped module.  Also fixed formatting of some previous comments.
........
  r70874 | r.david.murray | 2009-03-31 15:33:15 -0400 (Tue, 31 Mar 2009) | 5 lines
  Improve test_support.import_module docstring, remove
  deprecated flag from get_attribute since it isn't likely
  to do anything useful.
........
  r70876 | r.david.murray | 2009-03-31 15:49:15 -0400 (Tue, 31 Mar 2009) | 4 lines
  Remove the regrtest check that turns any ImportError into a skipped test.
  Hopefully all modules whose imports legitimately result in a skipped
  test have been properly wrapped by the previous commits.
........
  r70877 | r.david.murray | 2009-03-31 15:57:24 -0400 (Tue, 31 Mar 2009) | 2 lines
  Add NEWS entry for regrtest change.
........
											
										 
											2009-03-31 23:16:50 +00:00
										 |  |  | winsound = support.import_module('winsound') | 
					
						
							| 
									
										
										
										
											2010-08-10 00:45:32 +00:00
										 |  |  | ctypes = support.import_module('ctypes') | 
					
						
							| 
									
										
										
										
											2010-04-13 11:43:10 +00:00
										 |  |  | import winreg | 
					
						
							| 
									
										
											  
											
												Merged revisions 70734,70775,70856,70874,70876-70877 via svnmerge
........
  r70734 | r.david.murray | 2009-03-30 15:04:00 -0400 (Mon, 30 Mar 2009) | 7 lines
  Add import_function method to test.test_support, and modify a number of
  tests that expect to be skipped if imports fail or functions don't
  exist to use import_function and import_module.  The ultimate goal is
  to change regrtest to not skip automatically on ImportError.  Checking
  in now to make sure the buldbots don't show any errors on platforms
  I can't direct test on.
........
  r70775 | r.david.murray | 2009-03-30 19:05:48 -0400 (Mon, 30 Mar 2009) | 4 lines
  Change more tests to use import_module for the modules that
  should cause tests to be skipped.  Also rename import_function
  to the more descriptive get_attribute and add a docstring.
........
  r70856 | r.david.murray | 2009-03-31 14:32:17 -0400 (Tue, 31 Mar 2009) | 7 lines
  A few more test skips via import_module, and change import_module to
  return the error message produced by importlib, so that if an import
  in the package whose import is being wrapped is what failed the skip
  message will contain the name of that module instead of the name of the
  wrapped module.  Also fixed formatting of some previous comments.
........
  r70874 | r.david.murray | 2009-03-31 15:33:15 -0400 (Tue, 31 Mar 2009) | 5 lines
  Improve test_support.import_module docstring, remove
  deprecated flag from get_attribute since it isn't likely
  to do anything useful.
........
  r70876 | r.david.murray | 2009-03-31 15:49:15 -0400 (Tue, 31 Mar 2009) | 4 lines
  Remove the regrtest check that turns any ImportError into a skipped test.
  Hopefully all modules whose imports legitimately result in a skipped
  test have been properly wrapped by the previous commits.
........
  r70877 | r.david.murray | 2009-03-31 15:57:24 -0400 (Tue, 31 Mar 2009) | 2 lines
  Add NEWS entry for regrtest change.
........
											
										 
											2009-03-31 23:16:50 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-13 02:32:40 +00:00
										 |  |  | def has_sound(sound): | 
					
						
							|  |  |  |     """Find out if a particular event is configured with a default sound""" | 
					
						
							|  |  |  |     try: | 
					
						
							| 
									
										
										
										
											2010-06-01 13:49:19 +00:00
										 |  |  |         # Ask the mixer API for the number of devices it knows about. | 
					
						
							|  |  |  |         # When there are no devices, PlaySound will fail. | 
					
						
							|  |  |  |         if ctypes.windll.winmm.mixerGetNumDevs() is 0: | 
					
						
							|  |  |  |             return False | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-13 12:43:07 +00:00
										 |  |  |         key = winreg.OpenKeyEx(winreg.HKEY_CURRENT_USER, | 
					
						
							| 
									
										
										
										
											2010-04-13 02:32:40 +00:00
										 |  |  |                 "AppEvents\Schemes\Apps\.Default\{0}\.Default".format(sound)) | 
					
						
							|  |  |  |         value = winreg.EnumValue(key, 0)[1] | 
					
						
							| 
									
										
										
										
											2010-04-13 11:54:59 +00:00
										 |  |  |         if value is not "": | 
					
						
							| 
									
										
										
										
											2010-04-13 02:32:40 +00:00
										 |  |  |             return True | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             return False | 
					
						
							|  |  |  |     except WindowsError: | 
					
						
							|  |  |  |         return False | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class BeepTest(unittest.TestCase): | 
					
						
							| 
									
										
											  
											
												Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
  Add more items; add fragmentary notes
........
  r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
  Issue#2238: some syntax errors from *args or **kwargs expressions
  would give bogus error messages, because of untested exceptions::
      >>> f(**g(1=2))
      XXX undetected error
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
      TypeError: 'int' object is not iterable
  instead of the expected SyntaxError: keyword can't be an expression
  Will backport.
........
  r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
  Remove the files/dirs after closing the DB so the tests work on Windows.
  Patch from Trent Nelson.  Also simplified removing a file by using test_support.
........
  r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
  Get this test to pass even when there is no sound card in the system.
  Patch from Trent Nelson.  (I can't test this.)
........
  r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
  Catch OSError when trying to remove a file in case removal fails. This
  should prevent a failure in tearDown masking any real test failure.
........
  r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
  Make the timeout longer to give slow machines a chance to pass the test
  before timing out.  This doesn't change the duration of the test under
  normal circumstances.  This is targetted at fixing the spurious failures
  on the FreeBSD buildbot primarily.
........
  r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
  Tabs -> spaces
........
  r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
  Use -u urlfetch to run more tests
........
  r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
  test_smtplib sometimes reports leaks too, suppress it
........
  r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
  Fix test_socketserver on Windows after r61099 added several signal.alarm()
  calls (which don't exist on non-Unix platforms).
  Thanks to Trent Nelson for the report and patch.
........
  r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
  Fix some rst.
........
  r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
  News entry for yesterdays commit.
........
  r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
  Issue 1872: Changed the struct module typecode from 't' to '?', for
  compatibility with PEP3118.
........
  r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
  Elaborate on the role of the altinstall target when installing multiple
  versions.
........
  r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
  #2239: PYTHONPATH delimiter is os.pathsep.
........
  r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
  C implementation of itertools.permutations().
........
  r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
  Small code cleanup.
........
  r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
  cd PCbuild only after deleting all pyc files.
........
  r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
  Add examples.
........
  r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
  Add two items
........
  r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
  #1725737: ignore other VC directories other than CVS and SVN's too.
........
  r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
  Patch #2232: os.tmpfile might fail on Windows if the user has no
  permission to create files in the root directory.
  Will backport to 2.5.
........
  r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
  Expand on re.split behavior with captured expressions.
........
  r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
  Little clarification of assignments.
........
  r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
  Add isinstance/issubclass to tutorial.
........
  r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
  Add missing NEWS entry for r61263.
........
  r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
  #2225: return nonzero status code from py_compile if not all files could be compiled.
........
  r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
  #2220: handle matching failure more gracefully.
........
  r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
  Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
  r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
  Rely on x64 platform configuration when building _bsddb on AMD64.
........
  r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
  Update db-4.4.20 build procedure.
........
  r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
  More tests.
........
  r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
  Issue 2246:  itertools grouper object did not participate in GC (should be backported).
........
  r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
  Tweak recipes and tests
........
  r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
  Progress on issue #1193577 by adding a polling .shutdown() method to
  SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
  are mine. I've also rearranged the code for timeouts in order to avoid
  interfering with the shutdown poll.
........
  r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
  Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
  r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
  Grammar fix
........
  r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
  #2253: fix continue vs. finally docs.
........
  r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
  Add new name for Mandrake: Mandriva.
........
  r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
  #1533486: fix types in refcount intro.
........
  r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
  Issue 1106316. post_mortem()'s parameter, traceback, is now
  optional: it defaults to the traceback of the exception that is currently
  being handled.
........
  r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
  Add tests for with and finally performance to pybench.
........
  r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
  Fix pybench for pythons < 2.6, tested back to 2.3.
........
  r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
  Well that was dumb. platform.python_implementation returns a function, not a
  string.
........
  r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
  #2249: document assertTrue and assertFalse.
........
  r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
  Introduce a lock to fix a race condition which caused an exception in the test.
  Some buildbots were consistently failing (e.g., amd64).
  Also remove a couple of semi-colons.
........
  r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
  Add recipe to docs.
........
  r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
  Fix the overflows in expandtabs().  "This time for sure!"
  (Exploit at request.)
........
  r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
  Improve docs for itemgetter().  Show that it works with slices.
........
  r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
  #2265: fix example.
........
  r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
  #2270: fix typo.
........
  r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
  #1720705: add docs about import/threading interaction, wording by Nick.
........
  r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
  Add class decorators
........
  r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
  Add 2-to-3 support for the itertools moved to builtins or renamed.
........
  r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
  Consistent tense.
........
  r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
  Issue 2274:  Add heapq.heappushpop().
........
  r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
  Simplify the nlargest() code using heappushpop().
........
  r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
  Move test_thread over to unittest. Commits GHOP 237.
  Thanks Benjamin Peterson for the patch.
........
  r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
  Move test_tokenize to doctest.
  Done as GHOP 238 by Josip Dzolonga.
........
  r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
  Convert test_contains, test_crypt, and test_select to unittest.
  Patch from GHOP 294 by David Marek.
........
  r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
  Move test_gdbm to use unittest.
  Closes issue #1960. Thanks Giampaolo Rodola.
........
  r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
  Convert test_fcntl to unittest.
  Closes issue #2055. Thanks Giampaolo Rodola.
........
  r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
  Leave heapreplace() unchanged.
........
  r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
  Patch #2284: add -x64 option to rt.bat.
........
  r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
  Use -x64 flag.
........
  r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
  Remove a bad test.
........
  r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
  Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
  across platforms:  it should now raise OverflowError on all
  platforms.  (Previously it raised OverflowError only on
  non IEEE 754 platforms.)
  Also fix the (already existing) test for this behaviour
  so that it actually raises TestFailed instead of just
  referencing it.
........
  r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
  Remove unneeded initializer.
........
  r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
  Run debug version, cd to PCbuild.
........
  r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
  Remove obsolete paragraph. #2288.
........
  r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
  Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
  r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
  note that fork and forkpty raise OSError on failure
........
  r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
  add %f format to datetime - issue 1158
........
  r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
  .
........
											
										 
											2008-03-16 00:07:10 +00:00
										 |  |  |     # As with PlaySoundTest, incorporate the _have_soundcard() check | 
					
						
							|  |  |  |     # into our test methods.  If there's no audio device present, | 
					
						
							|  |  |  |     # winsound.Beep returns 0 and GetLastError() returns 127, which | 
					
						
							|  |  |  |     # is: ERROR_PROC_NOT_FOUND ("The specified procedure could not | 
					
						
							|  |  |  |     # be found").  (FWIW, virtual/Hyper-V systems fall under this | 
					
						
							|  |  |  |     # scenario as they have no sound devices whatsoever  (not even | 
					
						
							|  |  |  |     # a legacy Beep device).) | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def test_errors(self): | 
					
						
							|  |  |  |         self.assertRaises(TypeError, winsound.Beep) | 
					
						
							|  |  |  |         self.assertRaises(ValueError, winsound.Beep, 36, 75) | 
					
						
							|  |  |  |         self.assertRaises(ValueError, winsound.Beep, 32768, 75) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_extremes(self): | 
					
						
							| 
									
										
											  
											
												Merged revisions 61538-61540,61556,61559-61560,61563,61565,61571,61575-61576,61580-61582,61586,61591,61593,61595,61605-61606,61613-61616,61618,61621-61623,61625,61627,61631-61634 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r61538 | steven.bethard | 2008-03-18 20:03:50 +0100 (Di, 18 Mär 2008) | 1 line
  cell_compare needs to return -2 instead of NULL.
........
  r61539 | steven.bethard | 2008-03-18 20:04:32 +0100 (Di, 18 Mär 2008) | 1 line
  _have_soundcard() is a bad check for winsound.Beep, since you can have a soundcard but have the beep driver disabled. This revision basically disables the beep tests by wrapping them in a try/except. The Right Way To Do It is to come up with a _have_enabled_beep_driver() and use that.
........
  r61540 | gregory.p.smith | 2008-03-18 20:05:32 +0100 (Di, 18 Mär 2008) | 8 lines
  Fix chown on 64-bit linux.  It needed to take a long (64-bit on 64bit linux) as
  uid and gid input to accept values >=2**31 as valid while still accepting
  negative numbers to pass -1 to chown for "no change".
  Fixes issue1747858.
  This should be backported to release25-maint.
........
  r61556 | steven.bethard | 2008-03-18 20:59:14 +0100 (Di, 18 Mär 2008) | 1 line
  Fix test_atexit so that it still passes when -3 is supplied. (It was catching the warning messages on stdio from using the reload() function.)
........
  r61559 | neal.norwitz | 2008-03-18 21:30:38 +0100 (Di, 18 Mär 2008) | 1 line
  Import the test properly.  This is especially important for py3k.
........
  r61560 | gregory.p.smith | 2008-03-18 21:40:01 +0100 (Di, 18 Mär 2008) | 2 lines
  news entry for the chown fix
........
  r61563 | brett.cannon | 2008-03-18 22:12:42 +0100 (Di, 18 Mär 2008) | 2 lines
  Ignore BIG5HKSCS-2004.TXT which is downloaded as part of a test.
........
  r61565 | steven.bethard | 2008-03-18 22:30:13 +0100 (Di, 18 Mär 2008) | 1 line
  Have regrtest skip test_py3kwarn when the -3 flag is missing.
........
  r61571 | gregory.p.smith | 2008-03-18 23:27:41 +0100 (Di, 18 Mär 2008) | 4 lines
  Add a test to make sure zlib.crc32 and binascii.crc32 return the same thing.
  Fix a buglet in binascii.crc32, the second optional argument could previously
  have a signedness mismatch with the C variable its going into.
........
  r61575 | raymond.hettinger | 2008-03-19 00:22:29 +0100 (Mi, 19 Mär 2008) | 1 line
  Speed-up isinstance() for one easy case.
........
  r61576 | raymond.hettinger | 2008-03-19 00:33:08 +0100 (Mi, 19 Mär 2008) | 1 line
  Issue: 2354: Add 3K warning for the cmp argument to list.sort() and sorted().
........
  r61580 | andrew.kuchling | 2008-03-19 02:05:35 +0100 (Mi, 19 Mär 2008) | 1 line
  Add Jeff Rush
........
  r61581 | gregory.p.smith | 2008-03-19 02:38:35 +0100 (Mi, 19 Mär 2008) | 3 lines
  Mention that crc32 and adler32 are available in a different module (zlib).
  Some people look for them in hashlib.
........
  r61582 | gregory.p.smith | 2008-03-19 02:46:10 +0100 (Mi, 19 Mär 2008) | 3 lines
  Use zlib's crc32 routine instead of binascii when available.  zlib's is faster
  when compiled properly optimized and about the same speed otherwise.
........
  r61586 | david.wolever | 2008-03-19 03:26:57 +0100 (Mi, 19 Mär 2008) | 1 line
  Added my name to ACKS
........
  r61591 | gregory.p.smith | 2008-03-19 04:14:41 +0100 (Mi, 19 Mär 2008) | 5 lines
  Fix the struct module DeprecationWarnings that zipfile was triggering by
  removing all use of signed struct values.
  test_zipfile and test_zipfile64 pass.  no more warnings.
........
  r61593 | raymond.hettinger | 2008-03-19 04:56:59 +0100 (Mi, 19 Mär 2008) | 1 line
  Fix compiler warning.
........
  r61595 | martin.v.loewis | 2008-03-19 05:39:13 +0100 (Mi, 19 Mär 2008) | 2 lines
  Issue #2400: Allow relative imports to "import *".
........
  r61605 | martin.v.loewis | 2008-03-19 07:00:28 +0100 (Mi, 19 Mär 2008) | 2 lines
  Import relimport using a relative import.
........
  r61606 | trent.nelson | 2008-03-19 07:28:24 +0100 (Mi, 19 Mär 2008) | 1 line
  Issue2290: Support x64 Windows builds that live in pcbuild/amd64.  Without it, sysutils._python_build() returns the wrong directory, which causes the test_get_config_h_filename method in Lib/distutils/tests/test_sysconfig.py to fail.
........
  r61613 | trent.nelson | 2008-03-19 08:45:19 +0100 (Mi, 19 Mär 2008) | 3 lines
  Refine the Visual Studio 2008 build solution in order to improve how we deal with external components, as well as fixing outstanding issues with Windows x64 build support.  Introduce two new .vcproj files, _bsddb44.vcproj and sqlite3.vcproj, which replace the previous pre-link event scripts for _bsddb and _sqlite3 respectively.  The new project files inherit from our property files as if they were any other Python module.  This has numerous benefits.  First, the components get built with exactly the same compiler flags and settings as the rest of Python.  Second, it makes it much easier to debug problems in the external components when they're part of the build system.  Third, they'll benefit from profile guided optimisation in the release builds, just like the rest of Python core.
  I've also introduced a slightly new pattern for managing externals in subversion.  New components get checked in as <name>-<version>.x, where <version> matches the exact vendor version string.  After the initial import of the external component, the .x is tagged as .0 (i.e. tcl-8.4.18.x -> tcl-8.4.18.0).  Some components may not need any tweaking, whereas there are others that might (tcl/tk fall into this bucket).  In that case, the relevant modifications are made to the .x branch, which will be subsequently tagged as .1 (and then n+1 going forward) when they build successfully and all tests pass.  Buildbots will be converted to rely on these explicit tags only, which makes it easy for us to switch them over to a new version as and when required.  (Simple change to external(-amd64).bat: if we've bumped tcl to 8.4.18.1, change the .bat to rmdir 8.4.18.0 if it exists and check out a new .1 copy.)
........
  r61614 | trent.nelson | 2008-03-19 08:56:39 +0100 (Mi, 19 Mär 2008) | 1 line
  Remove extraneous apostrophe and semi-colon from AdditionalIncludeDirectories.
........
  r61615 | georg.brandl | 2008-03-19 08:56:40 +0100 (Mi, 19 Mär 2008) | 2 lines
  Remove footnote from versionchanged as it upsets LaTeX.
........
  r61616 | georg.brandl | 2008-03-19 08:57:57 +0100 (Mi, 19 Mär 2008) | 2 lines
  Another one.
........
  r61618 | trent.nelson | 2008-03-19 09:06:03 +0100 (Mi, 19 Mär 2008) | 1 line
  Fix the tcl-8.4.18.1 path and make sure we cd into the right directory when building tcl/tk.
........
  r61621 | trent.nelson | 2008-03-19 10:23:08 +0100 (Mi, 19 Mär 2008) | 1 line
  Lets have another try at getting the Windows buildbots in a consistent state before rebuilding using the new process.
........
  r61622 | eric.smith | 2008-03-19 13:09:55 +0100 (Mi, 19 Mär 2008) | 2 lines
  Use test.test_support.captured_stdout instead of a custom contextmanager.
  Thanks Nick Coghlan.
........
  r61623 | eric.smith | 2008-03-19 13:15:10 +0100 (Mi, 19 Mär 2008) | 1 line
  Trivial typo.
........
  r61625 | thomas.heller | 2008-03-19 17:10:57 +0100 (Mi, 19 Mär 2008) | 2 lines
  Checkout sqlite-source when it is not there.
........
  r61627 | brett.cannon | 2008-03-19 17:50:13 +0100 (Mi, 19 Mär 2008) | 5 lines
  test_nis would fail if test.test_support.verbose was true but NIS was not set
  up on the machine.
  Closes issue2411. Thanks Michael Bishop.
........
  r61631 | brett.cannon | 2008-03-19 18:37:43 +0100 (Mi, 19 Mär 2008) | 2 lines
  Use sys.py3kwarning instead of trying to trigger a Py3k-related warning.
........
  r61632 | raymond.hettinger | 2008-03-19 18:45:19 +0100 (Mi, 19 Mär 2008) | 1 line
  Issue 2354: Fix-up compare warning.  Patch contributed by Jeff Balogh.
........
  r61633 | raymond.hettinger | 2008-03-19 18:58:59 +0100 (Mi, 19 Mär 2008) | 1 line
  The filter() function does support a None argument in Py3.0.
........
  r61634 | raymond.hettinger | 2008-03-19 19:01:58 +0100 (Mi, 19 Mär 2008) | 1 line
  Remove itertools warnings I had added before the 2-to-3 handled the migration.
........
											
										 
											2008-03-19 21:50:51 +00:00
										 |  |  |         self._beep(37, 75) | 
					
						
							|  |  |  |         self._beep(32767, 75) | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def test_increasingfrequency(self): | 
					
						
							| 
									
										
										
										
											2008-03-20 01:02:48 +00:00
										 |  |  |         for i in range(100, 2000, 100): | 
					
						
							| 
									
										
											  
											
												Merged revisions 61538-61540,61556,61559-61560,61563,61565,61571,61575-61576,61580-61582,61586,61591,61593,61595,61605-61606,61613-61616,61618,61621-61623,61625,61627,61631-61634 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r61538 | steven.bethard | 2008-03-18 20:03:50 +0100 (Di, 18 Mär 2008) | 1 line
  cell_compare needs to return -2 instead of NULL.
........
  r61539 | steven.bethard | 2008-03-18 20:04:32 +0100 (Di, 18 Mär 2008) | 1 line
  _have_soundcard() is a bad check for winsound.Beep, since you can have a soundcard but have the beep driver disabled. This revision basically disables the beep tests by wrapping them in a try/except. The Right Way To Do It is to come up with a _have_enabled_beep_driver() and use that.
........
  r61540 | gregory.p.smith | 2008-03-18 20:05:32 +0100 (Di, 18 Mär 2008) | 8 lines
  Fix chown on 64-bit linux.  It needed to take a long (64-bit on 64bit linux) as
  uid and gid input to accept values >=2**31 as valid while still accepting
  negative numbers to pass -1 to chown for "no change".
  Fixes issue1747858.
  This should be backported to release25-maint.
........
  r61556 | steven.bethard | 2008-03-18 20:59:14 +0100 (Di, 18 Mär 2008) | 1 line
  Fix test_atexit so that it still passes when -3 is supplied. (It was catching the warning messages on stdio from using the reload() function.)
........
  r61559 | neal.norwitz | 2008-03-18 21:30:38 +0100 (Di, 18 Mär 2008) | 1 line
  Import the test properly.  This is especially important for py3k.
........
  r61560 | gregory.p.smith | 2008-03-18 21:40:01 +0100 (Di, 18 Mär 2008) | 2 lines
  news entry for the chown fix
........
  r61563 | brett.cannon | 2008-03-18 22:12:42 +0100 (Di, 18 Mär 2008) | 2 lines
  Ignore BIG5HKSCS-2004.TXT which is downloaded as part of a test.
........
  r61565 | steven.bethard | 2008-03-18 22:30:13 +0100 (Di, 18 Mär 2008) | 1 line
  Have regrtest skip test_py3kwarn when the -3 flag is missing.
........
  r61571 | gregory.p.smith | 2008-03-18 23:27:41 +0100 (Di, 18 Mär 2008) | 4 lines
  Add a test to make sure zlib.crc32 and binascii.crc32 return the same thing.
  Fix a buglet in binascii.crc32, the second optional argument could previously
  have a signedness mismatch with the C variable its going into.
........
  r61575 | raymond.hettinger | 2008-03-19 00:22:29 +0100 (Mi, 19 Mär 2008) | 1 line
  Speed-up isinstance() for one easy case.
........
  r61576 | raymond.hettinger | 2008-03-19 00:33:08 +0100 (Mi, 19 Mär 2008) | 1 line
  Issue: 2354: Add 3K warning for the cmp argument to list.sort() and sorted().
........
  r61580 | andrew.kuchling | 2008-03-19 02:05:35 +0100 (Mi, 19 Mär 2008) | 1 line
  Add Jeff Rush
........
  r61581 | gregory.p.smith | 2008-03-19 02:38:35 +0100 (Mi, 19 Mär 2008) | 3 lines
  Mention that crc32 and adler32 are available in a different module (zlib).
  Some people look for them in hashlib.
........
  r61582 | gregory.p.smith | 2008-03-19 02:46:10 +0100 (Mi, 19 Mär 2008) | 3 lines
  Use zlib's crc32 routine instead of binascii when available.  zlib's is faster
  when compiled properly optimized and about the same speed otherwise.
........
  r61586 | david.wolever | 2008-03-19 03:26:57 +0100 (Mi, 19 Mär 2008) | 1 line
  Added my name to ACKS
........
  r61591 | gregory.p.smith | 2008-03-19 04:14:41 +0100 (Mi, 19 Mär 2008) | 5 lines
  Fix the struct module DeprecationWarnings that zipfile was triggering by
  removing all use of signed struct values.
  test_zipfile and test_zipfile64 pass.  no more warnings.
........
  r61593 | raymond.hettinger | 2008-03-19 04:56:59 +0100 (Mi, 19 Mär 2008) | 1 line
  Fix compiler warning.
........
  r61595 | martin.v.loewis | 2008-03-19 05:39:13 +0100 (Mi, 19 Mär 2008) | 2 lines
  Issue #2400: Allow relative imports to "import *".
........
  r61605 | martin.v.loewis | 2008-03-19 07:00:28 +0100 (Mi, 19 Mär 2008) | 2 lines
  Import relimport using a relative import.
........
  r61606 | trent.nelson | 2008-03-19 07:28:24 +0100 (Mi, 19 Mär 2008) | 1 line
  Issue2290: Support x64 Windows builds that live in pcbuild/amd64.  Without it, sysutils._python_build() returns the wrong directory, which causes the test_get_config_h_filename method in Lib/distutils/tests/test_sysconfig.py to fail.
........
  r61613 | trent.nelson | 2008-03-19 08:45:19 +0100 (Mi, 19 Mär 2008) | 3 lines
  Refine the Visual Studio 2008 build solution in order to improve how we deal with external components, as well as fixing outstanding issues with Windows x64 build support.  Introduce two new .vcproj files, _bsddb44.vcproj and sqlite3.vcproj, which replace the previous pre-link event scripts for _bsddb and _sqlite3 respectively.  The new project files inherit from our property files as if they were any other Python module.  This has numerous benefits.  First, the components get built with exactly the same compiler flags and settings as the rest of Python.  Second, it makes it much easier to debug problems in the external components when they're part of the build system.  Third, they'll benefit from profile guided optimisation in the release builds, just like the rest of Python core.
  I've also introduced a slightly new pattern for managing externals in subversion.  New components get checked in as <name>-<version>.x, where <version> matches the exact vendor version string.  After the initial import of the external component, the .x is tagged as .0 (i.e. tcl-8.4.18.x -> tcl-8.4.18.0).  Some components may not need any tweaking, whereas there are others that might (tcl/tk fall into this bucket).  In that case, the relevant modifications are made to the .x branch, which will be subsequently tagged as .1 (and then n+1 going forward) when they build successfully and all tests pass.  Buildbots will be converted to rely on these explicit tags only, which makes it easy for us to switch them over to a new version as and when required.  (Simple change to external(-amd64).bat: if we've bumped tcl to 8.4.18.1, change the .bat to rmdir 8.4.18.0 if it exists and check out a new .1 copy.)
........
  r61614 | trent.nelson | 2008-03-19 08:56:39 +0100 (Mi, 19 Mär 2008) | 1 line
  Remove extraneous apostrophe and semi-colon from AdditionalIncludeDirectories.
........
  r61615 | georg.brandl | 2008-03-19 08:56:40 +0100 (Mi, 19 Mär 2008) | 2 lines
  Remove footnote from versionchanged as it upsets LaTeX.
........
  r61616 | georg.brandl | 2008-03-19 08:57:57 +0100 (Mi, 19 Mär 2008) | 2 lines
  Another one.
........
  r61618 | trent.nelson | 2008-03-19 09:06:03 +0100 (Mi, 19 Mär 2008) | 1 line
  Fix the tcl-8.4.18.1 path and make sure we cd into the right directory when building tcl/tk.
........
  r61621 | trent.nelson | 2008-03-19 10:23:08 +0100 (Mi, 19 Mär 2008) | 1 line
  Lets have another try at getting the Windows buildbots in a consistent state before rebuilding using the new process.
........
  r61622 | eric.smith | 2008-03-19 13:09:55 +0100 (Mi, 19 Mär 2008) | 2 lines
  Use test.test_support.captured_stdout instead of a custom contextmanager.
  Thanks Nick Coghlan.
........
  r61623 | eric.smith | 2008-03-19 13:15:10 +0100 (Mi, 19 Mär 2008) | 1 line
  Trivial typo.
........
  r61625 | thomas.heller | 2008-03-19 17:10:57 +0100 (Mi, 19 Mär 2008) | 2 lines
  Checkout sqlite-source when it is not there.
........
  r61627 | brett.cannon | 2008-03-19 17:50:13 +0100 (Mi, 19 Mär 2008) | 5 lines
  test_nis would fail if test.test_support.verbose was true but NIS was not set
  up on the machine.
  Closes issue2411. Thanks Michael Bishop.
........
  r61631 | brett.cannon | 2008-03-19 18:37:43 +0100 (Mi, 19 Mär 2008) | 2 lines
  Use sys.py3kwarning instead of trying to trigger a Py3k-related warning.
........
  r61632 | raymond.hettinger | 2008-03-19 18:45:19 +0100 (Mi, 19 Mär 2008) | 1 line
  Issue 2354: Fix-up compare warning.  Patch contributed by Jeff Balogh.
........
  r61633 | raymond.hettinger | 2008-03-19 18:58:59 +0100 (Mi, 19 Mär 2008) | 1 line
  The filter() function does support a None argument in Py3.0.
........
  r61634 | raymond.hettinger | 2008-03-19 19:01:58 +0100 (Mi, 19 Mär 2008) | 1 line
  Remove itertools warnings I had added before the 2-to-3 handled the migration.
........
											
										 
											2008-03-19 21:50:51 +00:00
										 |  |  |             self._beep(i, 75) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def _beep(self, *args): | 
					
						
							|  |  |  |         # these tests used to use _have_soundcard(), but it's quite | 
					
						
							|  |  |  |         # possible to have a soundcard, and yet have the beep driver | 
					
						
							|  |  |  |         # disabled. So basically, we have no way of knowing whether | 
					
						
							|  |  |  |         # a beep should be produced or not, so currently if these | 
					
						
							|  |  |  |         # tests fail we're ignoring them | 
					
						
							|  |  |  |         # | 
					
						
							|  |  |  |         # XXX the right fix for this is to define something like | 
					
						
							|  |  |  |         # _have_enabled_beep_driver() and use that instead of the | 
					
						
							|  |  |  |         # try/except below | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             winsound.Beep(*args) | 
					
						
							|  |  |  |         except RuntimeError: | 
					
						
							|  |  |  |             pass | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class MessageBeepTest(unittest.TestCase): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def tearDown(self): | 
					
						
							|  |  |  |         time.sleep(0.5) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_default(self): | 
					
						
							|  |  |  |         self.assertRaises(TypeError, winsound.MessageBeep, "bad") | 
					
						
							|  |  |  |         self.assertRaises(TypeError, winsound.MessageBeep, 42, 42) | 
					
						
							|  |  |  |         winsound.MessageBeep() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_ok(self): | 
					
						
							|  |  |  |         winsound.MessageBeep(winsound.MB_OK) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_asterisk(self): | 
					
						
							|  |  |  |         winsound.MessageBeep(winsound.MB_ICONASTERISK) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_exclamation(self): | 
					
						
							|  |  |  |         winsound.MessageBeep(winsound.MB_ICONEXCLAMATION) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_hand(self): | 
					
						
							|  |  |  |         winsound.MessageBeep(winsound.MB_ICONHAND) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_question(self): | 
					
						
							|  |  |  |         winsound.MessageBeep(winsound.MB_ICONQUESTION) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-21 10:40:58 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  | class PlaySoundTest(unittest.TestCase): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_errors(self): | 
					
						
							|  |  |  |         self.assertRaises(TypeError, winsound.PlaySound) | 
					
						
							|  |  |  |         self.assertRaises(TypeError, winsound.PlaySound, "bad", "bad") | 
					
						
							|  |  |  |         self.assertRaises( | 
					
						
							|  |  |  |             RuntimeError, | 
					
						
							|  |  |  |             winsound.PlaySound, | 
					
						
							|  |  |  |             "none", winsound.SND_ASYNC | winsound.SND_MEMORY | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-13 02:32:40 +00:00
										 |  |  |     @unittest.skipUnless(has_sound("SystemAsterisk"), | 
					
						
							|  |  |  |                          "No default SystemAsterisk") | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  |     def test_alias_asterisk(self): | 
					
						
							| 
									
										
										
										
											2006-04-21 10:40:58 +00:00
										 |  |  |         if _have_soundcard(): | 
					
						
							|  |  |  |             winsound.PlaySound('SystemAsterisk', winsound.SND_ALIAS) | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             self.assertRaises( | 
					
						
							|  |  |  |                 RuntimeError, | 
					
						
							|  |  |  |                 winsound.PlaySound, | 
					
						
							|  |  |  |                 'SystemAsterisk', winsound.SND_ALIAS | 
					
						
							|  |  |  |             ) | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-13 02:32:40 +00:00
										 |  |  |     @unittest.skipUnless(has_sound("SystemExclamation"), | 
					
						
							|  |  |  |                          "No default SystemExclamation") | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  |     def test_alias_exclamation(self): | 
					
						
							| 
									
										
										
										
											2006-04-21 10:40:58 +00:00
										 |  |  |         if _have_soundcard(): | 
					
						
							|  |  |  |             winsound.PlaySound('SystemExclamation', winsound.SND_ALIAS) | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             self.assertRaises( | 
					
						
							|  |  |  |                 RuntimeError, | 
					
						
							|  |  |  |                 winsound.PlaySound, | 
					
						
							|  |  |  |                 'SystemExclamation', winsound.SND_ALIAS | 
					
						
							|  |  |  |             ) | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-13 02:32:40 +00:00
										 |  |  |     @unittest.skipUnless(has_sound("SystemExit"), "No default SystemExit") | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  |     def test_alias_exit(self): | 
					
						
							| 
									
										
										
										
											2006-04-21 10:40:58 +00:00
										 |  |  |         if _have_soundcard(): | 
					
						
							|  |  |  |             winsound.PlaySound('SystemExit', winsound.SND_ALIAS) | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             self.assertRaises( | 
					
						
							|  |  |  |                 RuntimeError, | 
					
						
							|  |  |  |                 winsound.PlaySound, | 
					
						
							|  |  |  |                 'SystemExit', winsound.SND_ALIAS | 
					
						
							|  |  |  |             ) | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-13 02:32:40 +00:00
										 |  |  |     @unittest.skipUnless(has_sound("SystemHand"), "No default SystemHand") | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  |     def test_alias_hand(self): | 
					
						
							| 
									
										
										
										
											2006-04-21 10:40:58 +00:00
										 |  |  |         if _have_soundcard(): | 
					
						
							|  |  |  |             winsound.PlaySound('SystemHand', winsound.SND_ALIAS) | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             self.assertRaises( | 
					
						
							|  |  |  |                 RuntimeError, | 
					
						
							|  |  |  |                 winsound.PlaySound, | 
					
						
							|  |  |  |                 'SystemHand', winsound.SND_ALIAS | 
					
						
							|  |  |  |             ) | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-13 02:32:40 +00:00
										 |  |  |     @unittest.skipUnless(has_sound("SystemQuestion"), | 
					
						
							|  |  |  |                          "No default SystemQuestion") | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  |     def test_alias_question(self): | 
					
						
							| 
									
										
										
										
											2006-04-21 10:40:58 +00:00
										 |  |  |         if _have_soundcard(): | 
					
						
							|  |  |  |             winsound.PlaySound('SystemQuestion', winsound.SND_ALIAS) | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             self.assertRaises( | 
					
						
							|  |  |  |                 RuntimeError, | 
					
						
							|  |  |  |                 winsound.PlaySound, | 
					
						
							|  |  |  |                 'SystemQuestion', winsound.SND_ALIAS | 
					
						
							|  |  |  |             ) | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def test_alias_fallback(self): | 
					
						
							| 
									
										
										
										
											2003-09-22 18:38:53 +00:00
										 |  |  |         # This test can't be expected to work on all systems.  The MS | 
					
						
							|  |  |  |         # PlaySound() docs say: | 
					
						
							|  |  |  |         # | 
					
						
							|  |  |  |         #     If it cannot find the specified sound, PlaySound uses the | 
					
						
							|  |  |  |         #     default system event sound entry instead.  If the function | 
					
						
							|  |  |  |         #     can find neither the system default entry nor the default | 
					
						
							|  |  |  |         #     sound, it makes no sound and returns FALSE. | 
					
						
							|  |  |  |         # | 
					
						
							|  |  |  |         # It's known to return FALSE on some real systems. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         # winsound.PlaySound('!"$%&/(#+*', winsound.SND_ALIAS) | 
					
						
							|  |  |  |         return | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def test_alias_nofallback(self): | 
					
						
							| 
									
										
										
										
											2006-04-21 10:40:58 +00:00
										 |  |  |         if _have_soundcard(): | 
					
						
							|  |  |  |             # Note that this is not the same as asserting RuntimeError | 
					
						
							|  |  |  |             # will get raised:  you cannot convert this to | 
					
						
							|  |  |  |             # self.assertRaises(...) form.  The attempt may or may not | 
					
						
							|  |  |  |             # raise RuntimeError, but it shouldn't raise anything other | 
					
						
							|  |  |  |             # than RuntimeError, and that's all we're trying to test | 
					
						
							|  |  |  |             # here.  The MS docs aren't clear about whether the SDK | 
					
						
							|  |  |  |             # PlaySound() with SND_ALIAS and SND_NODEFAULT will return | 
					
						
							|  |  |  |             # True or False when the alias is unknown.  On Tim's WinXP | 
					
						
							|  |  |  |             # box today, it returns True (no exception is raised).  What | 
					
						
							|  |  |  |             # we'd really like to test is that no sound is played, but | 
					
						
							|  |  |  |             # that requires first wiring an eardrum class into unittest | 
					
						
							|  |  |  |             # <wink>. | 
					
						
							|  |  |  |             try: | 
					
						
							|  |  |  |                 winsound.PlaySound( | 
					
						
							|  |  |  |                     '!"$%&/(#+*', | 
					
						
							|  |  |  |                     winsound.SND_ALIAS | winsound.SND_NODEFAULT | 
					
						
							|  |  |  |                 ) | 
					
						
							|  |  |  |             except RuntimeError: | 
					
						
							|  |  |  |                 pass | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             self.assertRaises( | 
					
						
							|  |  |  |                 RuntimeError, | 
					
						
							|  |  |  |                 winsound.PlaySound, | 
					
						
							|  |  |  |                 '!"$%&/(#+*', winsound.SND_ALIAS | winsound.SND_NODEFAULT | 
					
						
							| 
									
										
										
										
											2004-05-16 05:36:30 +00:00
										 |  |  |             ) | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def test_stopasync(self): | 
					
						
							| 
									
										
										
										
											2006-04-21 10:40:58 +00:00
										 |  |  |         if _have_soundcard(): | 
					
						
							| 
									
										
										
										
											2003-06-30 11:57:52 +00:00
										 |  |  |             winsound.PlaySound( | 
					
						
							|  |  |  |                 'SystemQuestion', | 
					
						
							| 
									
										
										
										
											2006-04-21 10:40:58 +00:00
										 |  |  |                 winsound.SND_ALIAS | winsound.SND_ASYNC | winsound.SND_LOOP | 
					
						
							|  |  |  |             ) | 
					
						
							|  |  |  |             time.sleep(0.5) | 
					
						
							|  |  |  |             try: | 
					
						
							|  |  |  |                 winsound.PlaySound( | 
					
						
							|  |  |  |                     'SystemQuestion', | 
					
						
							|  |  |  |                     winsound.SND_ALIAS | winsound.SND_NOSTOP | 
					
						
							|  |  |  |                 ) | 
					
						
							|  |  |  |             except RuntimeError: | 
					
						
							|  |  |  |                 pass | 
					
						
							|  |  |  |             else: # the first sound might already be finished | 
					
						
							|  |  |  |                 pass | 
					
						
							|  |  |  |             winsound.PlaySound(None, winsound.SND_PURGE) | 
					
						
							|  |  |  |         else: | 
					
						
							| 
									
										
										
										
											2010-04-12 15:33:12 +00:00
										 |  |  |             # Issue 8367: PlaySound(None, winsound.SND_PURGE) | 
					
						
							|  |  |  |             # does not raise on systems without a sound card. | 
					
						
							|  |  |  |             pass | 
					
						
							| 
									
										
										
										
											2006-04-21 10:40:58 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def _get_cscript_path(): | 
					
						
							|  |  |  |     """Return the full path to cscript.exe or None.""" | 
					
						
							|  |  |  |     for dir in os.environ.get("PATH", "").split(os.pathsep): | 
					
						
							|  |  |  |         cscript_path = os.path.join(dir, "cscript.exe") | 
					
						
							|  |  |  |         if os.path.exists(cscript_path): | 
					
						
							|  |  |  |             return cscript_path | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __have_soundcard_cache = None | 
					
						
							|  |  |  | def _have_soundcard(): | 
					
						
							|  |  |  |     """Return True iff this computer has a soundcard.""" | 
					
						
							|  |  |  |     global __have_soundcard_cache | 
					
						
							|  |  |  |     if __have_soundcard_cache is None: | 
					
						
							|  |  |  |         cscript_path = _get_cscript_path() | 
					
						
							|  |  |  |         if cscript_path is None: | 
					
						
							|  |  |  |             # Could not find cscript.exe to run our VBScript helper. Default | 
					
						
							|  |  |  |             # to True: most computers these days *do* have a soundcard. | 
					
						
							|  |  |  |             return True | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         check_script = os.path.join(os.path.dirname(__file__), | 
					
						
							|  |  |  |                                     "check_soundcard.vbs") | 
					
						
							|  |  |  |         p = subprocess.Popen([cscript_path, check_script], | 
					
						
							|  |  |  |                              stdout=subprocess.PIPE) | 
					
						
							|  |  |  |         __have_soundcard_cache = not p.wait() | 
					
						
							| 
									
										
										
										
											2010-12-29 02:41:07 +00:00
										 |  |  |         p.stdout.close() | 
					
						
							| 
									
										
										
										
											2006-04-21 10:40:58 +00:00
										 |  |  |     return __have_soundcard_cache | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | def test_main(): | 
					
						
							| 
									
										
										
										
											2008-05-20 21:35:26 +00:00
										 |  |  |     support.run_unittest(BeepTest, MessageBeepTest, PlaySoundTest) | 
					
						
							| 
									
										
										
										
											2003-05-18 00:47:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | if __name__=="__main__": | 
					
						
							|  |  |  |     test_main() |