def test_leave_group(self): store = StoreFactory(group=self.group) pickupdate = PickupDateFactory(store=store, collectors=[self.member, self.user], date=timezone.now() + relativedelta(weeks=1)) past_pickupdate = PickupDateFactory(store=store, collectors=[ self.member, ], date=timezone.now() - relativedelta(weeks=1)) unrelated_pickupdate = PickupDateFactory( date=timezone.now() + relativedelta(weeks=1), collectors=[ self.member, ], ) unrelated_pickupdate.store.group.members.add(self.member) self.client.force_login(user=self.member) response = self.client.post('/api/groups/{}/leave/'.format( self.group.id)) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertFalse(pickupdate.collectors.get_queryset().filter( id=self.member.id).exists()) self.assertTrue(past_pickupdate.collectors.get_queryset().filter( id=self.member.id).exists()) self.assertTrue(unrelated_pickupdate.collectors.get_queryset().filter( id=self.member.id).exists())
def setUpClass(cls): super().setUpClass() cls.url = '/api/pickup-dates/' # pickup date for group with one member and one store cls.member = UserFactory() cls.group = GroupFactory(members=[cls.member, ]) cls.store = StoreFactory(group=cls.group) cls.pickup = PickupDateFactory(store=cls.store) cls.pickup_url = cls.url + str(cls.pickup.id) + '/' cls.join_url = cls.pickup_url + 'add/' cls.leave_url = cls.pickup_url + 'remove/' # not a member of the group cls.user = UserFactory() # another pickup date for above store cls.pickup_data = {'date': timezone.now() + relativedelta(days=2), 'max_collectors': 5, 'store': cls.store.id} # past pickup date cls.past_pickup_data = {'date': timezone.now() - relativedelta(days=1), 'max_collectors': 5, 'store': cls.store.id} cls.past_pickup = PickupDateFactory(store=cls.store, date=timezone.now() - relativedelta(days=1)) cls.past_pickup_url = cls.url + str(cls.past_pickup.id) + '/' cls.past_join_url = cls.past_pickup_url + 'add/' cls.past_leave_url = cls.past_pickup_url + 'remove/'
def setUpClass(cls): super().setUpClass() cls.url = '/api/pickup-dates/' # pickup date for group with one member and one store cls.member = UserFactory() cls.group = GroupFactory(members=[ cls.member, ]) cls.store = StoreFactory(group=cls.group) cls.pickup = PickupDateFactory(store=cls.store) # and another store + group + pick-update cls.group2 = GroupFactory(members=[ cls.member, ]) cls.store2 = StoreFactory(group=cls.group2) cls.pickup2 = PickupDateFactory(store=cls.store2) # a pickup date series cls.series = PickupDateSeriesFactory(store=cls.store) cls.series.update_pickup_dates() # another pickup date series cls.series2 = PickupDateSeriesFactory(store=cls.store) cls.series2.update_pickup_dates()
def setUpClass(cls): super().setUpClass() cls.user = UserFactory() cls.group = GroupFactory(members=[cls.user, ]) cls.store = StoreFactory(group=cls.group) cls.pickupdate = PickupDateFactory( store=cls.store, date=timezone.now() + relativedelta(days=1), collectors=[cls.user, ]) cls.past_pickupdate = PickupDateFactory( store=cls.store, date=timezone.now() - relativedelta(days=1), collectors=[cls.user, ] ) cls.url = '/api/users/{}/'.format(cls.user.id)
def setUpTestData(cls): cls.member = UserFactory() cls.group = GroupFactory(members=[cls.member, ]) cls.store = StoreFactory(group=cls.group) cls.pickup = PickupDateFactory(store=cls.store) cls.pickup_url = '/api/pickup-dates/{}/'.format(cls.pickup.id) cls.series = PickupDateSeriesFactory(store=cls.store) cls.series_url = '/api/pickup-date-series/{}/'.format(cls.series.id)
def setUpTestData(cls): cls.member = UserFactory() cls.group = GroupFactory(members=[cls.member, ]) cls.store = StoreFactory(group=cls.group) cls.pickup = PickupDateFactory( store=cls.store, date=timezone.now() - relativedelta(days=1) ) cls.pickup_url = '/api/pickup-dates/{}/'.format(cls.pickup.id) cls.pickup.collectors.add(cls.member) call_command('delete_old_pickup_dates')
def setUpTestData(cls): cls.member = UserFactory() cls.group = GroupFactory(members=[cls.member, ]) cls.store = StoreFactory(group=cls.group) cls.pickup = PickupDateFactory( store=cls.store, date=timezone.now() - relativedelta(days=1) ) cls.pickup_url = '/api/pickup-dates/{}/'.format(cls.pickup.id) # No one who joined the pickup call_command('process_finished_pickup_dates')
def test_delete_stores_as_group_member(self): PickupDateSeriesFactory(store=self.store) PickupDateFactory(store=self.store) self.client.force_login(user=self.member) response = self.client.delete(self.store_url) self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) response = self.client.get(self.url) self.assertEqual(len(response.data), 0) # should also delete pickup dates & series response = self.client.get('/api/pickup-dates/') self.assertEqual(len(response.data), 0) response = self.client.get('/api/pickup-date-series/') self.assertEqual(len(response.data), 0)
def setUpClass(cls): super().setUpClass() cls.series = PickupDateFactory(date=timezone.now() - relativedelta(weeks=1))
def setUpClass(cls): super().setUpClass() cls.pickup = PickupDateFactory(date=timezone.now() + relativedelta(hours=1))
def test_join_pickup_without_max_collectors_as_member(self): self.client.force_login(user=self.member) p = PickupDateFactory(max_collectors=None, store=self.store) response = self.client.post('/api/pickup-dates/{}/add/'.format(p.id)) self.assertEqual(response.status_code, status.HTTP_200_OK, response.data)