diff --git a/zaqar/notification/notifier.py b/zaqar/notification/notifier.py index e27447cd9..f269394c4 100644 --- a/zaqar/notification/notifier.py +++ b/zaqar/notification/notifier.py @@ -63,8 +63,9 @@ class NotifierDriver(object): for m in messages: wh_flow.add(self._generate_task(s['subscriber'], m)) - e = engines.load(wh_flow, executor=self.executor, - engine='parallel') - e.run() + if wh_flow: + e = engines.load(wh_flow, executor=self.executor, + engine='parallel') + e.run() else: LOG.error('Failed to get subscription controller.') diff --git a/zaqar/tests/unit/notification/test_notifier.py b/zaqar/tests/unit/notification/test_notifier.py index d5aa74b9d..070b404a4 100644 --- a/zaqar/tests/unit/notification/test_notifier.py +++ b/zaqar/tests/unit/notification/test_notifier.py @@ -78,3 +78,12 @@ class NotifierTest(testing.TestBase): subscriber = self.subscription[0]['subscriber'] new_task = self.driver._generate_task(subscriber, self.messages) self.assertIsInstance(new_task, task.webhook.WebhookTask) + + def test_post_no_subscriber(self): + ctlr = mock.MagicMock() + ctlr.list = mock.Mock(return_value=iter([[]])) + driver = notifier.NotifierDriver(subscription_controller=ctlr) + with mock.patch('requests.post') as mock_post: + driver.post('fake_queue', self.messages, self.client_id, + self.project) + self.assertEqual(0, mock_post.call_count)