diff options
author | Martin Pool <mbp@canonical.com> | 2011-11-29 13:08:11 +1100 |
---|---|---|
committer | Martin Pool <mbp@canonical.com> | 2011-11-29 13:08:11 +1100 |
commit | 05e00d8d1b3d0a6e0ddc2153d9552f7823223ae9 (patch) | |
tree | 8e9283a7a9ddbc0bb0774fe50852a2f84803f3d0 | |
parent | 3e502a29cc859f5c6b74827f5f321dfb5a193e3c (diff) | |
download | fixtures-05e00d8d1b3d0a6e0ddc2153d9552f7823223ae9.tar.gz |
Rename to just 'Timeout'; other review cleanups
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | README | 16 | ||||
-rw-r--r-- | lib/fixtures/__init__.py | 4 | ||||
-rw-r--r-- | lib/fixtures/_fixtures/__init__.py | 4 | ||||
-rw-r--r-- | lib/fixtures/_fixtures/timeout.py | 2 | ||||
-rw-r--r-- | lib/fixtures/tests/_fixtures/test_timeout.py | 9 |
6 files changed, 20 insertions, 17 deletions
@@ -11,7 +11,7 @@ CHANGES: * EnvironmentVariableFixture now upcalls via super(). (Jonathan Lange, #881120) -* New TimeoutFixture. (Martin Pool) +* New Timeout fixture. (Martin Pool) 0.3.7 ~~~~~ @@ -336,16 +336,20 @@ Create a temporary directory and clean it up later. The created directory is stored in the ``path`` attribute of the fixture after setUp. -TimeoutFixture -++++++++++++++ +Timeout ++++++++ -Interrupts tests if they take more than a specified number of whole wall-clock +Aborts if the covered code takes more than a specified number of whole wall-clock seconds. There are two possibilities, controlled by the 'gentle' argument: when gentle, an exception will be raised and the test will fail. When not gentle, the entire test process will be terminated, which is less clean, but more likely to -break hangs where no Python code is running. You can only use one in any given -test. +break hangs where no Python code is running. + +*Caution:* Only one timeout can be active at any time across all threads in a +single process. Using more than one has undefined results. (This could be +improved by chaining alarms.) -Currently supported only on Unix because it relies on the ``alarm`` system call. +*Note:* Currently supported only on Unix because it relies on the ``alarm`` +system call. diff --git a/lib/fixtures/__init__.py b/lib/fixtures/__init__.py index 9e54aef..42ecf6f 100644 --- a/lib/fixtures/__init__.py +++ b/lib/fixtures/__init__.py @@ -51,7 +51,7 @@ __all__ = [ 'PythonPathEntry', 'TempDir', 'TestWithFixtures', - 'TestTimeout', + 'Timeout', ] @@ -65,7 +65,7 @@ from fixtures._fixtures import ( PythonPackage, PythonPathEntry, TempDir, - TestTimeout, + Timeout, ) from fixtures.testcase import TestWithFixtures diff --git a/lib/fixtures/_fixtures/__init__.py b/lib/fixtures/_fixtures/__init__.py index 20285ef..d219c7a 100644 --- a/lib/fixtures/_fixtures/__init__.py +++ b/lib/fixtures/_fixtures/__init__.py @@ -25,7 +25,7 @@ __all__ = [ 'PythonPackage', 'PythonPathEntry', 'TempDir', - 'TestTimeout', + 'Timeout', ] @@ -37,4 +37,4 @@ from fixtures._fixtures.packagepath import PackagePathEntry from fixtures._fixtures.pythonpackage import PythonPackage from fixtures._fixtures.pythonpath import PythonPathEntry from fixtures._fixtures.tempdir import TempDir -from fixtures._fixtures.timeout import TestTimeout +from fixtures._fixtures.timeout import Timeout diff --git a/lib/fixtures/_fixtures/timeout.py b/lib/fixtures/_fixtures/timeout.py index b1d133b..b5fcbe9 100644 --- a/lib/fixtures/_fixtures/timeout.py +++ b/lib/fixtures/_fixtures/timeout.py @@ -23,7 +23,7 @@ class TestTimeoutException(Exception): """Test timed out""" -class TestTimeout(fixtures.Fixture): +class Timeout(fixtures.Fixture): def __init__(self, timeout_secs, gentle): self.timeout_secs = timeout_secs diff --git a/lib/fixtures/tests/_fixtures/test_timeout.py b/lib/fixtures/tests/_fixtures/test_timeout.py index 870f3bc..3521aaa 100644 --- a/lib/fixtures/tests/_fixtures/test_timeout.py +++ b/lib/fixtures/tests/_fixtures/test_timeout.py @@ -29,20 +29,20 @@ class ExampleTests(testtools.TestCase, TestWithFixtures): """These are not intended to pass: they are sample data for the real tests""" def sample_timeout_passes(self): - self.useFixture(fixtures.TestTimeout(100, gentle=True)) + self.useFixture(fixtures.Timeout(100, gentle=True)) pass # Timeout shouldn't fire def sample_long_delay_with_timeout(self): - self.useFixture(fixtures.TestTimeout(2, gentle=True)) + self.useFixture(fixtures.Timeout(2, gentle=True)) time.sleep(100) # Expected to be killed here. def sample_long_delay_with_harsh_timeout(self): - self.useFixture(fixtures.TestTimeout(2, gentle=False)) + self.useFixture(fixtures.Timeout(2, gentle=False)) time.sleep(100) # Expected to be killed here. -class TestTimeoutFixture(testtools.TestCase, TestWithFixtures): +class TestTimeout(testtools.TestCase, TestWithFixtures): def requireUnix(self): if getattr(signal, 'alarm', None) is None: @@ -70,7 +70,6 @@ class TestTimeoutFixture(testtools.TestCase, TestWithFixtures): got_alarm = True old_handler = signal.signal(signal.SIGALRM, sigalrm_handler) self.addCleanup(signal.signal, signal.SIGALRM, old_handler) - import pdb;pdb.set_trace() result = test.run() self.assertFalse(result.wasSuccessful()) self.assertTrue(got_alarm) |