示例#1
0
 def setUp(self):
     user_1 = UserFactory(nsid='1234567890@N01')
     user_2 = UserFactory(nsid='9876543210@N01')
     account_1 = AccountFactory(user=user_1)
     account_2 = AccountFactory(user=user_2)
     self.photos_1 = PhotoFactory.create_batch(2, user=user_1)
     self.photos_2 = PhotoFactory.create_batch(3, user=user_2)
     self.private_photo = PhotoFactory(user=user_1, is_private=True)
     # For comparing with the results:
     self.public_pks = [p.pk for p in self.photos_1] + \
                                             [p.pk for p in self.photos_2]
 def setUp(self):
     user_1 = UserFactory(nsid='1234567890@N01')
     user_2 = UserFactory(nsid='9876543210@N01')
     account_1 = AccountFactory(user=user_1)
     account_2 = AccountFactory(user=user_2)
     self.photos_1 = PhotoFactory.create_batch(2, user=user_1)
     self.photos_2 = PhotoFactory.create_batch(3, user=user_2)
     self.private_photo = PhotoFactory(user=user_1, is_private=True)
     # For comparing with the results:
     self.public_pks = [p.pk for p in self.photos_1] + \
                                             [p.pk for p in self.photos_2]
    def test_data(self):
        "Check format of a single data element."
        user = FlickrUserFactory(nsid='35034346050@N01')
        PhotoFactory.create_batch(3,
                                user=user,
                                post_time=make_datetime('2018-01-01 12:00:00'))

        result = FlickrGenerator(nsid='35034346050@N01').get_photos_per_year()

        self.assertIn('data', result)
        self.assertEqual(len(result['data']), 1)
        self.assertEqual(result['data'][0]['label'], '2018')
        self.assertEqual(result['data'][0]['value'], 3)
示例#4
0
 def test_home_context(self):
     "The Flickr home page sends the correct data to templates"
     accounts = AccountFactory.create_batch(3)
     photos_1 = PhotoFactory.create_batch(2, user=accounts[0].user)
     photos_2 = PhotoFactory.create_batch(2, user=accounts[1].user)
     response = self.client.get(reverse('flickr:home'))
     self.assertIn('account_list', response.context)
     self.assertIn('photo_list', response.context)
     self.assertEqual(len(response.context['photo_list']), 4)
     self.assertIn('order', response.context)
     self.assertEqual(response.context['order'], 'uploaded')
     # Three accounts, only two of which have Photos:
     self.assertEqual(
         [account.pk for account in response.context['account_list']],
         [1, 2, 3])
示例#5
0
 def test_home_context(self):
     "The Flickr home page sends the correct data to templates"
     accounts = AccountFactory.create_batch(3)
     photos_1 = PhotoFactory.create_batch(2, user=accounts[0].user)
     photos_2 = PhotoFactory.create_batch(2, user=accounts[1].user)
     response = self.client.get(reverse('flickr:home'))
     self.assertIn('account_list', response.context)
     self.assertIn('photo_list', response.context)
     self.assertEqual(len(response.context['photo_list']), 4)
     self.assertIn('order', response.context)
     self.assertEqual(response.context['order'], 'uploaded')
     # Three accounts, only two of which have Photos:
     self.assertEqual(
         [account.pk for account in response.context['account_list']],
         [1,2,3]
     )
示例#6
0
    def setUp(self):
        user_1 = UserFactory(nsid='1234567890@N01')
        user_2 = UserFactory(nsid='9876543210@N01')
        account_1 = AccountFactory(user=user_1)
        account_2 = AccountFactory(user=user_2)
        self.photos_1 = PhotoFactory.create_batch(2, user=user_1)
        self.photos_2 = PhotoFactory.create_batch(3, user=user_2)

        post_time = datetime.datetime(2015, 3, 18, 12, 0,
                                      0).replace(tzinfo=pytz.utc)
        self.photos_1[0].post_time = post_time
        self.photos_1[0].save()
        self.photos_2[1].post_time = post_time + datetime.timedelta(hours=1)
        self.photos_2[1].save()

        self.private_photo = PhotoFactory(user=user_1,
                                          is_private=True,
                                          post_time=post_time)
 def setUp(self):
     self.user_1 = UserFactory(nsid='1234567890@N01')
     self.user_2 = UserFactory(nsid='9876543210@N01')
     AccountFactory(user=self.user_1)
     AccountFactory(user=self.user_2)
     # Photos taken in 2015 and 2016 for user 1:
     PhotoFactory.create_batch(3,
                         taken_time=datetime_from_str('2015-01-01 12:00:00'),
                         user=self.user_1)
     PhotoFactory.create_batch(2,
                         taken_time=datetime_from_str('2016-01-01 12:00:00'),
                         user=self.user_1)
     # And one for user_2 taken in 2015:
     PhotoFactory(user=self.user_2,
                         taken_time=datetime_from_str('2015-01-01 12:00:00'))
     # And one private photo for user_1 taken in 2015:
     PhotoFactory(user=self.user_1, is_private=True,
                         taken_time=datetime_from_str('2015-01-01 12:00:00'))
示例#8
0
 def test_photo_detail_templates(self):
     "Uses the correct templates"
     account = AccountFactory()
     photos = PhotoFactory.create_batch(3, user=account.user)
     response = self.client.get(reverse('flickr:photo_detail',
                                 kwargs={'nsid': account.user.nsid,
                                         'flickr_id': photos[1].flickr_id}))
     self.assertEquals(response.status_code, 200)
     self.assertTemplateUsed(response, 'flickr/photo_detail.html')
     self.assertTemplateUsed(response, 'flickr/base.html')
     self.assertTemplateUsed(response, 'ditto/base.html')
示例#9
0
 def test_photo_detail_templates(self):
     "Uses the correct templates"
     account = AccountFactory()
     photos = PhotoFactory.create_batch(3, user=account.user)
     response = self.client.get(reverse('flickr:photo_detail',
                                 kwargs={'nsid': account.user.nsid,
                                         'flickr_id': photos[1].flickr_id}))
     self.assertEquals(response.status_code, 200)
     self.assertTemplateUsed(response, 'flickr/photo_detail.html')
     self.assertTemplateUsed(response, 'flickr/base.html')
     self.assertTemplateUsed(response, 'ditto/base.html')
示例#10
0
    def test_flickr_photos_several(self):
        "It should return all Photos from each day."

        user = UserFactory(nsid='11111111111@N01')
        account = FlickrAccountFactory(user=user)

        day_1_photos = PhotoFactory.create_batch(4,
                    user=user, is_private=False,
                    post_time=make_datetime('2017-05-01 12:30:00'))

        day_2_photos = PhotoFactory.create_batch(3,
                    user=user, is_private=False,
                    post_time=make_datetime('2017-06-01 12:30:00'))

        r = RecentObjects( (('flickr_photos', user.nsid,),) )
        objects = r.get_objects()

        self.assertEqual(len(objects), 2)
        self.assertEqual(len(objects[0]['objects']), 3)
        self.assertEqual(len(objects[1]['objects']), 4)
示例#11
0
 def setUp(self):
     self.user_1 = UserFactory(nsid='1234567890@N01')
     self.user_2 = UserFactory(nsid='9876543210@N01')
     AccountFactory(user=self.user_1)
     AccountFactory(user=self.user_2)
     # Photos taken in 2015 and 2016 for user 1:
     PhotoFactory.create_batch(
         3,
         taken_time=datetime_from_str('2015-01-01 12:00:00'),
         user=self.user_1)
     PhotoFactory.create_batch(
         2,
         taken_time=datetime_from_str('2016-01-01 12:00:00'),
         user=self.user_1)
     # And one for user_2 taken in 2015:
     PhotoFactory(user=self.user_2,
                  taken_time=datetime_from_str('2015-01-01 12:00:00'))
     # And one private photo for user_1 taken in 2015:
     PhotoFactory(user=self.user_1,
                  is_private=True,
                  taken_time=datetime_from_str('2015-01-01 12:00:00'))
示例#12
0
    def test_years(self):
        "Should include all intermediate years."
        user = FlickrUserFactory(nsid='35034346050@N01')
        PhotoFactory(user=user,
                    post_time=make_datetime('2014-01-01 12:00:00'))
        PhotoFactory.create_batch(3,
                    user=user,
                    post_time=make_datetime('2016-01-01 12:00:00'))
        PhotoFactory(user=user,
                    post_time=make_datetime('2018-01-01 12:00:00'))

        result = FlickrGenerator(nsid='35034346050@N01').get_photos_per_year()

        self.assertIn('data', result)
        self.assertEqual(result['data'], [
            {'label': '2014', 'value': 1},
            {'label': '2015', 'value': 0},
            {'label': '2016', 'value': 3},
            {'label': '2017', 'value': 0},
            {'label': '2018', 'value': 1},
        ])
    def setUp(self):
        user_1 = UserFactory(nsid='1234567890@N01')
        user_2 = UserFactory(nsid='9876543210@N01')
        account_1 = AccountFactory(user=user_1)
        account_2 = AccountFactory(user=user_2)
        self.photos_1 = PhotoFactory.create_batch(2, user=user_1)
        self.photos_2 = PhotoFactory.create_batch(3, user=user_2)

        taken_time = datetime.datetime(2014, 3, 18, 12, 0, 0).replace(
                                                            tzinfo=pytz.utc)
        post_time = datetime.datetime(2015, 3, 18, 12, 0, 0).replace(
                                                            tzinfo=pytz.utc)
        self.photos_1[0].taken_time = taken_time
        self.photos_1[0].post_time = post_time
        self.photos_1[0].save()
        self.photos_2[1].taken_time = taken_time + datetime.timedelta(hours=1)
        self.photos_2[1].post_time = post_time + datetime.timedelta(hours=1)
        self.photos_2[1].save()

        self.private_photo = PhotoFactory(user=user_1, is_private=True,
                post_time = post_time)
示例#14
0
    def test_flickr_photos(self):
        "It only returns Public Photos from the correct User"
        u1 = UserFactory(nsid='11111111111@N01')
        u2 = UserFactory(nsid='22222222222@N01')
        FlickrAccountFactory(user=u1)
        FlickrAccountFactory(user=u2)

        PhotoFactory.create_batch(3, user=u1, is_private=False)

        # These shouldn't be returned:
        PhotoFactory(user=u1, is_private=True)
        PhotoFactory(user=u2, is_private=False)

        r = RecentObjects( (('flickr_photos', u1.nsid,),) )
        objects = r.get_objects()

        self.assertEqual(len(objects), 1)

        for obj in objects:
            self.assertEqual(obj['objects'][0].user, u1)
            self.assertFalse(obj['objects'][0].is_private)
示例#15
0
 def test_photo_detail_context_no_account(self):
     "Sends correct data to templates when showing a photo with no account"
     user = UserFactory()
     photos = PhotoFactory.create_batch(3, user=user)
     response = self.client.get(reverse('flickr:photo_detail',
                                 kwargs={'nsid': user.nsid,
                                         'flickr_id': photos[1].flickr_id}))
     self.assertIn('account', response.context)
     self.assertIsNone(response.context['account'])
     self.assertIn('flickr_user', response.context)
     self.assertEqual(user.pk, response.context['flickr_user'].pk)
     self.assertIn('photo', response.context)
     self.assertEqual(photos[1].pk, response.context['photo'].pk)
示例#16
0
    def test_user_detail_context_no_account(self):
        "Sends correct data to templates for a User with no Account."
        user = UserFactory()
        users_photos = PhotoFactory.create_batch(2, user=user)
        other_photos = PhotoFactory.create_batch(2)

        response = self.client.get(
            reverse('flickr:user_detail', kwargs={'nsid': user.nsid}))
        self.assertIn('account', response.context)
        self.assertIsNone(response.context['account'])

        self.assertIn('flickr_user', response.context)
        self.assertEqual(user.pk, response.context['flickr_user'].pk)

        self.assertIn('order', response.context)
        self.assertEqual(response.context['order'], 'uploaded')

        self.assertIn('photo_list', response.context)
        self.assertEqual(len(response.context['photo_list']), 2)
        # ie, only user's photos.
        self.assertIn(users_photos[0], response.context['photo_list'])
        self.assertIn(users_photos[1], response.context['photo_list'])
示例#17
0
 def test_photo_detail_context(self):
     "Sends the correct data to templates"
     account = AccountFactory()
     photos = PhotoFactory.create_batch(3, user=account.user)
     response = self.client.get(reverse('flickr:photo_detail',
                                 kwargs={'nsid': account.user.nsid,
                                         'flickr_id': photos[1].flickr_id}))
     self.assertIn('account', response.context)
     self.assertEqual(account.pk, response.context['account'].pk)
     self.assertIn('flickr_user', response.context)
     self.assertEqual(account.user.pk, response.context['flickr_user'].pk)
     self.assertIn('photo', response.context)
     self.assertEqual(photos[1].pk, response.context['photo'].pk)
示例#18
0
 def test_photo_detail_context(self):
     "Sends the correct data to templates"
     account = AccountFactory()
     photos = PhotoFactory.create_batch(3, user=account.user)
     response = self.client.get(reverse('flickr:photo_detail',
                                 kwargs={'nsid': account.user.nsid,
                                         'flickr_id': photos[1].flickr_id}))
     self.assertIn('account', response.context)
     self.assertEqual(account.pk, response.context['account'].pk)
     self.assertIn('flickr_user', response.context)
     self.assertEqual(account.user.pk, response.context['flickr_user'].pk)
     self.assertIn('photo', response.context)
     self.assertEqual(photos[1].pk, response.context['photo'].pk)
示例#19
0
    def test_user_detail_context_no_account(self):
        "Sends correct data to templates for a User with no Account."
        user = UserFactory()
        users_photos = PhotoFactory.create_batch(2, user=user)
        other_photos = PhotoFactory.create_batch(2)

        response = self.client.get(reverse('flickr:user_detail',
                                                kwargs={'nsid': user.nsid}))
        self.assertIn('account', response.context)
        self.assertIsNone(response.context['account'])

        self.assertIn('flickr_user', response.context)
        self.assertEqual(user.pk, response.context['flickr_user'].pk)

        self.assertIn('order', response.context)
        self.assertEqual(response.context['order'], 'uploaded')

        self.assertIn('photo_list', response.context)
        self.assertEqual(len(response.context['photo_list']), 2)
        # ie, only user's photos.
        self.assertIn(users_photos[0], response.context['photo_list'])
        self.assertIn(users_photos[1], response.context['photo_list'])
示例#20
0
 def test_photo_detail_context_no_account(self):
     "Sends correct data to templates when showing a photo with no account"
     user = UserFactory()
     photos = PhotoFactory.create_batch(3, user=user)
     response = self.client.get(reverse('flickr:photo_detail',
                                 kwargs={'nsid': user.nsid,
                                         'flickr_id': photos[1].flickr_id}))
     self.assertIn('account', response.context)
     self.assertIsNone(response.context['account'])
     self.assertIn('flickr_user', response.context)
     self.assertEqual(user.pk, response.context['flickr_user'].pk)
     self.assertIn('photo', response.context)
     self.assertEqual(photos[1].pk, response.context['photo'].pk)
示例#21
0
    def setUp(self):

        self.user_1 = UserFactory(nsid='1234567890@N01')
        self.account_1 = AccountFactory(user=self.user_1)
        # Three photos, one of which is private.
        self.photos_1 = PhotoFactory.create_batch(3, user=self.user_1)
        self.photos_1[0].is_private = True
        self.photos_1[0].save()

        self.user_2 = UserFactory(nsid='9876543210@N01')
        self.account_2 = AccountFactory(user=self.user_2)
        self.photos_2 = PhotoFactory.create_batch(3, user=self.user_2)

        # Has three photos, one of them private:
        self.photoset_1 = PhotosetFactory(user=self.user_1, flickr_id=123456)
        self.photoset_1.photos.add(*self.photos_1)

        # Should have two of user_2's three photos:
        self.photoset_2a = PhotosetFactory(user=self.user_2, flickr_id=98765)
        self.photoset_2a.photos.add(self.photos_2[0], self.photos_2[1])

        # Has all three of user_2's photos:
        self.photoset_2b = PhotosetFactory(user=self.user_2, flickr_id=55555)
        self.photoset_2b.photos.add(*self.photos_2)
示例#22
0
    def setUp(self):

        self.user_1 = UserFactory(nsid='1234567890@N01')
        self.account_1 = AccountFactory(user=self.user_1)
        # Three photos, one of which is private.
        self.photos_1 = PhotoFactory.create_batch(3, user=self.user_1)
        self.photos_1[0].is_private = True
        self.photos_1[0].save()

        self.user_2 = UserFactory(nsid='9876543210@N01')
        self.account_2 = AccountFactory(user=self.user_2)
        self.photos_2 = PhotoFactory.create_batch(3, user=self.user_2)

        # Has three photos, one of them private:
        self.photoset_1 = PhotosetFactory(user=self.user_1, flickr_id=123456)
        self.photoset_1.photos.add(*self.photos_1)

        # Should have two of user_2's three photos:
        self.photoset_2a = PhotosetFactory(user=self.user_2, flickr_id=98765)
        self.photoset_2a.photos.add(self.photos_2[0], self.photos_2[1])

        # Has all three of user_2's photos:
        self.photoset_2b = PhotosetFactory(user=self.user_2, flickr_id=55555)
        self.photoset_2b.photos.add(*self.photos_2)