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'])
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'])
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'])
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)
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()))
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'])
def setUp(self): self.collection = collection_factory(initial_items=0) self.url = reverse('collection-delete-detail', args=(self.collection.pk,))
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)
def setUp(self): self.collection = collection_factory(initial_items=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)
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])