def setUp(self):
     super().setUp()
     self.member = UserFactory()
     self.group = GroupFactory(members=[self.member])
     self.place = PlaceFactory(group=self.group)
     self.pickup = PickupDateFactory(place=self.place)
Beispiel #2
0
 def do_pickup(place, user, **kwargs):
     pickup = PickupDateFactory(place=place,
                                date=to_range(timezone.now() -
                                              relativedelta(**kwargs)))
     pickup.add_collector(user)
Beispiel #3
0
 def setUp(self):
     self.pickup = PickupDateFactory()
     self.user = UserFactory()
Beispiel #4
0
 def test_create_two_feedback_for_different_pickups_as_same_user_works(self):
     Feedback.objects.create(given_by=self.user, about=self.pickup)
     Feedback.objects.create(given_by=self.user, about=PickupDateFactory())
Beispiel #5
0
 def setUp(self):
     self.pickup = PickupDateFactory(date=to_range(timezone.now() - relativedelta(weeks=1), minutes=30))
Beispiel #6
0
    def setUpTestData(cls):
        """ This method runs once before tests in this class """
        cls.url = '/api/feedback/'

        cls.member = UserFactory()
        cls.collector = UserFactory()
        cls.collector2 = UserFactory()
        cls.collector3 = UserFactory()
        cls.evil_collector = UserFactory()
        cls.group = GroupFactory(members=[
            cls.member, cls.collector, cls.evil_collector, cls.collector2,
            cls.collector3
        ])
        cls.place = PlaceFactory(group=cls.group)
        cls.pickup = PickupDateFactory(
            place=cls.place,
            date=to_range(timezone.now() + relativedelta(days=1)),
            collectors=[cls.collector, cls.collector2, cls.collector3],
        )

        # not a member of the group
        cls.user = UserFactory()

        # past pickup date
        cls.past_pickup = PickupDateFactory(
            place=cls.place,
            date=to_range(timezone.now() - relativedelta(days=1)),
            collectors=[
                cls.collector, cls.evil_collector, cls.collector2,
                cls.collector3
            ],
        )

        # old pickup date with feedback
        cls.old_pickup = PickupDateFactory(
            place=cls.place,
            date=to_range(timezone.now() - relativedelta(
                days=settings.FEEDBACK_POSSIBLE_DAYS + 2)),
            collectors=[
                cls.collector3,
            ])
        cls.old_feedback = FeedbackFactory(about=cls.old_pickup,
                                           given_by=cls.collector3)

        # create feedback for POST method
        cls.feedback_post = {
            'about': cls.past_pickup.id,
            'weight': 2,
            'comment': 'asfjk'
        }

        # create feedback for POST method without weight and comment
        cls.feedback_without_weight_comment = {
            'about': cls.past_pickup.id,
        }

        # create feedback to future pickup
        cls.future_feedback_post = {
            'about': cls.pickup.id,
            'weight': 2,
            'comment': 'asfjk'
        }

        # create feedback for an old pickup
        cls.feedback_for_old_pickup = {
            'about': cls.old_pickup.id,
            'weight': 5,
            'comment': 'this is long ago'
        }

        # create feedback for GET method
        cls.feedback_get = {
            'given_by': cls.collector,
            'about': cls.past_pickup,
            'weight': 2,
            'comment': 'asfjk2'
        }

        cls.feedback_get_2 = {
            'given_by': cls.collector2,
            'about': cls.past_pickup,
            'weight': 2,
            'comment': 'asfjk'
        }

        # create 2 instances of feedback for GET method
        cls.feedback = Feedback.objects.create(**cls.feedback_get)
        Feedback.objects.create(**cls.feedback_get_2)

        cls.feedback_url = cls.url + str(cls.feedback.id) + '/'
        cls.old_feedback_url = cls.url + str(cls.old_feedback.id) + '/'
Beispiel #7
0
 def test_does_not_count_from_other_groups(self):
     PickupDateFactory(
         place=self.other_place, date=to_range(timezone.now() - timedelta(days=2)), collectors=[self.user]
     )
     memberships = self.group.groupmembership_set.pickup_active_within(days=7)
     self.assertEqual(memberships.count(), 0)
    def setUp(self):
        self.url = '/api/feedback/'

        self.member = UserFactory()
        self.collector = UserFactory()
        self.collector2 = UserFactory()
        self.collector3 = UserFactory()
        self.evil_collector = UserFactory()
        self.group = GroupFactory(members=[
            self.member, self.collector, self.evil_collector, self.collector2,
            self.collector3
        ])
        self.place = PlaceFactory(group=self.group)
        self.pickup = PickupDateFactory(
            place=self.place,
            date=to_range(timezone.now() + relativedelta(days=1)),
            collectors=[self.collector, self.collector2, self.collector3],
        )

        # not a member of the group
        self.user = UserFactory()

        # past pickup date
        self.past_pickup = PickupDateFactory(
            place=self.place,
            date=to_range(timezone.now() - relativedelta(days=1)),
            collectors=[
                self.collector, self.evil_collector, self.collector2,
                self.collector3
            ],
        )

        # old pickup date with feedback
        self.old_pickup = PickupDateFactory(
            place=self.place,
            date=to_range(timezone.now() - relativedelta(
                days=settings.FEEDBACK_POSSIBLE_DAYS + 2)),
            collectors=[
                self.collector3,
            ])
        self.old_feedback = FeedbackFactory(about=self.old_pickup,
                                            given_by=self.collector3)

        # create feedback for POST method
        self.feedback_post = {
            'about': self.past_pickup.id,
            'weight': 2,
            'comment': 'asfjk'
        }

        # create feedback for POST method without weight and comment
        self.feedback_without_weight_comment = {
            'about': self.past_pickup.id,
        }

        # create feedback to future pickup
        self.future_feedback_post = {
            'about': self.pickup.id,
            'weight': 2,
            'comment': 'asfjk'
        }

        # create feedback for an old pickup
        self.feedback_for_old_pickup = {
            'about': self.old_pickup.id,
            'weight': 5,
            'comment': 'this is long ago'
        }

        # create feedback for GET method
        self.feedback_get = {
            'given_by': self.collector,
            'about': self.past_pickup,
            'weight': 2,
            'comment': 'asfjk2'
        }

        self.feedback_get_2 = {
            'given_by': self.collector2,
            'about': self.past_pickup,
            'weight': 2,
            'comment': 'asfjk'
        }

        # create 2 instances of feedback for GET method
        self.feedback = Feedback.objects.create(**self.feedback_get)
        Feedback.objects.create(**self.feedback_get_2)

        self.feedback_url = self.url + str(self.feedback.id) + '/'
        self.old_feedback_url = self.url + str(self.old_feedback.id) + '/'
 def test_join_pickup_without_max_collectors_as_member(self):
     self.client.force_login(user=self.member)
     p = PickupDateFactory(max_collectors=None, place=self.place)
     response = self.client.post('/api/pickup-dates/{}/add/'.format(p.id))
     self.assertEqual(response.status_code, status.HTTP_200_OK,
                      response.data)