Exemplo n.º 1
0
    def setUp(self):
        """
        start up stuff
        """

        register_user_scope_resolver('list_scope', TestListScopeResolver())

        self.store = notification_store()
        self.msg_type = self.store.save_notification_type(
            NotificationType(
                name='foo.bar',
                renderer='foo',
            )
        )

        msg = NotificationMessage(
            msg_type=self.msg_type,
            payload={'foo': 'bar'},
        )
        msg.add_payload(
            {
                'extra': 'stuff'
            },
            channel_name='other_channel'
        )
        self.msg = self.store.save_notification_message(msg)
Exemplo n.º 2
0
    def test_multipayload(self):
        """
        Test that a channel will use the right payload
        """

        msg = NotificationMessage(namespace='test-runner',
                                  msg_type=self.msg_type,
                                  payload={'foo': 'bar'})

        msg.add_payload({'one': 'two'}, channel_name='durable')

        # now do happy path
        sent_user_msg = publish_notification_to_user(self.test_user_id, msg)

        # now query back the notification to make sure it got stored
        # and we can retrieve it
        self.assertEquals(get_notifications_count_for_user(self.test_user_id),
                          1)

        notifications = get_notifications_for_user(self.test_user_id)

        self.assertTrue(isinstance(notifications, list))
        self.assertEqual(len(notifications), 1)
        self.assertTrue(isinstance(notifications[0], UserNotification))

        read_user_msg = notifications[0]
        self.assertEqual(read_user_msg.user_id, self.test_user_id)
        self.assertIsNone(read_user_msg.read_at)  # should be unread

        self.assertEqual(read_user_msg, sent_user_msg)
        # make sure the message that got persisted contains only
        # the default payload
        self.assertEqual(read_user_msg.msg.payload,
                         msg.get_payload(channel_name='durable'))
Exemplo n.º 3
0
    def test_multipayload(self):
        """
        Test that a channel will use the right payload
        """

        msg = NotificationMessage(namespace="test-runner", msg_type=self.msg_type, payload={"foo": "bar"})

        msg.add_payload({"one": "two"}, channel_name="durable")

        # now do happy path
        sent_user_msg = publish_notification_to_user(self.test_user_id, msg)

        # now query back the notification to make sure it got stored
        # and we can retrieve it
        self.assertEquals(get_notifications_count_for_user(self.test_user_id), 1)

        notifications = get_notifications_for_user(self.test_user_id)

        self.assertTrue(isinstance(notifications, list))
        self.assertEqual(len(notifications), 1)
        self.assertTrue(isinstance(notifications[0], UserNotification))

        read_user_msg = notifications[0]
        self.assertEqual(read_user_msg.user_id, self.test_user_id)
        self.assertIsNone(read_user_msg.read_at)  # should be unread

        self.assertEqual(read_user_msg, sent_user_msg)
        # make sure the message that got persisted contains only
        # the default payload
        self.assertEqual(read_user_msg.msg.payload, msg.get_payload(channel_name="durable"))
Exemplo n.º 4
0
    def setUp(self):
        """
        start up stuff
        """

        register_user_scope_resolver('list_scope', TestListScopeResolver())

        self.store = notification_store()
        self.msg_type = self.store.save_notification_type(
            NotificationType(
                name='foo.bar',
                renderer='foo',
            )
        )

        msg = NotificationMessage(
            msg_type=self.msg_type,
            payload={'foo': 'bar'},
        )
        msg.add_payload(
            {
                'extra': 'stuff'
            },
            channel_name='other_channel'
        )
        self.msg = self.store.save_notification_message(msg)
Exemplo n.º 5
0
    def test_multi_payloads(self):
        """
        Tests the ability to support multiple payloads in a NotificationMessage
        """

        msg = NotificationMessage()
        self.assertIsNone(msg.get_payload())

        msg.add_payload(
            {
                'foo': 'bar',
            }
        )

        self.assertEqual(msg.get_payload(), {'foo': 'bar'})
        self.assertEqual(msg.get_message_for_channel(), msg)

        msg.add_payload(
            {
                'bar': 'baz'
            },
            channel_name='channel1'
        )

        self.assertNotEqual(msg.get_message_for_channel(), msg)
        self.assertEqual(msg.get_message_for_channel().payload, {'foo': 'bar'})
        self.assertEqual(msg.get_message_for_channel('channel1').payload, {'bar': 'baz'})

        msg.add_payload(
            {
                'one': 'two'
            },
            channel_name='channel2'
        )

        self.assertNotEqual(msg.get_message_for_channel(), msg)
        self.assertEqual(msg.get_message_for_channel().payload, {'foo': 'bar'})
        self.assertEqual(msg.get_message_for_channel('channel1').payload, {'bar': 'baz'})
        self.assertEqual(msg.get_message_for_channel('channel2').payload, {'one': 'two'})
        self.assertEqual(msg.get_message_for_channel('doesnt-exist').payload, {'foo': 'bar'})

        msg.add_payload(
            {
                'updated': 'yes'
            }
        )
        self.assertEqual(msg.get_message_for_channel().payload, {'updated': 'yes'})
Exemplo n.º 6
0
    def test_multi_payloads(self):
        """
        Tests the ability to support multiple payloads in a NotificationMessage
        """

        msg = NotificationMessage()
        self.assertIsNone(msg.get_payload())

        msg.add_payload({
            'foo': 'bar',
        })

        self.assertEqual(msg.get_payload(), {'foo': 'bar'})
        self.assertEqual(msg.get_message_for_channel(), msg)

        msg.add_payload({'bar': 'baz'}, channel_name='channel1')

        self.assertNotEqual(msg.get_message_for_channel(), msg)
        self.assertEqual(msg.get_message_for_channel().payload, {'foo': 'bar'})
        self.assertEqual(
            msg.get_message_for_channel('channel1').payload, {'bar': 'baz'})

        msg.add_payload({'one': 'two'}, channel_name='channel2')

        self.assertNotEqual(msg.get_message_for_channel(), msg)
        self.assertEqual(msg.get_message_for_channel().payload, {'foo': 'bar'})
        self.assertEqual(
            msg.get_message_for_channel('channel1').payload, {'bar': 'baz'})
        self.assertEqual(
            msg.get_message_for_channel('channel2').payload, {'one': 'two'})
        self.assertEqual(
            msg.get_message_for_channel('doesnt-exist').payload,
            {'foo': 'bar'})

        msg.add_payload({'updated': 'yes'})
        self.assertEqual(msg.get_message_for_channel().payload,
                         {'updated': 'yes'})