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)
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)
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), {}), ])
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))
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)
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)
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"{}", ), {}))
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={})
def test_get_service_no_oauth_data(self): user = UserFactory() OauthToken.objects.create(user=user, data={}) with self.assertRaises(KeyError): get_service(user.pk)
def test_get_service_no_token(self): user = UserFactory() with self.assertRaises(OauthToken.DoesNotExist): get_service(user.pk)