1421
1421
# set the marker and check
1422
1422
self.action_queue.uuid_map.err(marker, Failure(Exception('bad')))
1424
self.assertTrue(self.handler.check_error("failed marker:foo"))
1426
yield self.cmd.markers_resolved_deferred
1425
1427
except Exception, e:
1426
1428
self.assertEqual(str(e), 'bad')
1427
self.assertTrue(self.handler.check_error("failed marker:foo"))
1430
self.fail("An exception should have been raised!")
1432
@defer.inlineCallbacks
1433
def test_demark_two_markers_ok(self):
1434
"""Test demark with two markers that finish ok."""
1435
# call demark with both
1436
marker1 = MDMarker('foo')
1437
marker2 = MDMarker('bar')
1438
self.cmd.possible_markers = 'foo', 'bar'
1439
self.cmd.foo = marker1
1440
self.cmd.bar = marker2
1441
d = self.cmd.demark()
1442
self.action_queue.uuid_map.set(marker1, 'data1')
1443
self.action_queue.uuid_map.set(marker2, 'data2')
1447
self.assertEqual(self.cmd.foo, 'data1')
1448
self.assertEqual(self.cmd.bar, 'data2')
1449
yield self.cmd.markers_resolved_deferred
1451
@defer.inlineCallbacks
1452
def test_demark_two_markers_one_fail(self):
1453
"""Test demark with two markers that one ends in failure."""
1454
# call demark with both
1455
marker1 = MDMarker('foo')
1456
marker2 = MDMarker('bar')
1457
self.cmd.possible_markers = 'foo', 'bar'
1458
self.cmd.foo = marker1
1459
self.cmd.bar = marker2
1460
d = self.cmd.demark()
1461
self.action_queue.uuid_map.set(marker1, 'data ok')
1462
self.action_queue.uuid_map.err(marker2, Failure(Exception('data bad')))
1467
yield self.cmd.markers_resolved_deferred
1468
except Exception, e:
1469
self.assertEqual(str(e), 'data bad')
1471
self.fail("An exception should have been raised!")
1429
1473
@defer.inlineCallbacks
1430
1474
def test_run_sets_running(self):
1493
1537
yield self.cmd.run()
1494
1538
self.assertFalse(self.cmd.running)
1496
def test_run_done_running_if_problem(self):
1540
def test_run_done_running_if_problem_in_start(self):
1497
1541
"""If _start fails, done running."""
1498
self.cmd.end_errback = lambda _: None # consume the failure
1543
self.cmd.end_errback = lambda _: called.append(True)
1499
1544
self.cmd._start = lambda: defer.fail(Exception('foo'))
1501
1546
self.assertFalse(self.cmd.running)
1547
self.assertTrue(called)
1549
def test_run_done_running_if_problem_in_markers(self):
1550
"""If deferring markers fails, done running."""
1552
self.cmd.end_errback = lambda _: called.append(True)
1553
self.cmd.markers_resolved_deferred.errback(Failure(Exception('foo')))
1555
self.assertFalse(self.cmd.running)
1556
self.assertTrue(called)
1503
1558
def test_queue_calls_prequeued(self):
1504
1559
"""Do the pre-queue when queued."""