Example #1
0
    def test_non_required_field_blank(self):
        non_required_field_blank = self.base_request_data
        non_required_field_blank['house'] = {}
        non_required_field_blank['vehicle'] = {}

        valid, error_message = request_validator(non_required_field_blank)
        self.assertTrue(valid)
        self.assertFalse(error_message)
Example #2
0
    def test_missing_non_required_field(self):
        missing_non_required_field = self.base_request_data
        missing_non_required_field.pop('house')

        valid, error_message = request_validator(missing_non_required_field)
        self.assertFalse(valid)
        self.assertEqual("Invalid Format. Missing: ['house'] fields",
                         error_message)
Example #3
0
    def test_valid_format_invalid_value(self):
        invalid_values = self.base_request_data
        invalid_values['income'] = -10
        invalid_values['risk_questions'] = [2, -1, 0]
        invalid_values['vehicle']['year'] = 1500

        valid, error_message = request_validator(invalid_values)
        self.assertFalse(valid)
        self.assertEqual(
            'Invalid income value/nInvalid risk question value/nInvalid vehicle value/n',
            error_message)
Example #4
0
    def test_missing_multiple_fields(self):
        missing_multiple_fields = self.base_request_data
        missing_multiple_fields.pop('income')
        missing_multiple_fields.pop('vehicle')
        missing_multiple_fields.pop('risk_questions')

        valid, error_message = request_validator(missing_multiple_fields)
        self.assertFalse(valid)
        self.assertEqual(
            "Invalid Format. Missing: ['income', 'risk_questions', 'vehicle'] fields",
            error_message)
Example #5
0
    def post(self, request):
        try:
            request_data = json.loads(request.body)
        except JSONDecodeError:
            response = HttpResponse('Error Decoding Json', status=400)
        else:
            valid_data, error_message = request_validator(request_data)
            if valid_data:
                policy = calculate_policy(request_data)
                response = JsonResponse(policy)
            else:
                message = error_message
                response = HttpResponse(error_message, status=400)

        return response
Example #6
0
    def test_valid_request(self):
        valid, error_message = request_validator(self.base_request_data)

        self.assertTrue(valid)
        self.assertFalse(error_message)