~jseutter/testresources/py3_without_distribute

« back to all changes in this revision

Viewing changes to lib/testresources/tests/test_test_resource.py

  • Committer: Robert Collins
  • Date: 2009-07-13 08:22:13 UTC
  • Revision ID: robertc@robertcollins.net-20090713082213-5vfxvknu589mo64x
Really fix bug 284125 by using inspect to look up the TestResult being used and audit activity via the result object tests are being run with.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
import testtools
22
22
 
23
23
import testresources
 
24
from testresources.tests import (
 
25
    ResultWithResourceExtensions,
 
26
    ResultWithoutResourceExtensions,
 
27
    )
24
28
 
25
29
 
26
30
def test_suite():
44
48
class MockResource(testresources.TestResource):
45
49
    """Mock resource that logs the number of make and clean calls."""
46
50
 
47
 
    def __init__(self, trace_function=None):
48
 
        testresources.TestResource.__init__(self, trace_function=trace_function)
 
51
    def __init__(self):
 
52
        testresources.TestResource.__init__(self)
49
53
        self.makes = 0
50
54
        self.cleans = 0
51
55
 
64
68
        MockResource.__init__(self)
65
69
        self.resets = 0
66
70
 
67
 
    def reset(self, resource):
 
71
    def reset(self, resource, result):
68
72
        self.resets += 1
69
73
        resource._name += "!"
70
74
        return resource
276
280
        resource = resource_manager.getResource()
277
281
        resource_manager.finishedWith(resource)
278
282
        self.assertIs(resource, resource_manager._currentResource)
 
283
        resource_manager.finishedWith(resource)
279
284
 
280
285
    # The default implementation of reset() performs a make/clean if
281
286
    # the dirty flag is set.
326
331
        resource = resource_manager.getResource()
327
332
        self.assertEqual(2, resource_manager.makes)
328
333
 
329
 
    def testTraceFunction(self):
330
 
        output = []
331
 
        def trace(operation, phase, mgr):
332
 
            output.append((operation, phase, mgr))
333
 
        resource_manager = MockResource(trace_function=trace)
 
334
    def testFinishedActivityForResourceWithoutExtensions(self):
 
335
        result = ResultWithoutResourceExtensions()
 
336
        resource_manager = MockResource()
 
337
        r = resource_manager.getResource()
 
338
        resource_manager.finishedWith(r, result)
 
339
 
 
340
    def testFinishedActivityForResourceWithExtensions(self):
 
341
        result = ResultWithResourceExtensions()
 
342
        resource_manager = MockResource()
 
343
        r = resource_manager.getResource()
 
344
        expected = [("clean", "start", resource_manager),
 
345
            ("clean", "stop", resource_manager)]
 
346
        resource_manager.finishedWith(r, result)
 
347
        self.assertEqual(expected, result._calls)
 
348
 
 
349
    def testGetActivityForResourceWithoutExtensions(self):
 
350
        result = ResultWithoutResourceExtensions()
 
351
        resource_manager = MockResource()
 
352
        r = resource_manager.getResource(result)
 
353
        resource_manager.finishedWith(r)
 
354
 
 
355
    def testGetActivityForResourceWithExtensions(self):
 
356
        result = ResultWithResourceExtensions()
 
357
        resource_manager = MockResource()
 
358
        r = resource_manager.getResource(result)
334
359
        expected = [("make", "start", resource_manager),
335
360
            ("make", "stop", resource_manager)]
336
 
        r = resource_manager.getResource()
337
 
        self.assertEqual(expected, output)
338
 
        expected.extend([("clean", "start", resource_manager),
339
 
            ("clean", "stop", resource_manager)])
340
 
        resource_manager.finishedWith(r)
341
 
        self.assertEqual(expected, output)
 
361
        resource_manager.finishedWith(r)
 
362
        self.assertEqual(expected, result._calls)
 
363
 
 
364
    def testResetActivityForResourceWithoutExtensions(self):
 
365
        result = ResultWithoutResourceExtensions()
 
366
        resource_manager = MockResource()
 
367
        resource_manager.getResource()
 
368
        r = resource_manager.getResource()
 
369
        resource_manager.dirtied(r)
 
370
        resource_manager.finishedWith(r)
 
371
        r = resource_manager.getResource(result)
 
372
        resource_manager.dirtied(r)
 
373
        resource_manager.finishedWith(r)
 
374
        resource_manager.finishedWith(resource_manager._currentResource)
 
375
 
 
376
    def testResetActivityForResourceWithExtensions(self):
 
377
        result = ResultWithResourceExtensions()
 
378
        resource_manager = MockResource()
 
379
        expected = [("clean", "start", resource_manager),
 
380
            ("clean", "stop", resource_manager),
 
381
            ("make", "start", resource_manager),
 
382
            ("make", "stop", resource_manager)]
 
383
        resource_manager.getResource()
 
384
        r = resource_manager.getResource()
 
385
        resource_manager.dirtied(r)
 
386
        resource_manager.finishedWith(r)
 
387
        r = resource_manager.getResource(result)
 
388
        resource_manager.dirtied(r)
 
389
        resource_manager.finishedWith(r)
 
390
        resource_manager.finishedWith(resource_manager._currentResource)
 
391
        self.assertEqual(expected, result._calls)