summaryrefslogtreecommitdiff
path: root/lib/testresources/tests/test_test_resource.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/testresources/tests/test_test_resource.py')
-rw-r--r--lib/testresources/tests/test_test_resource.py74
1 files changed, 62 insertions, 12 deletions
diff --git a/lib/testresources/tests/test_test_resource.py b/lib/testresources/tests/test_test_resource.py
index 9a3bedd..e0d1ec4 100644
--- a/lib/testresources/tests/test_test_resource.py
+++ b/lib/testresources/tests/test_test_resource.py
@@ -21,6 +21,10 @@
import testtools
import testresources
+from testresources.tests import (
+ ResultWithResourceExtensions,
+ ResultWithoutResourceExtensions,
+ )
def test_suite():
@@ -44,8 +48,8 @@ class MockResourceInstance(object):
class MockResource(testresources.TestResource):
"""Mock resource that logs the number of make and clean calls."""
- def __init__(self, trace_function=None):
- testresources.TestResource.__init__(self, trace_function=trace_function)
+ def __init__(self):
+ testresources.TestResource.__init__(self)
self.makes = 0
self.cleans = 0
@@ -64,7 +68,7 @@ class MockResettableResource(MockResource):
MockResource.__init__(self)
self.resets = 0
- def reset(self, resource):
+ def reset(self, resource, result):
self.resets += 1
resource._name += "!"
return resource
@@ -276,6 +280,7 @@ class TestTestResource(testtools.TestCase):
resource = resource_manager.getResource()
resource_manager.finishedWith(resource)
self.assertIs(resource, resource_manager._currentResource)
+ resource_manager.finishedWith(resource)
# The default implementation of reset() performs a make/clean if
# the dirty flag is set.
@@ -326,16 +331,61 @@ class TestTestResource(testtools.TestCase):
resource = resource_manager.getResource()
self.assertEqual(2, resource_manager.makes)
- def testTraceFunction(self):
- output = []
- def trace(operation, phase, mgr):
- output.append((operation, phase, mgr))
- resource_manager = MockResource(trace_function=trace)
+ def testFinishedActivityForResourceWithoutExtensions(self):
+ result = ResultWithoutResourceExtensions()
+ resource_manager = MockResource()
+ r = resource_manager.getResource()
+ resource_manager.finishedWith(r, result)
+
+ def testFinishedActivityForResourceWithExtensions(self):
+ result = ResultWithResourceExtensions()
+ resource_manager = MockResource()
+ r = resource_manager.getResource()
+ expected = [("clean", "start", resource_manager),
+ ("clean", "stop", resource_manager)]
+ resource_manager.finishedWith(r, result)
+ self.assertEqual(expected, result._calls)
+
+ def testGetActivityForResourceWithoutExtensions(self):
+ result = ResultWithoutResourceExtensions()
+ resource_manager = MockResource()
+ r = resource_manager.getResource(result)
+ resource_manager.finishedWith(r)
+
+ def testGetActivityForResourceWithExtensions(self):
+ result = ResultWithResourceExtensions()
+ resource_manager = MockResource()
+ r = resource_manager.getResource(result)
expected = [("make", "start", resource_manager),
("make", "stop", resource_manager)]
+ resource_manager.finishedWith(r)
+ self.assertEqual(expected, result._calls)
+
+ def testResetActivityForResourceWithoutExtensions(self):
+ result = ResultWithoutResourceExtensions()
+ resource_manager = MockResource()
+ resource_manager.getResource()
+ r = resource_manager.getResource()
+ resource_manager.dirtied(r)
+ resource_manager.finishedWith(r)
+ r = resource_manager.getResource(result)
+ resource_manager.dirtied(r)
+ resource_manager.finishedWith(r)
+ resource_manager.finishedWith(resource_manager._currentResource)
+
+ def testResetActivityForResourceWithExtensions(self):
+ result = ResultWithResourceExtensions()
+ resource_manager = MockResource()
+ expected = [("clean", "start", resource_manager),
+ ("clean", "stop", resource_manager),
+ ("make", "start", resource_manager),
+ ("make", "stop", resource_manager)]
+ resource_manager.getResource()
r = resource_manager.getResource()
- self.assertEqual(expected, output)
- expected.extend([("clean", "start", resource_manager),
- ("clean", "stop", resource_manager)])
+ resource_manager.dirtied(r)
+ resource_manager.finishedWith(r)
+ r = resource_manager.getResource(result)
+ resource_manager.dirtied(r)
resource_manager.finishedWith(r)
- self.assertEqual(expected, output)
+ resource_manager.finishedWith(resource_manager._currentResource)
+ self.assertEqual(expected, result._calls)