class PushSubscriptionFactory(DjangoModelFactory): class Meta: model = PushSubscription user = SubFactory(UserFactory) token = LazyAttribute(lambda x: faker.uuid4()) platform = LazyAttribute( lambda x: random.choice(list(PushSubscriptionPlatform)).value)
def test_create_push_subscription(self): user = UserFactory() self.client.force_login(user=user) data = {'token': faker.uuid4(), 'platform': 'android'} response = self.client.post('/api/subscriptions/push/', data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(response.data['token'], data['token']) self.assertEqual(response.data['platform'], data['platform'])
def test_can_delete_subscriptions(self): user = UserFactory() token = faker.uuid4() subscription = PushSubscription.objects.create( user=user, token=token, platform=PushSubscriptionPlatform.ANDROID) self.client.force_login(user=user) response = self.client.delete('/api/subscriptions/push/{}/'.format( subscription.id)) self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) self.assertEqual( PushSubscription.objects.filter(pk=subscription.id).count(), 0)
def test_retrieve_subscriptions(self): user = UserFactory() token = faker.uuid4() subscription = PushSubscription.objects.create( user=user, token=token, platform=PushSubscriptionPlatform.ANDROID) self.client.force_login(user=user) response = self.client.get('/api/subscriptions/push/{}/'.format( subscription.id)) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['id'], subscription.id) self.assertEqual(response.data['token'], subscription.token) self.assertFalse(hasattr(response.data, 'user'))
def test_cannot_create_duplicate_tokens(self): user = UserFactory() self.client.force_login(user=user) data = {'token': faker.uuid4(), 'platform': 'android'} response = self.client.post('/api/subscriptions/push/', data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) response = self.client.post('/api/subscriptions/push/', data, format='json') self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def setUp(self): self.group = GroupFactory() self.user = UserFactory() self.author = UserFactory() self.group.add_member(self.user) self.group.add_member(self.author) self.token = faker.uuid4() self.content = faker.text() self.conversation = self.group.conversation # add a push subscriber PushSubscription.objects.create(user=self.user, token=self.token, platform=PushSubscriptionPlatform.ANDROID)
def setUp(self): self.user = UserFactory() self.author = UserFactory() self.token = faker.uuid4() self.content = faker.text() # join a conversation self.conversation = ConversationFactory() self.conversation.join(self.user) self.conversation.join(self.author) # add a push subscriber PushSubscription.objects.create(user=self.user, token=self.token, platform=PushSubscriptionPlatform.ANDROID)
def test_can_list_subscriptions(self): user = UserFactory() self.client.force_login(user=user) data = {'token': faker.uuid4(), 'platform': 'android'} response = self.client.post('/api/subscriptions/push/', data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) response = self.client.get('/api/subscriptions/push/') self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 1) self.assertEqual(response.data[0]['token'], data['token']) self.assertFalse(hasattr(response.data[0], 'user'))
def setUp(self): self.user = UserFactory() self.author = UserFactory() self.token = faker.uuid4() self.content = faker.text() # join a conversation self.conversation = ConversationFactory(participants=[self.user, self.author]) # add a push subscriber self.subscription = PushSubscription.objects.create( user=self.user, token=self.token, platform=PushSubscriptionPlatform.ANDROID.value, )