Skip to content
This repository has been archived by the owner on Apr 3, 2023. It is now read-only.

Commit

Permalink
feat: add ValidationError
Browse files Browse the repository at this point in the history
  • Loading branch information
HamidMolareza committed Mar 31, 2023
1 parent 5516040 commit fbf0ed7
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
15 changes: 15 additions & 0 deletions def_result/ResultDetails/Errors/ValidationError.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from typing import Any, Dict, List, Optional

from def_result.ResultDetails.ErrorDetail import ErrorDetail


class ValidationError(ErrorDetail):
""" Represents a validation error."""
def __init__(self, title: Optional[str] = "One or more validation errors occurred",
message: Optional[str] = None,
code: Optional[int] = 400,
errors: Optional[Dict[str, str]] = None,
exception: Optional[Exception] = None,
more_data: Optional[List[Any]] = None):
super().__init__(title=title, message=message, code=code, errors=errors, exception=exception,
more_data=more_data)
25 changes: 25 additions & 0 deletions tests/ResultDetails/Errors/test_ValidationError.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import unittest

from def_result.ResultDetails.Errors.ValidationError import ValidationError
from tests.helpers import assert_error_detail, assert_result_detail


class TestValidationError(unittest.TestCase):
def test_init_without_args(self):
detail = ValidationError()

assert_error_detail(test_class=self, error_detail=detail, title="One or more validation errors occurred",
code=400)

def test_init_with_args(self):
exception = Exception("fake")
detail = ValidationError(title="title", message="message", code=100, more_data=["message"],
errors={"key": "message"}, exception=exception)

assert_error_detail(test_class=self, error_detail=detail, title="title",
code=100, message="message", more_data=["message"],
errors={"key": "message"}, exception=exception)


if __name__ == '__main__':
unittest.main()

0 comments on commit fbf0ed7

Please sign in to comment.