Exemple #1
0
 def test_from_mail(self):
     user = User.objects.get(pk=2)
     notify_now(user,
                'private_msg',
                extra_data={
                    "spam": "eggs",
                    "from_mail": "*****@*****.**"
                })
     self.assertEquals(len(mail.outbox), 1)
     self.assertEquals(mail.outbox[0].from_email, "*****@*****.**")
Exemple #2
0
    def test_sending_with_settings(self):
        user = [User.objects.get(pk=1), User.objects.get(pk=2)]

        items_sent = notify_now(user, 'followed', extra_data={"spam": "eggs"})
        self.assertEquals(items_sent, 0)

        self.assertTrue(set_notify_setting(user[0], 'followed', 'news', True))
        items_sent = notify_now(user, 'followed', extra_data={"spam": "eggs"})

        # 1 news model
        self.assertEquals(items_sent, 1)
Exemple #3
0
    def test_sending_with_settings(self):
        user = [User.objects.get(pk=1), User.objects.get(pk=2)]

        items_sent = notify_now(user, 'followed', extra_data={"spam": "eggs"})
        self.assertEquals(items_sent, 0)

        self.assertTrue(set_notify_setting(user[0], 'followed', 'news', True))
        items_sent = notify_now(user, 'followed', extra_data={"spam": "eggs"})

        # 1 news model
        self.assertEquals(items_sent, 1)
Exemple #4
0
    def test_get_notifications(self):
        user = [User.objects.get(pk=1), User.objects.get(pk=2)]
        items_sent = notify_now(user, 'private_msg', extra_data={"spam": "eggs"})

        # 2 private_messages model
        # 2 private_messages mail
        # 2 news model
        self.assertEquals(items_sent, 6)

        for index in [0, 1]:
            news = get_notifications(user[index], 'news')
            self.assertTrue(hasattr(news, '__iter__'), 'news notifications is not an iterable!')
            self.assertEquals(len(news), 1)
            self.assertTrue(isinstance(news[0], dict), 'news notification is not a dict!')
            self.assertTrue(news[0].get('id', False), 'news notification has no id')
            self.assertEquals(news[0].get('target'), user[index])
            self.assertEquals(news[0].get('notify_type'), 'private_msg')
            self.assertEquals(news[0].get('media'), 'news')
            self.assertEquals(news[0].get('extra_data'), {'spam': 'eggs'})
            self.assertTrue(isinstance(news[0].get('ctime'), datetime), 'news ctime is not a datetime!')


            private_messages = get_notifications(user[index], 'private_messages')
            self.assertTrue(hasattr(private_messages, '__iter__'), 'private_messages notifications is not an iterable!')
            self.assertEquals(len(private_messages), 1)
            self.assertTrue(isinstance(private_messages[0], dict), 'private_messages notification is not a dict!')
            self.assertTrue(private_messages[0].get('id', False), 'private_messages notification has no id')
            self.assertEquals(private_messages[0].get('target'), user[index])
            self.assertEquals(private_messages[0].get('notify_type'), 'private_msg')
            self.assertEquals(private_messages[0].get('media'), 'private_messages')
            self.assertEquals(private_messages[0].get('extra_data'), {'spam': 'eggs'})
            self.assertTrue(isinstance(news[0].get('ctime'), datetime), 'news ctime is not a datetime!')
Exemple #5
0
    def test_object_list(self):
        user = User.objects.get(pk=2)
        for i in range(15):
            notify_now(user, 'follow', extra_data={"followed": "eggs"})

        object_list = NotifyObjectList(user, 'news')
        self.assertEqual(len(object_list), 15)

        count = 0
        for notice in object_list:
            count += 1
            self.assertTrue('id' in notice)
            self.assertEqual(notice['media'], 'news')
            self.assertEqual(notice['notify_type'], 'follow')
        self.assertEqual(count, 15)

        self.assertEqual(len(object_list[:5]), 5)
        self.assertEqual(len(object_list[1:]), 14)
        self.assertEqual(len(object_list[1:3]), 2)
        self.assertEqual(len(list(object_list)), 15)
Exemple #6
0
    def test_notify_type_length(self):
        # Test notify_types with length over 30
        user = User.objects.get(pk=2)
        items_sent = notify_now(user, 'notify_type_with_length_over_thirty')
        # 1 news model
        self.assertEquals(items_sent, 1)

        self.assertEquals(
            Notification.objects.filter(notify_type='notify_type_with_length_over_thirty').count(),
            1,
        )
Exemple #7
0
 def test_object_list(self):
     user = User.objects.get(pk=2)
     for i in range(15):
         notify_now(user, 'follow', extra_data={"followed": "eggs"})
     
     object_list = NotifyObjectList(user, 'news')
     self.assertEqual(len(object_list), 15)
     
     count = 0
     for notice in object_list:
         count += 1
         self.assertTrue('id' in notice)
         self.assertEqual(notice['media'], 'news')
         self.assertEqual(notice['notify_type'], 'follow')
     self.assertEqual(count, 15)
     
     self.assertEqual(len(object_list[:5]), 5)
     self.assertEqual(len(object_list[1:]), 14)
     self.assertEqual(len(object_list[1:3]), 2)
     self.assertEqual(len(list(object_list)), 15)
Exemple #8
0
    def test_notify_type_length(self):
        # Test notify_types with length over 30
        user = User.objects.get(pk=2)
        items_sent = notify_now(user, 'notify_type_with_length_over_thirty')
        # 1 news model
        self.assertEquals(items_sent, 1)

        self.assertEquals(
            Notification.objects.filter(
                notify_type='notify_type_with_length_over_thirty').count(),
            1,
        )
Exemple #9
0
    def test_sending_model_null(self):
        items_sent = notify_now(None, 'follow', extra_data={"followed": "eggs"})
        # 1 news model
        self.assertEquals(items_sent, 1)

        news = Notification.objects.filter(media='news')
        self.assertEquals(len(news), 1)
        self.assertEquals(news[0].media, 'news')
        self.assertEquals(news[0].notify_type, 'follow')
        self.assertEquals(news[0].target, None)
        self.assertEquals(news[0].extra_data.get('followed'), 'eggs')
        
        private_messages = Notification.objects.exclude(media='news')
        self.assertEquals(len(private_messages), 0)
Exemple #10
0
    def test_sending_mail(self):
        user = User.objects.get(pk=2)
        items_sent = notify_now(user,
                                'private_msg',
                                extra_data={"spam": "eggs"})

        # 1 private_messages model
        # 1 news model
        # 1 private_messages mail
        self.assertEquals(items_sent, 3)

        self.assertEquals(len(mail.outbox), 1)
        self.assertEquals(mail.outbox[0].subject,
                          u'テストメール private_msg private_messages eggs')
        self.assertEquals(mail.outbox[0].body,
                          u'Text メールボディ private_msg private_messages eggs\n')
Exemple #11
0
    def test_sending_model_null(self):
        items_sent = notify_now(None,
                                'follow',
                                extra_data={"followed": "eggs"})
        # 1 news model
        self.assertEquals(items_sent, 1)

        news = Notification.objects.filter(media='news')
        self.assertEquals(len(news), 1)
        self.assertEquals(news[0].media, 'news')
        self.assertEquals(news[0].notify_type, 'follow')
        self.assertEquals(news[0].target, None)
        self.assertEquals(news[0].extra_data.get('followed'), 'eggs')

        private_messages = Notification.objects.exclude(media='news')
        self.assertEquals(len(private_messages), 0)
Exemple #12
0
    def test_get_notifications(self):
        user = [User.objects.get(pk=1), User.objects.get(pk=2)]
        items_sent = notify_now(user,
                                'private_msg',
                                extra_data={"spam": "eggs"})

        # 2 private_messages model
        # 2 private_messages mail
        # 2 news model
        self.assertEquals(items_sent, 6)

        for index in [0, 1]:
            news = get_notifications(user[index], 'news')
            self.assertTrue(hasattr(news, '__iter__'),
                            'news notifications is not an iterable!')
            self.assertEquals(len(news), 1)
            self.assertTrue(isinstance(news[0], dict),
                            'news notification is not a dict!')
            self.assertTrue(news[0].get('id', False),
                            'news notification has no id')
            self.assertEquals(news[0].get('target'), user[index])
            self.assertEquals(news[0].get('notify_type'), 'private_msg')
            self.assertEquals(news[0].get('media'), 'news')
            self.assertEquals(news[0].get('extra_data'), {'spam': 'eggs'})
            self.assertTrue(isinstance(news[0].get('ctime'), datetime),
                            'news ctime is not a datetime!')

            private_messages = get_notifications(user[index],
                                                 'private_messages')
            self.assertTrue(
                hasattr(private_messages, '__iter__'),
                'private_messages notifications is not an iterable!')
            self.assertEquals(len(private_messages), 1)
            self.assertTrue(isinstance(private_messages[0], dict),
                            'private_messages notification is not a dict!')
            self.assertTrue(private_messages[0].get('id', False),
                            'private_messages notification has no id')
            self.assertEquals(private_messages[0].get('target'), user[index])
            self.assertEquals(private_messages[0].get('notify_type'),
                              'private_msg')
            self.assertEquals(private_messages[0].get('media'),
                              'private_messages')
            self.assertEquals(private_messages[0].get('extra_data'),
                              {'spam': 'eggs'})
            self.assertTrue(isinstance(news[0].get('ctime'), datetime),
                            'news ctime is not a datetime!')
Exemple #13
0
    def test_sending_model_types_null(self):
        items_sent = notify_now(None, 'private_msg', extra_data={"spam": "eggs"})
        # 1 private_messages model
        # 0 private_messages mail (No mail to null target)
        # 1 news model
        self.assertEquals(items_sent, 2)

        private_messages = Notification.objects.filter(media='private_messages')
        self.assertEquals(len(private_messages), 1)
        self.assertEquals(private_messages[0].media, 'private_messages')
        self.assertEquals(private_messages[0].notify_type, 'private_msg')
        self.assertEquals(private_messages[0].target, None)
        self.assertEquals(private_messages[0].extra_data.get('spam'), 'eggs')

        news = Notification.objects.filter(media='news')
        self.assertEquals(len(news), 1)
        self.assertEquals(news[0].media, 'news')
        self.assertEquals(news[0].notify_type, 'private_msg')
        self.assertEquals(news[0].target, None)
        self.assertEquals(news[0].extra_data.get('spam'), 'eggs')
Exemple #14
0
    def test_sending_model_types(self):
        user = User.objects.get(pk=2)
        items_sent = notify_now(user, 'private_msg', extra_data={"spam": "eggs"})
        # 1 private_messages model
        # 1 private_messages mail
        # 1 news model
        self.assertEquals(items_sent, 3)

        private_messages = Notification.objects.filter(media='private_messages')
        self.assertEquals(len(private_messages), 1)
        self.assertEquals(private_messages[0].media, 'private_messages')
        self.assertEquals(private_messages[0].notify_type, 'private_msg')
        self.assertEquals(private_messages[0].target, user)
        self.assertEquals(private_messages[0].extra_data.get('spam'), 'eggs')

        news = Notification.objects.filter(media='news')
        self.assertEquals(len(news), 1)
        self.assertEquals(news[0].media, 'news')
        self.assertEquals(news[0].notify_type, 'private_msg')
        self.assertEquals(news[0].target, user)
        self.assertEquals(news[0].extra_data.get('spam'), 'eggs')
Exemple #15
0
    def test_sending_model_types_null(self):
        items_sent = notify_now(None,
                                'private_msg',
                                extra_data={"spam": "eggs"})
        # 1 private_messages model
        # 0 private_messages mail (No mail to null target)
        # 1 news model
        self.assertEquals(items_sent, 2)

        private_messages = Notification.objects.filter(
            media='private_messages')
        self.assertEquals(len(private_messages), 1)
        self.assertEquals(private_messages[0].media, 'private_messages')
        self.assertEquals(private_messages[0].notify_type, 'private_msg')
        self.assertEquals(private_messages[0].target, None)
        self.assertEquals(private_messages[0].extra_data.get('spam'), 'eggs')

        news = Notification.objects.filter(media='news')
        self.assertEquals(len(news), 1)
        self.assertEquals(news[0].media, 'news')
        self.assertEquals(news[0].notify_type, 'private_msg')
        self.assertEquals(news[0].target, None)
        self.assertEquals(news[0].extra_data.get('spam'), 'eggs')
Exemple #16
0
    def test_sending_model_types(self):
        user = User.objects.get(pk=2)
        items_sent = notify_now(user,
                                'private_msg',
                                extra_data={"spam": "eggs"})
        # 1 private_messages model
        # 1 private_messages mail
        # 1 news model
        self.assertEquals(items_sent, 3)

        private_messages = Notification.objects.filter(
            media='private_messages')
        self.assertEquals(len(private_messages), 1)
        self.assertEquals(private_messages[0].media, 'private_messages')
        self.assertEquals(private_messages[0].notify_type, 'private_msg')
        self.assertEquals(private_messages[0].target, user)
        self.assertEquals(private_messages[0].extra_data.get('spam'), 'eggs')

        news = Notification.objects.filter(media='news')
        self.assertEquals(len(news), 1)
        self.assertEquals(news[0].media, 'news')
        self.assertEquals(news[0].notify_type, 'private_msg')
        self.assertEquals(news[0].target, user)
        self.assertEquals(news[0].extra_data.get('spam'), 'eggs')
Exemple #17
0
    def test_sending_model_multi(self):
        user = [User.objects.get(pk=1), User.objects.get(pk=2), None]
        items_sent = notify_now(user, 'private_msg', extra_data={"spam": "eggs"})

        # 3 private_messages model
        # 2 private_messages mail (No mail to null target)
        # 3 news model
        self.assertEquals(items_sent, 8)

        # User1
        private_messages = Notification.objects.filter(
            media='private_messages',
            target_content_type=ContentType.objects.get_for_model(user[0]),
            target_object_id=user[0].id,
        )
        self.assertEquals(len(private_messages), 1)
        self.assertEquals(private_messages[0].media, 'private_messages')
        self.assertEquals(private_messages[0].notify_type, 'private_msg')
        self.assertEquals(private_messages[0].target, user[0])
        self.assertEquals(private_messages[0].extra_data.get('spam'), 'eggs')

        news = Notification.objects.filter(
            media='news',
            target_content_type=ContentType.objects.get_for_model(user[0]),
            target_object_id=user[0].id,
        )
        self.assertEquals(len(news), 1)
        self.assertEquals(news[0].media, 'news')
        self.assertEquals(news[0].notify_type, 'private_msg')
        self.assertEquals(news[0].target, user[0])
        self.assertEquals(news[0].extra_data.get('spam'), 'eggs')

        # User2
        private_messages = Notification.objects.filter(
            media='private_messages',
            target_content_type=ContentType.objects.get_for_model(user[1]),
            target_object_id=user[1].id,
        )
        self.assertEquals(len(private_messages), 1)
        self.assertEquals(private_messages[0].media, 'private_messages')
        self.assertEquals(private_messages[0].notify_type, 'private_msg')
        self.assertEquals(private_messages[0].target, user[1])
        self.assertEquals(private_messages[0].extra_data.get('spam'), 'eggs')

        news = Notification.objects.filter(
            media='news',
            target_content_type=ContentType.objects.get_for_model(user[1]),
            target_object_id=user[1].id,
        )
        self.assertEquals(len(news), 1)
        self.assertEquals(news[0].media, 'news')
        self.assertEquals(news[0].notify_type, 'private_msg')
        self.assertEquals(news[0].target, user[1])
        self.assertEquals(news[0].extra_data.get('spam'), 'eggs')

        # Null Target
        private_messages = Notification.objects.filter(
            media='private_messages',
            target_content_type__isnull=True,
            target_object_id__isnull=True,
        )
        self.assertEquals(len(private_messages), 1)
        self.assertEquals(private_messages[0].media, 'private_messages')
        self.assertEquals(private_messages[0].notify_type, 'private_msg')
        self.assertEquals(private_messages[0].target, None)
        self.assertEquals(private_messages[0].extra_data.get('spam'), 'eggs')

        news = Notification.objects.filter(
            media='news',
            target_content_type__isnull=True,
            target_object_id__isnull=True,
        )
        self.assertEquals(len(news), 1)
        self.assertEquals(news[0].media, 'news')
        self.assertEquals(news[0].notify_type, 'private_msg')
        self.assertEquals(news[0].target, None)
        self.assertEquals(news[0].extra_data.get('spam'), 'eggs')
Exemple #18
0
    def test_sending_model_multi(self):
        user = [User.objects.get(pk=1), User.objects.get(pk=2), None]
        items_sent = notify_now(user,
                                'private_msg',
                                extra_data={"spam": "eggs"})

        # 3 private_messages model
        # 2 private_messages mail (No mail to null target)
        # 3 news model
        self.assertEquals(items_sent, 8)

        # User1
        private_messages = Notification.objects.filter(
            media='private_messages',
            target_content_type=ContentType.objects.get_for_model(user[0]),
            target_object_id=user[0].id,
        )
        self.assertEquals(len(private_messages), 1)
        self.assertEquals(private_messages[0].media, 'private_messages')
        self.assertEquals(private_messages[0].notify_type, 'private_msg')
        self.assertEquals(private_messages[0].target, user[0])
        self.assertEquals(private_messages[0].extra_data.get('spam'), 'eggs')

        news = Notification.objects.filter(
            media='news',
            target_content_type=ContentType.objects.get_for_model(user[0]),
            target_object_id=user[0].id,
        )
        self.assertEquals(len(news), 1)
        self.assertEquals(news[0].media, 'news')
        self.assertEquals(news[0].notify_type, 'private_msg')
        self.assertEquals(news[0].target, user[0])
        self.assertEquals(news[0].extra_data.get('spam'), 'eggs')

        # User2
        private_messages = Notification.objects.filter(
            media='private_messages',
            target_content_type=ContentType.objects.get_for_model(user[1]),
            target_object_id=user[1].id,
        )
        self.assertEquals(len(private_messages), 1)
        self.assertEquals(private_messages[0].media, 'private_messages')
        self.assertEquals(private_messages[0].notify_type, 'private_msg')
        self.assertEquals(private_messages[0].target, user[1])
        self.assertEquals(private_messages[0].extra_data.get('spam'), 'eggs')

        news = Notification.objects.filter(
            media='news',
            target_content_type=ContentType.objects.get_for_model(user[1]),
            target_object_id=user[1].id,
        )
        self.assertEquals(len(news), 1)
        self.assertEquals(news[0].media, 'news')
        self.assertEquals(news[0].notify_type, 'private_msg')
        self.assertEquals(news[0].target, user[1])
        self.assertEquals(news[0].extra_data.get('spam'), 'eggs')

        # Null Target
        private_messages = Notification.objects.filter(
            media='private_messages',
            target_content_type__isnull=True,
            target_object_id__isnull=True,
        )
        self.assertEquals(len(private_messages), 1)
        self.assertEquals(private_messages[0].media, 'private_messages')
        self.assertEquals(private_messages[0].notify_type, 'private_msg')
        self.assertEquals(private_messages[0].target, None)
        self.assertEquals(private_messages[0].extra_data.get('spam'), 'eggs')

        news = Notification.objects.filter(
            media='news',
            target_content_type__isnull=True,
            target_object_id__isnull=True,
        )
        self.assertEquals(len(news), 1)
        self.assertEquals(news[0].media, 'news')
        self.assertEquals(news[0].notify_type, 'private_msg')
        self.assertEquals(news[0].target, None)
        self.assertEquals(news[0].extra_data.get('spam'), 'eggs')