Esempio n. 1
0
 def test_can_filter_by_owner(self):
     collection1 = collection_factory(initial_items=0, owner=user_factory())
     collection_factory(initial_items=0, owner=user_factory())
     assert Collection.objects.count() > 1
     res = self.app.get(self.url, params={'owner': collection1.owner.pk})
     self.assertEqual(res.status_code, 200)
     self.assertEqual(res.json['count'], 1)
     self.assertEqual(collection1.id, res.json['results'][0]['id'])
Esempio n. 2
0
 def test_favorited_by_me(self):
     item = item_factory()
     user_who_favorited = user_factory()
     other_user = user_factory()
     FavoritedItem.objects.create(item=item, user=user_who_favorited)
     res = self.app.get(self.url, user=user_who_favorited)
     self.assertEqual(res.json["results"][0]["favorited_by_me"], True)
     res = self.app.get(self.url, user=other_user)
     self.assertEqual(res.json["results"][0]["favorited_by_me"], False)
Esempio n. 3
0
 def test_filter_favorited_by(self):
     item1 = item_factory()
     item2 = item_factory()
     user = user_factory()
     FavoritedItem.objects.create(item=item1, user=user)
     res = self.app.get(self.url, params={"favorited_by": user.pk})
     self.assertEqual({item1.id}, {obj["id"] for obj in res.json["results"]})
Esempio n. 4
0
 def test_user_cannot_add_items_to_others_collections(self):
     item = item_factory()
     user = user_factory()
     url = reverse('collecteditem-create-list')
     print("hitting", url)
     res = self.app.post(url, json.dumps({'item': item.pk, 'collection': self.collection.pk}),
                         content_type='application/json', user=user, expect_errors=True)
     self.assertEqual(res.status_code, 403)
Esempio n. 5
0
 def test_user_cannot_remove_item_from_others_collection(self):
     item = item_factory()
     user = user_factory()
     CollectedItem.objects.create(item=item, collection=self.collection)
     assert {item} == set(self.collection.items.all())
     url = reverse('collecteditem-delete-detail', args=(self.collection.pk,))
     res = self.app.delete(url, json.dumps({'item': item.pk}), content_type='application/json',
                           user=user, expect_errors=True)
     self.assertEqual(res.status_code, 403)
Esempio n. 6
0
 def test_can_filter_by_public(self):
     owner = user_factory()
     collection1 = collection_factory(initial_items=0, owner=owner, public=False)
     collection2 = collection_factory(initial_items=0, owner=owner, public=True)
     res = self.app.get(self.url, user=owner, params={'owner': owner.pk, 'public': 'False'})
     self.assertEqual(res.status_code, 200)
     self.assertEqual(res.json['count'], 1)
     self.assertEqual(collection1.id, res.json['results'][0]['id'])
     res = self.app.get(self.url, params={'owner': owner.pk, 'public': 'True'})
     self.assertEqual(res.status_code, 200)
     self.assertEqual(res.json['count'], 1)
     self.assertEqual(collection2.id, res.json['results'][0]['id'])
Esempio n. 7
0
def collection_factory(initial_items=3, **kwargs):
    if 'owner' not in kwargs:
        if UserProfile.objects.count() == 0:
            kwargs['owner'] = user_factory()
        else:
            kwargs['owner'] = UserProfile.objects.order_by('?')[0]
    if 'title' not in kwargs:
        kwargs['title'] = nextname('Collection')
    if 'description' not in kwargs:
        kwargs['description'] = lorem
    collection = G(Collection, **kwargs)
    if 'items' not in kwargs:
        if Item.objects.count() < initial_items:
            for _ in range(initial_items - Item.objects.count()):
                item_args = subargs(kwargs, 'item')
                item_factory(**item_args)
        if initial_items:
            for item in Item.objects.order_by('?')[:initial_items]:
                CollectedItem.objects.create(item=item, collection=collection)
    return collection
Esempio n. 8
0
 def setUp(self):
     self.user = user_factory()
Esempio n. 9
0
 def test_403_if_not_owner(self):
     other_user = user_factory()
     new_about_me = self.user.about_me + u' ❤ ☀ ☆ ☂ ☻ ♞ '
     res = self.app.patch(self.url, json.dumps({'about_me': new_about_me}), content_type='application/json',
                          user=other_user, expect_errors=True)
     self.assertEqual(res.status_code, 403)
Esempio n. 10
0
 def setUp(self):
     self.user = user_factory()
     self.url = reverse('userprofile-update-detail', args=[self.user.pk])
Esempio n. 11
0
 def test_anonymous_can_retrieve(self):
     user = user_factory()
     url = reverse('userprofile-detail', args=(user.pk,))
     res = self.app.get(url)
     self.assertEqual(res.status_code, 200)
     self.assertEqual(user.get_full_name(), res.json['name'])
Esempio n. 12
0
 def test_non_owner_cannot_delete(self):
     non_owner = user_factory()
     res = self.app.delete(self.url, user=non_owner, expect_errors=True)
     self.assertEqual(res.status_code, 403)
Esempio n. 13
0
 def test_private_collections_only_listed_for_owner__also_if_use_filter(self):
     collection1 = collection_factory(initial_items=0, owner=user_factory(), public=False)
     res = self.app.get(self.url, params={'owner': collection1.owner.pk, 'public': 'False'})
     self.assertEqual(res.status_code, 200)
     self.assertEqual(res.json['count'], 0)
Esempio n. 14
0
 def setUp(self):
     self.user = user_factory()
     self.collection = collection_factory(initial_items=0, owner=self.user)
     self.item1 = item_factory()
     self.item2 = item_factory()
     self.url = reverse('collection-update-detail', args=[self.collection.pk])
Esempio n. 15
0
 def setUp(self):
     self.url = reverse('collection-create-list')
     self.user = user_factory()
     self.title = u'a  ❤ ☀ ☆ ☂ ☻ ♞  title'