summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Collins <robertc@robertcollins.net>2013-01-20 23:15:33 +1300
committerRobert Collins <robertc@robertcollins.net>2013-01-20 23:15:33 +1300
commit4c2dc417782bdda3f4bf5e064339c0714ff93d8a (patch)
treea5132232b8d5c2b506f50e941460cb889e7a3884
parent2a1ab3bc4d630c4d03232bf36da2a1cf2c971d4a (diff)
downloadtestresources-4c2dc417782bdda3f4bf5e064339c0714ff93d8a.tar.gz
* TestResourceManager.reset() was not taking dependency dirtiness into
consideration. (Brian Sutherland, #783488)
-rw-r--r--NEWS3
-rw-r--r--lib/testresources/__init__.py2
-rw-r--r--lib/testresources/tests/test_test_resource.py11
3 files changed, 15 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 4448da8..6859671 100644
--- a/NEWS
+++ b/NEWS
@@ -12,6 +12,9 @@ IMPROVEMENTS
fixed (but will make OptimisingTestSuite trigger resets on every transition
between tests). (Robert Collins, James Westby, #1023423)
+* TestResourceManager.reset() was not taking dependency dirtiness into
+ consideration. (Brian Sutherland, #783488)
+
0.2.6
-----
diff --git a/lib/testresources/__init__.py b/lib/testresources/__init__.py
index 148ff1a..217280f 100644
--- a/lib/testresources/__init__.py
+++ b/lib/testresources/__init__.py
@@ -579,7 +579,7 @@ class TestResourceManager(object):
:return: The new resource.
:param result: An optional TestResult to report resource changes to.
"""
- if self._dirty:
+ if self.isDirty():
self._clean_all(old_resource, result)
resource = self._make_all(result)
else:
diff --git a/lib/testresources/tests/test_test_resource.py b/lib/testresources/tests/test_test_resource.py
index 74fb9ed..02524e7 100644
--- a/lib/testresources/tests/test_test_resource.py
+++ b/lib/testresources/tests/test_test_resource.py
@@ -212,6 +212,17 @@ class TestTestResource(testtools.TestCase):
self.assertEqual(1, resource_manager.resets)
resource_manager.finishedWith(resource)
+ def testIsResetIfDependenciesAreDirty(self):
+ resource_manager = MockResource()
+ dep1 = MockResource()
+ resource_manager.resources.append(("dep1", dep1))
+ r = resource_manager.getResource()
+ dep1.dirtied(r.dep1)
+ # if we get the resource again, it should be clean
+ r = resource_manager.getResource()
+ self.assertFalse(resource_manager.isDirty())
+ self.assertFalse(dep1.isDirty())
+
def testUsedResourceResetBetweenUses(self):
resource_manager = MockResettableResource()
# take two refs; like happens with OptimisingTestSuite.