示例#1
0
    def test_update_subscriptions(self):
        update_subscriptions()
        self.assertNumTasksEquals(0)

        user1 = UserFactory()
        OauthToken.objects.create(user=user1)
        user2 = UserFactory()
        OauthToken.objects.create(user=user2)

        update_subscriptions()
        self.assertNumTasksEquals(2)
示例#2
0
    def test_update_subscriptions_last_pk(self):
        user1 = UserFactory(pk=1)
        OauthToken.objects.create(pk=1, user=user1)
        user2 = UserFactory(pk=2)
        OauthToken.objects.create(pk=2, user=user2)

        update_subscriptions(last_pk=1)
        self.assertNumTasksEquals(1)

        self.flush_task_queues()
        update_subscriptions(last_pk=2)
        self.assertNumTasksEquals(0)
示例#3
0
    def test_update_subscriptions_runtime_exceeded(self, defer_mock):
        user1 = UserFactory(pk=1)
        oauth1 = OauthToken.objects.create(pk=1, user=user1)
        user2 = UserFactory(pk=2)
        OauthToken.objects.create(pk=2, user=user2)

        defer_mock.defer.side_effect = MockExecute([RuntimeExceededError(), None])

        update_subscriptions()
        self.assertEqual(defer_mock.defer.call_count, 2)
        self.assertEqual(defer_mock.defer.call_args_list, [
            ((subscriptions, oauth1.pk), {}),
            # defered task was not sent off, so we need to start from the first user again
            ((update_subscriptions, None), {}),
        ])
示例#4
0
    def test_bucket_edit_subs_qs(self):
        bucket = BucketFactory()
        other_user = UserFactory()

        my_subs = SubscriptionFactory.create_batch(2, user=bucket.user)
        SubscriptionFactory.create_batch(2, user=other_user)  # other subs

        form = BucketEditForm(instance=bucket)
        subs = list(form.fields["subs"].queryset)

        self.assertEqual(len(subs), 2)
        self.assertCountEqual(subs, list(my_subs))
示例#5
0
    def test_video_from_bucket(self):
        user = UserFactory()
        bucket1 = BucketFactory(user=user, title="test1")
        bucket2 = BucketFactory(user=user, title="test2")
        video = VideoFactory(user=user, buckets=[bucket2])

        videos1 = Video.objects.from_bucket(user=user, bucket=bucket1)
        videos2 = Video.objects.from_bucket(user=user, bucket=bucket2)

        self.assertEqual(len(videos1), 0)
        self.assertEqual(len(videos2), 1)
        self.assertEqual(videos2[0], video)
示例#6
0
    def test_video_from_subscription(self):
        user = UserFactory()
        sub1 = SubscriptionFactory(user=user)
        sub2 = SubscriptionFactory(user=user)
        video = VideoFactory(user=user, subscription=sub2)

        videos1 = Video.objects.from_subscription(user=user, subscription=sub1)
        videos2 = Video.objects.from_subscription(user=user, subscription=sub2)

        self.assertEqual(len(videos1), 0)
        self.assertEqual(len(videos2), 1)
        self.assertEqual(videos2[0], video)
示例#7
0
    def test_get_service_with_cache(self, credentials, build):
        user = UserFactory()
        OauthToken.objects.create(user=user, data='{}')

        service = get_service(user.pk)

        authorize = credentials.new_from_json.return_value.authorize
        self.assertEqual(build.call_count, 1)
        self.assertEqual(build.return_value, service)
        self.assertEqual(build.call_args, (("youtube", "v3"), {
            "http": authorize.return_value
        }))
        self.assertEqual(authorize.call_count, 1)
        self.assertEqual(authorize.call_args[0][0].cache, memcache)
        self.assertEqual(credentials.new_from_json.call_count, 1)
        self.assertEqual(credentials.new_from_json.call_args, ((u"{}", ), {}))
示例#8
0
    def setUp(self):
        super(UpdateSubscriptionsForUsersTestCase, self).setUp()

        self.service_patch = mock.patch('subscribae.utils.get_service')
        self.service_mock = self.service_patch.start()

        self.subscription_mock = self.service_mock.return_value.subscriptions.return_value.list
        self.channel_mock = self.service_mock.return_value.channels.return_value.list

        self.subscription_mock.return_value.execute = MockExecute([
            {
                'items': [
                    {
                        'snippet': {
                            'resourceId': {'channelId': '123'},
                            'thumbnails': {},
                        },
                    },
                    {
                        'snippet': {
                            'resourceId': {'channelId': '456'},
                            'thumbnails': {},
                        },
                    },
                ],
            },
        ])

        self.channel_mock.return_value.execute.return_value = {
            'items': [
                {
                    'id': '123',
                    'contentDetails': {
                        'relatedPlaylists': {'uploads': 'upload123'},
                    },
                },
                {
                    'id': '456',
                    'contentDetails': {
                        'relatedPlaylists': {'uploads': 'upload456'},
                    },
                },
            ],
        }

        self.user = UserFactory.create()
        OauthToken.objects.create(user=self.user, data={})
示例#9
0
    def test_get_service_no_oauth_data(self):
        user = UserFactory()
        OauthToken.objects.create(user=user, data={})

        with self.assertRaises(KeyError):
            get_service(user.pk)
示例#10
0
 def test_get_service_no_token(self):
     user = UserFactory()
     with self.assertRaises(OauthToken.DoesNotExist):
         get_service(user.pk)