Ejemplo n.º 1
0
    def test_send_to_all_banks(self):
        self.client.force_authenticate(user=self.partner_user)
        bank1 = OrganizationFactory(groups=(GroupFactory(name="banks"), ))
        bank2 = OrganizationFactory(groups=(GroupFactory(name="banks"), ))
        offers = [
            CreditOfferFactory(rotation_start_time=parse_datetime('2000-01-01T00:00:00'),
                               rotation_end_time=parse_datetime('2023-01-01T00:00:00'),
                               min_score=200,
                               max_score=400,
                               credit_org=bank1),
            CreditOfferFactory(rotation_start_time=parse_datetime('2000-01-01T00:00:00'),
                               rotation_end_time=parse_datetime('2023-01-01T00:00:00'),
                               min_score=300,
                               max_score=999,
                               credit_org=bank2)
        ]
        credit_form = ClientCreditFormFactory(score=300, partner=self.partner_user)
        form_action_url = reverse('creditforms-send-to-banks', args=[credit_form.id])
        response = self.client.post(form_action_url)

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(len(response.data), 2)
        self.assertEqual(response.data[0]['credit_offer'], offers[0].id)
        self.assertEqual(response.data[0]['client_credit_form'], credit_form.id)
        self.assertEqual(response.data[1]['credit_offer'], offers[1].id)
        self.assertEqual(response.data[1]['client_credit_form'], credit_form.id)
Ejemplo n.º 2
0
 def test_update_creditform_by_bank(self):
     self.client.force_authenticate(user=self.bank_user)
     new_form = ClientCreditFormFactory(partner=self.partner_user)
     data = AdminClientCreditFormSerializer(new_form).data
     expected_field = "UpdatedField"
     data['lastname'] = expected_field
     form_url = urljoin(self.url, f'{new_form.id}/')
     response = self.client.put(form_url, data)
     self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
Ejemplo n.º 3
0
 def test_update_creditform_by_admin(self):
     admin_user = OrganizationFactory(is_staff=True)
     self.client.force_authenticate(user=admin_user)
     new_form = ClientCreditFormFactory(partner=self.partner_user)
     data = AdminClientCreditFormSerializer(new_form).data
     expected_field = "UpdatedField"
     data['lastname'] = expected_field
     form_url = urljoin(self.url, f'{new_form.id}/')
     response = self.client.put(form_url, data)
     self.assertEqual(response.status_code, status.HTTP_200_OK)
     self.assertEqual(expected_field, response.data['lastname'])
Ejemplo n.º 4
0
 def test_create_creditform(self):
     self.client.force_authenticate(user=self.partner_user)
     new_form = ClientCreditFormFactory(partner=self.partner_user)
     data = ClientCreditFormSerializer(new_form).data
     response = self.client.post(self.url, data)
     data.pop('id')
     data.pop('created_time')
     data.pop('modified_time')
     response.data.pop('modified_time')
     response.data.pop('created_time')
     response.data.pop('id')
     self.assertEqual(response.status_code, status.HTTP_201_CREATED)
     self.assertEqual(data, response.data)
Ejemplo n.º 5
0
 def test_create_creditform_by_admin(self):
     admin_user = OrganizationFactory(is_staff=True)
     self.client.force_authenticate(user=admin_user)
     new_form = ClientCreditFormFactory(partner=self.partner_user)
     data = AdminClientCreditFormSerializer(new_form).data
     response = self.client.post(self.url, data)
     data.pop('id')
     data.pop('created_time')
     data.pop('modified_time')
     response.data.pop('modified_time', None)
     response.data.pop('created_time')
     response.data.pop('id')
     self.assertEqual(response.status_code, status.HTTP_201_CREATED)
     self.assertEqual(data, response.data)
Ejemplo n.º 6
0
    def test_get_relevant_offers(self):
        self.client.force_authenticate(user=self.partner_user)
        bank1 = OrganizationFactory(groups=(GroupFactory(name="banks"), ))
        bank2 = OrganizationFactory(groups=(GroupFactory(name="banks"), ))
        relevant_offer1 = CreditOfferFactory(rotation_start_time=parse_datetime('2000-01-01T00:00:00'),
                                             rotation_end_time=parse_datetime('2023-01-01T00:00:00'),
                                             min_score=200,
                                             max_score=400,
                                             credit_org=bank1)

        not_relevant_offer1 = CreditOfferFactory(rotation_start_time=parse_datetime('2000-01-01T00:00:00'),
                                                 rotation_end_time=parse_datetime('2023-01-01T00:00:00'),
                                                 min_score=800,
                                                 max_score=999,
                                                 credit_org=bank2)
        credit_form = ClientCreditFormFactory(score=300, partner=self.partner_user)
        offers = credit_form.get_relevant_offers()
        self.assertEqual(len(offers), 1)
        self.assertEqual(relevant_offer1, offers[0])
        form_action_url = reverse('creditforms-relevant-offers', args=[credit_form.id])
        expected_data = CreditOfferReadSerializer(offers, many=True).data
        response = self.client.get(form_action_url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response.data, expected_data)
Ejemplo n.º 7
0
 def test_create_creditform_by_bank(self):
     self.client.force_authenticate(user=self.bank_user)
     new_form = ClientCreditFormFactory(partner=self.partner_user)
     data = ClientCreditFormSerializer(new_form).data
     response = self.client.post(self.url, data)
     self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
Ejemplo n.º 8
0
 def setUp(self):
     super(ClientCreditFormTestCase, self).setUp()
     self.partner_user = OrganizationFactory(groups=(GroupFactory(name='partners'), ))
     self.bank_user = OrganizationFactory(groups=(GroupFactory(name='banks'), ))
     self.credit_form = ClientCreditFormFactory(partner=self.partner_user)