示例#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'])
示例#2
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'])
示例#3
0
 def test_private_collections_only_retrievable_by_owner(self):
     collection = collection_factory(initial_items=0, public=False)
     url = reverse('collection-detail', args=(collection.pk,))
     res = self.app.get(url, expect_errors=True)
     self.assertEqual(res.status_code, 404)
     res = self.app.get(url, user=collection.owner)
     self.assertEqual(res.status_code, 200)
     self.assertEqual(collection.title, res.json['title'])
示例#4
0
 def test_private_collections_only_listed_for_owner(self):
     collection1 = collection_factory(initial_items=0, public=False)
     res = self.app.get(self.url)
     self.assertEqual(res.status_code, 200)
     self.assertEqual(res.json['count'], 0)
     res = self.app.get(self.url, user=collection1.owner)
     self.assertEqual(res.status_code, 200)
     self.assertEqual(res.json['count'], 1)
示例#5
0
 def test_remove_item_when_exists_in_many_collections(self):
     item = item_factory()
     CollectedItem.objects.create(item=item, collection=self.collection)
     other_collection = collection_factory(initial_items=0)
     CollectedItem.objects.create(item=item, collection=other_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=self.collection.owner, expect_errors=True)
     self.assertEqual(set(), set(self.collection.items.all()))
     self.assertEqual({item}, set(other_collection.items.all()))
示例#6
0
 def test_anonymous_can_retrieve(self):
     collection = collection_factory(initial_items=0)
     url = reverse('collection-detail', args=(collection.pk,))
     res = self.app.get(url)
     self.assertEqual(res.status_code, 200)
     self.assertEqual(collection.title, res.json['title'])
示例#7
0
 def setUp(self):
     self.collection = collection_factory(initial_items=0)
     self.url = reverse('collection-delete-detail', args=(self.collection.pk,))
示例#8
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)
示例#9
0
 def setUp(self):
     self.collection = collection_factory(initial_items=0)
示例#10
0
 def test_anonymous_can_list(self):
     collection_factory(initial_items=0)
     res = self.app.get(self.url)
     self.assertEqual(res.status_code, 200)
     self.assertEqual(res.json['count'], 1)
示例#11
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])