def test_subscribe_requests_only_pending(self): device_id = "devid_pen" channel_name = "Pri_Pen" token = 'aabbccdd' sub1 = Subscriber() sub1.sub_type = 'android' sub1.token = token sub1.device_id = device_id sub1.save() ch_owner = User.objects.create(first_name="Sample_pen", last_name="User_pen", email="*****@*****.**") ch = Channel.objects.create(owner=ch_owner, name=channel_name, description="", kind=PRIVATE, subscriptions=0) url = reverse('channels-api:subscribe-channel-by-name', args=[channel_name]) data = {'sub_type': 'android', 'device_id': device_id, 'token': token} response = self.client.post(url, data, format='json') self.assertEqual(response.status_code, status.HTTP_202_ACCEPTED) url = reverse('subscriptions-api:requests-list', args=[device_id]) response = self.client.get(url) self.assertTrue(len(response.data) == 1) requests = ChannelSubscribeRequest.objects.filter(device_id=device_id) self.assertTrue(requests.count() == 1) change_request_status(requests[0], REJECTED) response = self.client.get(url) self.assertTrue(len(response.data) == 0)
def post(self, request): if request.is_ajax(): sub_req_id = request.POST['sub_req_id'] new_status = request.POST['new_status'] statuses_mapper = {"APPROVE": ACCEPTED, "REJECT": REJECTED} subscribe_request = ChannelSubscribeRequest.objects.get(id=sub_req_id) change_request_status(subscribe_request, statuses_mapper[new_status]) return HttpResponse(json.dumps(True), content_type="application/json") return HttpResponseBadRequest()