~andreserl/maas/lp1592666

« back to all changes in this revision

Viewing changes to src/maasserver/triggers/tests/test_websocket_listener.py

  • Committer: LaMont Jones
  • Date: 2016-04-11 16:23:26 UTC
  • mfrom: (4900 maas)
  • mto: This revision was merged to the branch mainline in revision 4924.
  • Revision ID: lamont@canonical.com-20160411162326-6ycj8l2j66v2o5es
merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
    synchronous,
32
32
)
33
33
from twisted.internet.defer import (
 
34
    DeferredList,
34
35
    DeferredQueue,
35
36
    inlineCallbacks,
36
37
)
1112
1113
 
1113
1114
    @wait_for_reactor
1114
1115
    @inlineCallbacks
1115
 
    def test__calls_handler_on_create_notification(self):
 
1116
    def test__calls_handler_on_create_notification_with_blank_name(self):
1116
1117
        yield deferToDatabase(register_websocket_triggers)
1117
1118
        listener = self.make_listener_without_delay()
1118
 
        dv = DeferredValue()
1119
 
        listener.register("fabric", lambda *args: dv.set(args))
 
1119
        dvs = [DeferredValue(), DeferredValue()]
 
1120
        save_dvs = dvs[:]
 
1121
        listener.register("fabric", lambda *args: dvs.pop().set(args))
1120
1122
        yield listener.startService()
1121
1123
        try:
1122
1124
            fabric = yield deferToDatabase(self.create_fabric)
 
1125
            results = yield DeferredList(
 
1126
                (dv.get(timeout=2) for dv in save_dvs))
 
1127
            self.assertItemsEqual(
 
1128
                [('create', '%s' % fabric.id), ('update', '%s' % fabric.id)],
 
1129
                [res for (suc, res) in results])
 
1130
        finally:
 
1131
            yield listener.stopService()
 
1132
 
 
1133
    @wait_for_reactor
 
1134
    @inlineCallbacks
 
1135
    def test__calls_handler_on_create_notification_with_name(self):
 
1136
        yield deferToDatabase(register_websocket_triggers)
 
1137
        listener = self.make_listener_without_delay()
 
1138
        dv = DeferredValue()
 
1139
        listener.register("fabric", lambda *args: dv.set(args))
 
1140
        yield listener.startService()
 
1141
        try:
 
1142
            fabric = yield deferToDatabase(
 
1143
                self.create_fabric,
 
1144
                {'name': factory.make_name('name')})
1123
1145
            yield dv.get(timeout=2)
1124
1146
            self.assertEqual(('create', '%s' % fabric.id), dv.value)
1125
1147
        finally:
1413
1435
        finally:
1414
1436
            yield listener.stopService()
1415
1437
 
1416
 
    #@wait_for_reactor
1417
1438
    @wait_for(360000)
1418
1439
    @inlineCallbacks
1419
1440
    def test__calls_handler_on_dnsresource_delete_notification(self):
1554
1575
 
1555
1576
    @wait_for_reactor
1556
1577
    @inlineCallbacks
1557
 
    def test__calls_handler_on_create_notification(self):
 
1578
    def test__calls_handler_on_create_notification_with_blank_name(self):
1558
1579
        yield deferToDatabase(register_websocket_triggers)
1559
1580
        listener = self.make_listener_without_delay()
1560
 
        dv = DeferredValue()
1561
 
        listener.register("space", lambda *args: dv.set(args))
 
1581
        dvs = [DeferredValue(), DeferredValue()]
 
1582
        save_dvs = dvs[:]
 
1583
        listener.register("space", lambda *args: dvs.pop().set(args))
1562
1584
        yield listener.startService()
1563
1585
        try:
1564
1586
            space = yield deferToDatabase(self.create_space)
 
1587
            results = yield DeferredList(
 
1588
                (dv.get(timeout=2) for dv in save_dvs))
 
1589
            self.assertItemsEqual(
 
1590
                [('create', '%s' % space.id), ('update', '%s' % space.id)],
 
1591
                [res for (suc, res) in results])
 
1592
        finally:
 
1593
            yield listener.stopService()
 
1594
 
 
1595
    @wait_for_reactor
 
1596
    @inlineCallbacks
 
1597
    def test__calls_handler_on_create_notification_with_name(self):
 
1598
        yield deferToDatabase(register_websocket_triggers)
 
1599
        listener = self.make_listener_without_delay()
 
1600
        dv = DeferredValue()
 
1601
        listener.register("space", lambda *args: dv.set(args))
 
1602
        yield listener.startService()
 
1603
        try:
 
1604
            space = yield deferToDatabase(
 
1605
                self.create_space,
 
1606
                {'name': factory.make_name('name')})
1565
1607
            yield dv.get(timeout=2)
1566
1608
            self.assertEqual(('create', '%s' % space.id), dv.value)
1567
1609
        finally: