Commit Graph

219 Commits

Author SHA1 Message Date
Ezio Melotti cc436eb6e8 Merged revisions 78769,79049 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78769 | florent.xicluna | 2010-03-07 21:14:12 +0200 (Sun, 07 Mar 2010) | 2 lines

  Refresh the documentation for the test.test_support module.
........
  r79049 | florent.xicluna | 2010-03-18 21:51:47 +0200 (Thu, 18 Mar 2010) | 2 lines

  #8155: Preserve backward compatibility for test_support.check_warnings().  Add regression tests.
........
2010-08-02 22:01:34 +00:00
Ezio Melotti f9c2f4f399 Merged revisions 78815 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78815 | florent.xicluna | 2010-03-09 21:57:01 +0200 (Tue, 09 Mar 2010) | 2 lines

  #7772: Fix test_py3kwarn. Now the test suite could pass with "-3" flag.
........
2010-08-02 21:48:39 +00:00
Ezio Melotti f613f352d0 Merged revisions 78758 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78758 | florent.xicluna | 2010-03-07 14:18:33 +0200 (Sun, 07 Mar 2010) | 4 lines

  Issue #7849: Now the utility ``check_warnings`` verifies if the warnings are
  effectively raised.  A new utility ``check_py3k_warnings`` deals with py3k warnings.
........
2010-08-02 18:10:09 +00:00
Alexander Belopolsky eeb666ccf3 Merged revisions 82850 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r82850 | alexander.belopolsky | 2010-07-13 10:50:16 -0400 (Tue, 13 Jul 2010) | 1 line

  Set sys.modules[name] to None instead of 0 to block module import.
........
2010-07-14 00:05:00 +00:00
R. David Murray 4653fb556c #8889: rewrite transient_internet so we don't use EAI_NODATA on FreeBSD.
FreeBSD doesn't have socket.EAI_NODATA.  I rewrote the routine because
there's no easy way to conditionally include a context manager in a
with statement.  As a side benefit, instead of a stack of context
managers there's now only one.
2010-06-03 20:19:25 +00:00
Victor Stinner 03883624a4 Issue #8835: test_support.transient_internet() catchs gaierror(EAI_NONAME) and
gaierror(EAI_NODATA)
2010-05-27 22:29:48 +00:00
Victor Stinner d9d147b806 Issue #7449, part 1: fix test_support.py for Python compiled without thread 2010-04-27 21:46:03 +00:00
Philip Jenvey bb66973afb adjust gc_collect for Jython 2010-04-10 19:39:07 +00:00
Florent Xicluna 735885428d #8155: Preserve backward compatibility for test_support.check_warnings(). Add regression tests. 2010-03-18 19:51:47 +00:00
Florent Xicluna 3cc8f211ed Issue #7783 and #7787: open_urlresource invalidates the outdated files from the local cache.
Use this feature to fix test_normalization.
2010-03-15 18:08:58 +00:00
Florent Xicluna 1b51c3d4de Do not chdir when running test_xml_etree, and enhance the findfile helper. 2010-03-13 12:41:48 +00:00
Florent Xicluna 4d42f2b4d1 #7772: Fix test_py3kwarn. Now the test suite could pass with "-3" flag. 2010-03-09 19:57:01 +00:00
Florent Xicluna fc8a1ed70e Refresh the documentation for the test.test_support module. 2010-03-07 19:14:12 +00:00
Florent Xicluna 6de9e938a5 Issue #7849: Now the utility ``check_warnings`` verifies if the warnings are
effectively raised.  A new utility ``check_py3k_warnings`` deals with py3k warnings.
2010-03-07 12:18:33 +00:00
Ezio Melotti 9e9af21d45 skip tests with a non-ascii cwd when the file system encoding is ascii 2010-02-20 22:34:21 +00:00
Ezio Melotti 8f6a287029 #7712: add a temp_cwd context manager to test_support and use it in regrtest to run all the tests in a temporary directory, saving the original CWD in test_support.SAVEDCWD. Thanks to Florent Xicluna who helped with the patch. 2010-02-10 21:40:33 +00:00
Brett Cannon dc84f8fbb4 Fix a typo in a docstring introduced in r77956. 2010-02-03 22:13:44 +00:00
Brett Cannon 18e4db5ebe Update a docstring to suggest using importlib.import_module instead of calling __import__ directly. 2010-02-03 22:11:54 +00:00
Ezio Melotti dd62b4d049 Revert r77730 and add back verify and vereq in case other projects use them, but leave the changes in test_pprint and string_tests. 2010-01-25 12:13:02 +00:00
Ezio Melotti 4bfd7ad09c Merged revisions 77729 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r77729 | ezio.melotti | 2010-01-24 22:48:35 +0200 (Sun, 24 Jan 2010) | 1 line

  remove archaic functions from test_support
........
2010-01-24 20:55:31 +00:00
Ezio Melotti 469a05fe46 remove archaic functions from test_support 2010-01-24 20:48:35 +00:00
Antoine Pitrou 07728e9b46 Merged revisions 76037 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r76037 | antoine.pitrou | 2009-11-01 23:02:03 +0100 (dim., 01 nov. 2009) | 3 lines

  Use a custom timeout in test_support.open_urlresource.
........
2009-11-01 22:06:59 +00:00
Antoine Pitrou 84ee9e257e Use a custom timeout in test_support.open_urlresource. 2009-11-01 22:02:03 +00:00
Antoine Pitrou 59c44f36e0 Issue #7222: Make thread "reaping" more reliable so that reference
leak-chasing test runs give sensible results. The previous method of
reaping threads could return successfully while some Thread objects were
still referenced. This also introduces a new private function:
:func:hread._count().
2009-10-30 17:07:08 +00:00
R. David Murray 9e28ca707b Merged revisions 75528 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r75528 | r.david.murray | 2009-10-19 13:53:58 -0400 (Mon, 19 Oct 2009) | 4 lines

  Clarify error report message, and don't recommend running in verbose
  mode for more information if we are already running in verbose mode.
........
2009-10-28 02:22:08 +00:00
R. David Murray a24db67d47 Clarify error report message, and don't recommend running in verbose
mode for more information if we are already running in verbose mode.
2009-10-19 17:53:58 +00:00
Nick Coghlan f317019c07 Silence a deprecation warning by using the appropriate replacement construct 2009-10-18 10:29:10 +00:00
Nick Coghlan fd4903bf05 Move restoration of the os.environ object into the context manager where it belongs 2009-10-17 15:45:52 +00:00
Nick Coghlan 8c1ffeb614 Don't invoke reload(sys) and use StringIO objects instead of real files to capture stdin and stdout when needed (ensures all sys attributes remain unmodified after test_xmlrpc runs) 2009-10-17 15:09:41 +00:00
Nick Coghlan 7df72dcdf9 Restore original sys.path when running TTK tests 2009-10-17 14:40:54 +00:00
Benjamin Peterson 9bd39c119e put downloaded test support files in Lib/test/data instead of the cwd 2009-07-11 22:15:13 +00:00
Benjamin Peterson 5c8da86f3a convert usage of fail* to assert* 2009-06-30 22:57:08 +00:00
Antoine Pitrou 1969059327 Issue #6215: backport the 3.1 io lib 2009-06-12 20:14:08 +00:00
Benjamin Peterson 382ccdfd5b remove function import 2009-05-31 14:43:00 +00:00
Antoine Pitrou 4698d9928e Issue #6152: New option '-j'/'--multiprocess' for regrtest allows running
regression tests in parallel, shortening the total runtime.
2009-05-31 14:20:14 +00:00
Benjamin Peterson 0db3cd6700 a useful decorator for cleaning up threads 2009-05-14 22:40:34 +00:00
Walter Dörwald 6733bed57e Make test.test_support.EnvironmentVarGuard behave like a dictionary.
All changes are mirrored to the underlying os.environ dict, but rolled back
on exit from the with block.
2009-05-01 17:35:37 +00:00
Walter Dörwald 729df01045 Merged revisions 71875 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r71875 | walter.doerwald | 2009-04-25 14:15:07 +0200 (Sa, 25 Apr 2009) | 7 lines

  Issue #5837: Certain sequences of calls to set() and unset() for
  support.EnvironmentVarGuard objects restored the environment variables
  incorrectly on __exit__.

  Fix this by recording the initial value of each environment variable on the
  first access in set() or unset().
........
2009-04-25 12:23:49 +00:00
Walter Dörwald a145317be9 Issue #5837: Certain sequences of calls to set() and unset() for
support.EnvironmentVarGuard objects restored the environment variables
incorrectly on __exit__.

Fix this by recording the initial value of each environment variable on the
first access in set() or unset().
2009-04-25 12:15:07 +00:00
Nick Coghlan 5533ff6a2e Issue 5354: Change API for import_fresh_module() to better support test_warnings use case (also fixes some bugs in the original implementation) 2009-04-22 15:26:04 +00:00
Nick Coghlan cd2e7042ae Issue 5354: Provide a standardised testing mechanism for doing fresh imports of modules, including the ability to block extension modules in order to test the pure Python fallbacks 2009-04-11 13:31:31 +00:00
R. David Murray bdeacba51b Improve test_support.import_module docstring, remove
deprecated flag from get_attribute since it isn't likely
to do anything useful.
2009-03-31 19:33:15 +00:00
R. David Murray 597ebab744 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.
2009-03-31 18:32:17 +00:00
R. David Murray 3db8a3432b 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.
2009-03-30 23:05:48 +00:00
R. David Murray 59beec326a 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.
2009-03-30 19:04:00 +00:00
Benjamin Peterson effa1dc709 ** is required here 2009-03-26 21:30:54 +00:00
Benjamin Peterson a9b5be0c05 must pass argument to get expected behavior ;) 2009-03-26 21:11:16 +00:00
Benjamin Peterson bec087f29d fix incorrect auto-translation of TestSkipped -> unittest.SkipTest 2009-03-26 21:10:30 +00:00
Benjamin Peterson ad57d97596 fix naming 2009-03-26 20:49:40 +00:00
Benjamin Peterson 888a39b54c remove test_support.TestSkipped and just use unittest.SkipTest 2009-03-26 20:48:25 +00:00
Benjamin Peterson c3141a6e96 add some useful utilities for skipping tests with unittest's new skipping ability
most significantly apply a modified portion of the patch from #4242 with
patches for skipping implementation details
2009-03-26 19:58:18 +00:00
Benjamin Peterson 2f6f7436aa this can be slightly less ugly 2009-03-25 21:42:51 +00:00
Benjamin Peterson 2bf74fd0ac this is better written using assertRaises 2009-03-24 03:24:56 +00:00
Benjamin Peterson 29d9381625 Merged revisions 68779 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r68779 | benjamin.peterson | 2009-01-19 11:37:42 -0600 (Mon, 19 Jan 2009) | 1 line

  make bad file descriptor tests more robust
........
2009-01-19 21:02:45 +00:00
Benjamin Peterson 5539c78391 make bad file descriptor tests more robust 2009-01-19 17:37:42 +00:00
Nick Coghlan d2e0938362 Issue #3781: Final cleanup of warnings.catch_warnings and its usage in the test suite. Closes issue w.r.t. 2.6 (R: Brett Cannon) 2008-09-11 12:11:06 +00:00
Brett Cannon 672237dc6c warnings.catch_warnings() now returns a list or None instead of the custom
WarningsRecorder object. This makes the API simpler to use as no special object
must be learned.

Closes issue 3781.
Review by Benjamin Peterson.
2008-09-09 00:49:16 +00:00
Brett Cannon 1eaf0742d8 Move test.test_support.catch_warning() to the warnings module, rename it
catch_warnings(), and clean up the API.

While expanding the test suite, a bug was found where a warning about the
'line' argument to showwarning() was not letting functions with '*args' go
without a warning.

Closes issue 3602.
Code review by Benjamin Peterson.
2008-09-02 01:25:16 +00:00
Neal Norwitz e7d8be80ba Security patches from Apple: prevent int overflow when allocating memory 2008-07-31 17:17:14 +00:00
Brett Cannon cda5ce24ed Backport test.support.fcmp() from 3.0 to silence -3 warnings. 2008-07-31 03:00:53 +00:00
Benjamin Peterson 30e208d525 remove unneeded import 2008-07-22 23:44:37 +00:00
Georg Brandl 9334d02ff5 Remove duplicate entry in __all__. 2008-07-18 10:20:59 +00:00
Nick Coghlan 38469e2719 Make test.test_support.catch_warnings more robust as discussed on python-dev. Also add explicit tests for itto test_warnings. 2008-07-13 12:23:47 +00:00
Benjamin Peterson 838c7b3619 remove some __getslice__ 2008-05-27 01:18:39 +00:00
Benjamin Peterson eeb2b21ab0 add __all__ to test_support 2008-05-26 16:22:27 +00:00
Alexandre Vassalotti 445ff35d5c Fixed typo in a comment of test_support.CleanImport. 2008-05-11 07:08:12 +00:00
Alexandre Vassalotti eb83f70586 Added test framework for handling module renames.
Factored the import guard in test_py3kwarn.TestStdlibRemovals into
a context manager, namely test_support.CleanImport.
2008-05-11 07:06:04 +00:00
Brett Cannon edb628f241 Suppress deprecations for packages as well when using
test.test_support.import_module().
2008-05-10 02:54:52 +00:00
Brett Cannon 5d023c3afa Fix a bug introduced by the addition of the 'record' argument to
test.test_support.catch_warning() where showwarning() was not being set
properly.
2008-05-08 20:20:24 +00:00
Brett Cannon bfb997d6a5 Make test.test_support.catch_warning() take an argument specifying if any
triggered warnings should be captured. This allows the context manager to be
used to just prevent the internal state of the 'warnings' framework and thus
allow triggered warnings to be displayed.
2008-05-08 19:50:51 +00:00
Brett Cannon 9d44182427 The mutex module has been deprecated for removal in 3.0. 2008-05-08 19:26:08 +00:00
Benjamin Peterson d8f2d0bdb3 make test_support's captured_output a bit more robust when exceptions happen 2008-04-30 21:03:58 +00:00
Skip Montanaro e3d3785e11 spelling 2008-04-13 03:17:30 +00:00
Brett Cannon e974689038 Re-implement the 'warnings' module in C. This allows for usage of the
'warnings' code in places where it was previously not possible (e.g., the
parser). It could also potentially lead to a speed-up in interpreter start-up
if the C version of the code (_warnings) is imported over the use of the
Python version in key places.

Closes issue #1631171.
2008-04-12 23:44:07 +00:00
Trent Nelson e41b0061dd - Issue #2550: The approach used by client/server code for obtaining ports
to listen on in network-oriented tests has been refined in an effort to
  facilitate running multiple instances of the entire regression test suite
  in parallel without issue.  test_support.bind_port() has been fixed such
  that it will always return a unique port -- which wasn't always the case
  with the previous implementation, especially if socket options had been
  set that affected address reuse (i.e. SO_REUSEADDR, SO_REUSEPORT).  The
  new implementation of bind_port() will actually raise an exception if it
  is passed an AF_INET/SOCK_STREAM socket with either the SO_REUSEADDR or
  SO_REUSEPORT socket option set.  Furthermore, if available, bind_port()
  will set the SO_EXCLUSIVEADDRUSE option on the socket it's been passed.
  This currently only applies to Windows.  This option prevents any other
  sockets from binding to the host/port we've bound to, thus removing the
  possibility of the 'non-deterministic' behaviour, as Microsoft puts it,
  that occurs when a second SOCK_STREAM socket binds and accepts to a
  host/port that's already been bound by another socket.  The optional
  preferred port parameter to bind_port() has been removed.  Under no
  circumstances should tests be hard coding ports!

  test_support.find_unused_port() has also been introduced, which will pass
  a temporary socket object to bind_port() in order to obtain an unused port.
  The temporary socket object is then closed and deleted, and the port is
  returned.  This method should only be used for obtaining an unused port
  in order to pass to an external program (i.e. the -accept [port] argument
  to openssl's s_server mode) or as a parameter to a server-oriented class
  that doesn't give you direct access to the underlying socket used.

  Finally, test_support.HOST has been introduced, which should be used for
  the host argument of any relevant socket calls (i.e. bind and connect).

  The following tests were updated to following the new conventions:
    test_socket, test_smtplib, test_asyncore, test_ssl, test_httplib,
    test_poplib, test_ftplib, test_telnetlib, test_socketserver,
    test_asynchat and test_socket_ssl.

  It is now possible for multiple instances of the regression test suite to
  run in parallel without issue.
2008-04-08 23:47:30 +00:00
Brett Cannon 8d2a90af2d Generalize test.test_support.test_stdout() with a base context manager so that
it is easy to capture stderr if desired.
2008-04-01 12:37:43 +00:00
Brett Cannon c6b5200931 Fix a minor typo in a docstring. 2008-02-25 05:33:33 +00:00
Neal Norwitz 6057b2e645 Create a db_home directory with a unique name so multiple users can
run the test simultaneously.  The simplest thing I found that worked
on both Windows and Unix was to use the PID.  It's unique so should be
sufficient.  This should prevent many of the spurious failures of
the automated tests since they run as different users.

Also cleanup the directory consistenly in the tearDown methods.

It would be nice if someone ensured that the directories are always
created with a consistent name.
2008-02-24 18:47:03 +00:00
Christian Heimes c5f05e45cf Patch #2167 from calvin: Remove unused imports 2008-02-23 17:40:11 +00:00
Neal Norwitz 880605aafd Let the O/S supply a port if none of the default ports can be used.
This should make the tests more robust at the expense of allowing
tests to be sloppier by not requiring them to cleanup after themselves.
(It will legitamitely help when running two test suites simultaneously
or if another process is already using one of the predefined ports.)

Also simplifies (slightLy) the exception handling elsewhere.
2007-10-14 00:18:40 +00:00
Georg Brandl 692bbc4790 Port test_frozen to unittest. 2007-08-24 18:22:54 +00:00
Brett Cannon 2ee4128e9b Remove test.test_support.guard_warnings_filter.
test.test_support.catch_warning is more full-featured and provides the same
functionality.

Since guard_warnings_filter was added in 2.6 there is no
backwards-compatibility issues.
2007-08-14 05:51:06 +00:00
Brett Cannon 7b97e8a9c2 Fix a minor typo in a docstring. 2007-08-14 03:38:47 +00:00
Collin Winter fa9be8c289 Fix a bug in test.test_support.open_urlresource().
If the call to requires() doesn't precede the filesystem check, we get the following situation:
1. ./python Lib/test/regrtest.py test_foo # test needs urlfetch, not enabled, so skipped
2. ./python Lib/test/regrtest.py -u urlfetch test_foo # test runs
3. ./python Lib/test/regrtest.py test_foo # test runs (!)

By moving the call to requires() *before* the filesystem check, the fact that fetched files are cached on the local disk becomes an implementation detail, rather than a semantics-changing point of note.
2007-05-09 04:14:36 +00:00
Collin Winter f00c5b5873 Import and raise statement cleanup. 2007-04-25 18:54:36 +00:00
Collin Winter 297996b7d3 Change test_support.have_unicode to use True/False instead of 1/0. 2007-04-25 17:57:53 +00:00
Collin Winter c2898c5a67 Standardize on test.test_support.run_unittest() (as opposed to a mix of run_unittest() and run_suite()). Also, add functionality to run_unittest() that admits usage of unittest.TestLoader.loadTestsFromModule(). 2007-04-25 17:29:52 +00:00
Walter Dörwald e6dae6c655 Implement a contextmanager test.test_support.catch_warning that can
be used to catch the last warning issued by the warning framework.

Change test_warnings.py and test_structmembers.py to use this
new contextmanager.
2007-04-03 18:33:29 +00:00
Brett Cannon 09a86bc5ef Fix a typo where the variable name was not updated. 2007-03-13 03:05:40 +00:00
Brett Cannon 41d4e32353 Add test.test_support.transient_internet . Returns a context manager that
nests test.test_support.TransientResource context managers that capture
exceptions raised when the Internet connection is flaky.

Initially using in test_socket_ssl but should probably be expanded to cover any
test that should not raise the captured exceptions if the Internet connection
works.
2007-03-13 02:34:09 +00:00
Brett Cannon a30fcb4dae Introduce test.test_support.TransientResource. It's a context manager to
surround calls to resources that may or may not be available.  Specifying the
expected exception and attributes to be raised if the resource is not available
prevents overly broad catching of exceptions.

This is meant to help suppress spurious failures by raising
test.test_support.ResourceDenied if the exception matches.  It would probably
be good to go through the various network tests and surround the calls to catch
connection timeouts (as done with test_socket_ssl in this commit).
2007-03-08 23:58:11 +00:00
Tim Peters f733abb783 Whitespace normalization. 2007-01-30 03:03:46 +00:00
Brett Cannon 92d54d5e9c Add EnvironmentVarGuard to test.test_support. Provides a context manager to
temporarily set or unset environment variables.
2007-01-04 00:23:49 +00:00
Brett Cannon 6d9520c4f0 Add test.test_support.guard_warnings_filter . This function returns a context
manager that protects warnings.filter from being modified once the context is
exited.
2006-12-13 23:09:53 +00:00
Georg Brandl c6fdec6d7e Convert test_global, test_scope and test_grammar to unittest.
I tried to enclose all tests which must be run at the toplevel
(instead of inside a method) in exec statements.
2006-10-28 13:10:17 +00:00
Armin Rigo 97ff04789d Concatenation on a long string breaks (SF #1526585). 2006-08-09 15:37:26 +00:00
Neal Norwitz b15ac3169d Add new utility function, reap_children(), to test_support. This should
be called at the end of each test that spawns children (perhaps it
should be called from regrtest instead?).  This will hopefully prevent
some of the unexplained failures in the buildbots (hppa and alpha)
during tests that spawn children.  The problems were not reproducible.
There were many zombies that remained at the end of several tests.
In the worst case, this shouldn't cause any more problems,
though it may not help either.  Time will tell.
2006-06-29 04:10:08 +00:00
Tim Peters 43bc3788c0 Whitespace normalization. 2006-06-19 07:45:16 +00:00
Neal Norwitz 9602cc2aa4 Prevent spurious leaks when running regrtest.py -R. There may be more
issues that crop up from time to time, but this change seems to have been
pretty stable (no spurious warnings) for about a week.

Other modules which use threads may require similar use of
threading_setup/threading_cleanup from test_support.
2006-06-18 19:35:01 +00:00
Neal Norwitz 909eb12c95 Fix the socket tests so they can be run concurrently. Backport candidate 2006-06-12 02:13:21 +00:00