diff --git a/.pylintrc b/.pylintrc index 08482b6..46edb88 100644 --- a/.pylintrc +++ b/.pylintrc @@ -4,4 +4,5 @@ disable= C0114, # missing-module-docstring C0301, # Line too long (line-too-long) W0718, # Catching too general exception Exception (broad-exception-caught) + R0903, # Too few public methods (too-few-public-methods) R0913, # Too many arguments (too-many-arguments) diff --git a/def_result/ResultDetails/Success/CreatedDetail.py b/def_result/ResultDetails/Success/CreatedDetail.py new file mode 100644 index 0000000..46964b5 --- /dev/null +++ b/def_result/ResultDetails/Success/CreatedDetail.py @@ -0,0 +1,12 @@ +from typing import Any, List, Optional + +from def_result.ResultDetails.SuccessDetail import SuccessDetail + + +class CreatedDetail(SuccessDetail): + """ A new resource has been created """ + def __init__(self, title: Optional[str] = "A new resource has been created", + message: Optional[str] = None, + code: Optional[int] = 201, + more_data: Optional[List[Any]] = None): + super().__init__(title=title, message=message, code=code, more_data=more_data) diff --git a/def_result/ResultDetails/Success/NotModifiedDetail.py b/def_result/ResultDetails/Success/NotModifiedDetail.py new file mode 100644 index 0000000..a506093 --- /dev/null +++ b/def_result/ResultDetails/Success/NotModifiedDetail.py @@ -0,0 +1,12 @@ +from typing import Any, List, Optional + +from def_result.ResultDetails.SuccessDetail import SuccessDetail + + +class NotModifiedDetail(SuccessDetail): + """ The resource has not been modified since the last request """ + def __init__(self, title: Optional[str] = "The resource has not been modified since the last request", + message: Optional[str] = None, + code: Optional[int] = 304, + more_data: Optional[List[Any]] = None): + super().__init__(title=title, message=message, code=code, more_data=more_data) diff --git a/def_result/ResultDetails/Success/PartialContentDetail.py b/def_result/ResultDetails/Success/PartialContentDetail.py new file mode 100644 index 0000000..447e4bb --- /dev/null +++ b/def_result/ResultDetails/Success/PartialContentDetail.py @@ -0,0 +1,13 @@ +from typing import Any, List, Optional + +from def_result.ResultDetails.SuccessDetail import SuccessDetail + + +class PartialContentDetail(SuccessDetail): + """ Partial content """ + + def __init__(self, title: Optional[str] = "Partial content", + message: Optional[str] = None, + code: Optional[int] = 206, + more_data: Optional[List[Any]] = None): + super().__init__(title=title, message=message, code=code, more_data=more_data) diff --git a/def_result/ResultDetails/Success/__init__.py b/def_result/ResultDetails/Success/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/ResultDetails/Success/test_CreatedDetail.py b/tests/ResultDetails/Success/test_CreatedDetail.py new file mode 100644 index 0000000..1048bd8 --- /dev/null +++ b/tests/ResultDetails/Success/test_CreatedDetail.py @@ -0,0 +1,21 @@ +import unittest + +from def_result.ResultDetails.Success.CreatedDetail import CreatedDetail +from tests.helpers import assert_result_detail + + +class TestCreatedDetail(unittest.TestCase): + def test_init_without_args(self): + create_detail = CreatedDetail() + + assert_result_detail(test_class=self, result_detail=create_detail, title="A new resource has been created", code=201) + + def test_init_with_args(self): + create_detail = CreatedDetail(title="title", message="message", code=100, more_data=["message"]) + + assert_result_detail(test_class=self, result_detail=create_detail, title="title", message="message", code=100, + more_data=["message"]) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/ResultDetails/Success/test_NotModifiedDetail.py b/tests/ResultDetails/Success/test_NotModifiedDetail.py new file mode 100644 index 0000000..0ad4b17 --- /dev/null +++ b/tests/ResultDetails/Success/test_NotModifiedDetail.py @@ -0,0 +1,22 @@ +import unittest + +from def_result.ResultDetails.Success.NotModifiedDetail import \ + NotModifiedDetail +from tests.helpers import assert_result_detail + + +class TestNotModifiedDetail(unittest.TestCase): + def test_init_without_args(self): + detail = NotModifiedDetail() + + assert_result_detail(test_class=self, result_detail=detail, title="The resource has not been modified since the last request", code=304) + + def test_init_with_args(self): + detail = NotModifiedDetail(title="title", message="message", code=100, more_data=["message"]) + + assert_result_detail(test_class=self, result_detail=detail, title="title", message="message", code=100, + more_data=["message"]) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/ResultDetails/Success/test_PartialContentDetail.py b/tests/ResultDetails/Success/test_PartialContentDetail.py new file mode 100644 index 0000000..36cbf02 --- /dev/null +++ b/tests/ResultDetails/Success/test_PartialContentDetail.py @@ -0,0 +1,22 @@ +import unittest + +from def_result.ResultDetails.Success.PartialContentDetail import \ + PartialContentDetail +from tests.helpers import assert_result_detail + + +class TestPartialContentDetail(unittest.TestCase): + def test_init_without_args(self): + detail = PartialContentDetail() + + assert_result_detail(test_class=self, result_detail=detail, title="Partial content", code=206) + + def test_init_with_args(self): + detail = PartialContentDetail(title="title", message="message", code=100, more_data=["message"]) + + assert_result_detail(test_class=self, result_detail=detail, title="title", message="message", code=100, + more_data=["message"]) + + +if __name__ == '__main__': + unittest.main()