class PickupDateReceiverTests(WSTestCase): 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) def test_receive_pickup_changes(self): self.client = self.connect_as(self.member) # change property date = to_range( faker.future_datetime(end_date='+30d', tzinfo=timezone.utc)) self.pickup.date = date self.pickup.save() response = self.client.messages_by_topic.get('pickups:pickupdate')[0] self.assertEqual(parse(response['payload']['date'][0]), date.start) # join self.client = self.connect_as(self.member) self.pickup.add_collector(self.member) response = self.client.messages_by_topic.get('pickups:pickupdate')[0] self.assertEqual(response['payload']['collectors'], [self.member.id]) response = self.client.messages_by_topic.get( 'conversations:conversation')[0] self.assertEqual(response['payload']['participants'], [self.member.id]) # leave self.client = self.connect_as(self.member) self.pickup.remove_collector(self.member) response = self.client.messages_by_topic.get('pickups:pickupdate')[0] self.assertEqual(response['payload']['collectors'], []) self.assertIn('conversations:leave', self.client.messages_by_topic.keys()) def test_receive_pickup_delete(self): self.client = self.connect_as(self.member) pickup_id = self.pickup.id self.pickup.delete() response = self.client.messages_by_topic.get( 'pickups:pickupdate_deleted')[0] self.assertEqual(response['payload']['id'], pickup_id) self.assertEqual(len(self.client.messages), 1)
def test_deletes_pickup_upcoming_notification(self): user = UserFactory() group = GroupFactory(members=[user]) place = PlaceFactory(group=group) in_one_hour = to_range(timezone.now() + relativedelta(hours=1)) pickup = PickupDateFactory(place=place, date=in_one_hour, collectors=[user]) Notification.objects.all().delete() create_pickup_upcoming_notifications.call_local() pickup.remove_collector(user) notifications = Notification.objects.filter( type=NotificationType.PICKUP_UPCOMING.value) self.assertEqual(notifications.count(), 0)
class PickupDateReceiverTests(WSTestCase): 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) def test_receive_pickup_changes(self): client = self.connect_as(self.member) # change property date = to_range( faker.future_datetime(end_date='+30d', tzinfo=timezone.utc)) self.pickup.date = date self.pickup.save() response = client.messages_by_topic.get('pickups:pickupdate')[0] self.assertEqual(parse(response['payload']['date'][0]), date.start) # join client = self.connect_as(self.member) self.pickup.add_collector(self.member) response = client.messages_by_topic.get('pickups:pickupdate')[0] self.assertEqual(response['payload']['collectors'], [self.member.id]) response = client.messages_by_topic.get( 'conversations:conversation')[0] self.assertEqual(response['payload']['participants'], [self.member.id]) # leave client = self.connect_as(self.member) self.pickup.remove_collector(self.member) response = client.messages_by_topic.get('pickups:pickupdate')[0] self.assertEqual(response['payload']['collectors'], []) self.assertIn('conversations:leave', client.messages_by_topic.keys()) def test_mark_as_done(self): self.pickup.add_collector(self.member) Notification.objects.all().delete() client = self.connect_as(self.member) self.pickup.is_done = True self.pickup.save() messages = client.messages_by_topic self.assertEqual(len(messages['status']), 2, messages['status']) self.assertEqual(messages['status'][0]['payload'], {'unseen_notification_count': 1}) self.assertEqual( messages['status'][1]['payload'], {'groups': { self.group.id: { 'feedback_possible_count': 1 } }}) self.assertEqual(len(messages['notifications:notification']), 1, messages['notifications:notification']) self.assertEqual( messages['notifications:notification'][0]['payload']['type'], 'feedback_possible') def test_receive_pickup_delete(self): client = self.connect_as(self.member) pickup_id = self.pickup.id self.pickup.delete() response = client.messages_by_topic.get( 'pickups:pickupdate_deleted')[0] self.assertEqual(response['payload']['id'], pickup_id) self.assertEqual(len(client.messages), 1)