From 0630f1744ba985bf2280cc4ae1d19955c8df948f Mon Sep 17 00:00:00 2001 From: GianlucaBresolin <117901582+GianlucaBresolin@users.noreply.github.com> Date: Tue, 12 Mar 2024 18:24:49 +0100 Subject: [PATCH] Aggiunta test Controller. --- .../_in/web/embed_documents_controller.py | 2 +- .../port/_in/embed_documents_use_case.py | 2 +- .../service/embed_documents_service.py | 2 +- .../_in/web/ask_chatbot_controller_test.py | 7 +++--- .../change_configuration_controller_test.py | 23 +++++++++++++++++++ .../web/conceal_documents_controller_test.py | 19 +++++++++++++++ .../_in/web/delete_chats_controller_test.py | 19 +++++++++++++++ .../web/delete_documets_controller_test.py | 19 +++++++++++++++ .../web/embed_documents_controller_test.py | 19 +++++++++++++++ .../web/enable_documents_controller_test.py | 19 +++++++++++++++ .../web/get_chat_messages_controller_test.py | 20 ++++++++++++++++ .../presentation_domain/new_document_test.py | 0 12 files changed, 144 insertions(+), 7 deletions(-) rename 3 - PB/MVP/tests/backend/{domain => }/adapter/_in/web/ask_chatbot_controller_test.py (95%) create mode 100644 3 - PB/MVP/tests/backend/adapter/_in/web/change_configuration_controller_test.py create mode 100644 3 - PB/MVP/tests/backend/adapter/_in/web/conceal_documents_controller_test.py create mode 100644 3 - PB/MVP/tests/backend/adapter/_in/web/delete_chats_controller_test.py create mode 100644 3 - PB/MVP/tests/backend/adapter/_in/web/delete_documets_controller_test.py create mode 100644 3 - PB/MVP/tests/backend/adapter/_in/web/embed_documents_controller_test.py create mode 100644 3 - PB/MVP/tests/backend/adapter/_in/web/enable_documents_controller_test.py create mode 100644 3 - PB/MVP/tests/backend/adapter/_in/web/get_chat_messages_controller_test.py rename 3 - PB/MVP/tests/backend/{domain => }/adapter/_in/web/presentation_domain/new_document_test.py (100%) diff --git a/3 - PB/MVP/src/backend/adapter/_in/web/embed_documents_controller.py b/3 - PB/MVP/src/backend/adapter/_in/web/embed_documents_controller.py index 54a417b3..33cdf0f0 100644 --- a/3 - PB/MVP/src/backend/adapter/_in/web/embed_documents_controller.py +++ b/3 - PB/MVP/src/backend/adapter/_in/web/embed_documents_controller.py @@ -21,4 +21,4 @@ def embedDocuments(self, documentsIds: List[str]) -> List[DocumentOperationRespo Returns: List[DocumentOperationResponse]: the response of the operation. """ - return self.useCase.embedDocuemnts([DocumentId(documentId) for documentId in documentsIds]) \ No newline at end of file + return self.useCase.embedDocuments([DocumentId(documentId) for documentId in documentsIds]) \ No newline at end of file diff --git a/3 - PB/MVP/src/backend/application/port/_in/embed_documents_use_case.py b/3 - PB/MVP/src/backend/application/port/_in/embed_documents_use_case.py index 8c878858..a885762e 100644 --- a/3 - PB/MVP/src/backend/application/port/_in/embed_documents_use_case.py +++ b/3 - PB/MVP/src/backend/application/port/_in/embed_documents_use_case.py @@ -3,5 +3,5 @@ from domain.document.document_operation_response import DocumentOperationResponse class EmbedDocumentsUseCase: - def embedDocuemnts(self, documentsIds: List[DocumentId]) -> List[DocumentOperationResponse]: + def embedDocuments(self, documentsIds: List[DocumentId]) -> List[DocumentOperationResponse]: pass \ No newline at end of file diff --git a/3 - PB/MVP/src/backend/application/service/embed_documents_service.py b/3 - PB/MVP/src/backend/application/service/embed_documents_service.py index dce4a84c..33e8cde4 100644 --- a/3 - PB/MVP/src/backend/application/service/embed_documents_service.py +++ b/3 - PB/MVP/src/backend/application/service/embed_documents_service.py @@ -14,7 +14,7 @@ def __init__(self, getDocumentsContent: GetDocumentsContent, embeddingsUploader: self.embeddingsUploader = embeddingsUploader self.getDocumentStatus = getDocumentStatus - def embedDocuemnts(self, documentsIds: List[DocumentId]) -> List[DocumentOperationResponse]: + def embedDocuments(self, documentsIds: List[DocumentId]) -> List[DocumentOperationResponse]: verifiedDocumentsIds =[] verifiedDocumentsStatus = [] for documentId, documentStatus in zip(documentsIds, self.getDocumentStatus.getDocumentsStatus(documentsIds)): diff --git a/3 - PB/MVP/tests/backend/domain/adapter/_in/web/ask_chatbot_controller_test.py b/3 - PB/MVP/tests/backend/adapter/_in/web/ask_chatbot_controller_test.py similarity index 95% rename from 3 - PB/MVP/tests/backend/domain/adapter/_in/web/ask_chatbot_controller_test.py rename to 3 - PB/MVP/tests/backend/adapter/_in/web/ask_chatbot_controller_test.py index e12cb437..f1047491 100644 --- a/3 - PB/MVP/tests/backend/domain/adapter/_in/web/ask_chatbot_controller_test.py +++ b/3 - PB/MVP/tests/backend/adapter/_in/web/ask_chatbot_controller_test.py @@ -14,8 +14,7 @@ def test_askChatbot_with_existent_chat(mocker): askChatbotController = AskChatbotController(useCaseMock) with unittest.mock.patch('adapter._in.web.ask_chatbot_controller.ChatId') as MockChatId, \ - unittest.mock.patch('adapter._in.web.ask_chatbot_controller.Message') as MockMessage: - + unittest.mock.patch('adapter._in.web.ask_chatbot_controller.Message') as MockMessage: MockChatId.return_value = ChatId(1) MockMessage.return_value = Message("response", unittest.mock.ANY, None, MessageSender.CHATBOT) @@ -28,8 +27,8 @@ def test_askChatbot_with_existent_chat(mocker): None, MessageSender.USER ) - - assert isinstance(response, MessageResponse) + + assert isinstance(response, MessageResponse) def test_askChatbot_without_chat(mocker): useCaseMock = mocker.Mock() diff --git a/3 - PB/MVP/tests/backend/adapter/_in/web/change_configuration_controller_test.py b/3 - PB/MVP/tests/backend/adapter/_in/web/change_configuration_controller_test.py new file mode 100644 index 00000000..bddc57ac --- /dev/null +++ b/3 - PB/MVP/tests/backend/adapter/_in/web/change_configuration_controller_test.py @@ -0,0 +1,23 @@ +from adapter._in.web.change_configuration_controller import ChangeConfigurationController + +from domain.configuration.configuration_operation_response import ConfigurationOperationResponse + +def test_changeLLMModel_with_existent_model(mocker): + useCaseMock = mocker.Mock() + useCaseMock.changeLLMModel.return_value = ConfigurationOperationResponse(True, "Model changed successfully") + + changeConfigurationController = ChangeConfigurationController(useCaseMock) + + response = changeConfigurationController.changeLLMModel("OPENAI") + + assert isinstance(response, ConfigurationOperationResponse) + +def test_changeLLMModel_with_absent_model(mocker): + useCaseMock = mocker.Mock() + useCaseMock.changeLLMModel.return_value = ConfigurationOperationResponse(True, "Model changed successfully") + + changeConfigurationController = ChangeConfigurationController(useCaseMock) + + response = changeConfigurationController.changeLLMModel("NONEXISTENT_MODEL") + + assert response is None \ No newline at end of file diff --git a/3 - PB/MVP/tests/backend/adapter/_in/web/conceal_documents_controller_test.py b/3 - PB/MVP/tests/backend/adapter/_in/web/conceal_documents_controller_test.py new file mode 100644 index 00000000..bc889019 --- /dev/null +++ b/3 - PB/MVP/tests/backend/adapter/_in/web/conceal_documents_controller_test.py @@ -0,0 +1,19 @@ +import unittest +from adapter._in.web.conceal_documents_controller import ConcealDocumentsController +from domain.document.document_operation_response import DocumentOperationResponse +from domain.document.document_id import DocumentId + +def test_concealDocuments(mocker): + useCaseMock = mocker.Mock() + useCaseMock.concealDocuments.return_value = [DocumentOperationResponse(DocumentId("Prova.pdf"), True, "Document concealed successfully")] + + with unittest.mock.patch("adapter._in.web.conceal_documents_controller.DocumentId") as MockDocumentId: + MockDocumentId.return_value = DocumentId("Prova.pdf") + + concealDocumentsController = ConcealDocumentsController(useCaseMock) + + response = concealDocumentsController.concealDocuments(["Prova.pdf"]) + + MockDocumentId.assert_called_once_with("Prova.pdf") + + assert isinstance(response[0], DocumentOperationResponse) \ No newline at end of file diff --git a/3 - PB/MVP/tests/backend/adapter/_in/web/delete_chats_controller_test.py b/3 - PB/MVP/tests/backend/adapter/_in/web/delete_chats_controller_test.py new file mode 100644 index 00000000..9ce693e3 --- /dev/null +++ b/3 - PB/MVP/tests/backend/adapter/_in/web/delete_chats_controller_test.py @@ -0,0 +1,19 @@ +import unittest +from adapter._in.web.delete_chats_controller import DeleteChatsController +from domain.chat.chat_operation_response import ChatOperationResponse +from domain.chat.chat_id import ChatId + +def test_deleteChats(mocker): + useCaseMock = mocker.Mock() + useCaseMock.deleteChats.return_value = [ChatOperationResponse(True, "Chat deleted successfully", ChatId(1))] + + with unittest.mock.patch("adapter._in.web.delete_chats_controller.ChatId") as MockChatId: + MockChatId.return_value = ChatId(1) + + deleteChatsController = DeleteChatsController(useCaseMock) + + response = deleteChatsController.deleteChats([1]) + + MockChatId.assert_called_once_with(1) + + assert isinstance(response[0], ChatOperationResponse) \ No newline at end of file diff --git a/3 - PB/MVP/tests/backend/adapter/_in/web/delete_documets_controller_test.py b/3 - PB/MVP/tests/backend/adapter/_in/web/delete_documets_controller_test.py new file mode 100644 index 00000000..6c7f8e56 --- /dev/null +++ b/3 - PB/MVP/tests/backend/adapter/_in/web/delete_documets_controller_test.py @@ -0,0 +1,19 @@ +import unittest +from adapter._in.web.delete_documents_controller import DeleteDocumentsController +from domain.document.document_operation_response import DocumentOperationResponse +from domain.document.document_id import DocumentId + +def test_deleteDocuments(mocker): + useCaseMock = mocker.Mock() + useCaseMock.deleteDocuments.return_value = [DocumentOperationResponse(DocumentId("Prova.pdf"), True, "Document deleted successfully")] + + with unittest.mock.patch("adapter._in.web.delete_documents_controller.DocumentId") as MockDocumentId: + MockDocumentId.return_value = DocumentId("Prova.pdf") + + deleteDocumentsController = DeleteDocumentsController(useCaseMock) + + response = deleteDocumentsController.deleteDocuments(["Prova.pdf"]) + + MockDocumentId.assert_called_once_with("Prova.pdf") + + assert isinstance(response[0], DocumentOperationResponse) \ No newline at end of file diff --git a/3 - PB/MVP/tests/backend/adapter/_in/web/embed_documents_controller_test.py b/3 - PB/MVP/tests/backend/adapter/_in/web/embed_documents_controller_test.py new file mode 100644 index 00000000..6318709c --- /dev/null +++ b/3 - PB/MVP/tests/backend/adapter/_in/web/embed_documents_controller_test.py @@ -0,0 +1,19 @@ +import unittest +from adapter._in.web.embed_documents_controller import EmbedDocumentsController +from domain.document.document_operation_response import DocumentOperationResponse +from domain.document.document_id import DocumentId + +def test_embedDocuments(mocker): + useCaseMock = mocker.Mock() + useCaseMock.embedDocuments.return_value = [DocumentOperationResponse(DocumentId("Prova.pdf"), True, "Document embedded successfully")] + + with unittest.mock.patch("adapter._in.web.embed_documents_controller.DocumentId") as MockDocumentId: + MockDocumentId.return_value = DocumentId("Prova.pdf") + + embedDocumentsController = EmbedDocumentsController(useCaseMock) + + response = embedDocumentsController.embedDocuments(["Prova.pdf"]) + + MockDocumentId.assert_called_once_with("Prova.pdf") + + assert isinstance(response[0], DocumentOperationResponse) \ No newline at end of file diff --git a/3 - PB/MVP/tests/backend/adapter/_in/web/enable_documents_controller_test.py b/3 - PB/MVP/tests/backend/adapter/_in/web/enable_documents_controller_test.py new file mode 100644 index 00000000..77cc1224 --- /dev/null +++ b/3 - PB/MVP/tests/backend/adapter/_in/web/enable_documents_controller_test.py @@ -0,0 +1,19 @@ +import unittest +from adapter._in.web.enable_documents_controller import EnableDocumentsController +from domain.document.document_operation_response import DocumentOperationResponse +from domain.document.document_id import DocumentId + +def test_enableDocuments(mocker): + useCaseMock = mocker.Mock() + useCaseMock.enableDocuments.return_value = [DocumentOperationResponse(DocumentId("Prova.pdf"), True, "Document enabled successfully")] + + with unittest.mock.patch("adapter._in.web.enable_documents_controller.DocumentId") as MockDocumentId: + MockDocumentId.return_value = DocumentId("Prova.pdf") + + enableDocumentsController = EnableDocumentsController(useCaseMock) + + response = enableDocumentsController.enableDocuments(["Prova.pdf"]) + + MockDocumentId.assert_called_once_with("Prova.pdf") + + assert isinstance(response[0], DocumentOperationResponse) \ No newline at end of file diff --git a/3 - PB/MVP/tests/backend/adapter/_in/web/get_chat_messages_controller_test.py b/3 - PB/MVP/tests/backend/adapter/_in/web/get_chat_messages_controller_test.py new file mode 100644 index 00000000..96a69913 --- /dev/null +++ b/3 - PB/MVP/tests/backend/adapter/_in/web/get_chat_messages_controller_test.py @@ -0,0 +1,20 @@ +import unittest +from adapter._in.web.get_chat_messages_controller import GetChatMessagesController +from domain.chat.chat import Chat +from domain.chat.chat_id import ChatId +from domain.chat.message import Message, MessageSender + +def test_getChatMessages(mocker): + useCaseMock = mocker.Mock() + useCaseMock.getChatMessages.return_value = Chat("Prova", ChatId(1), [Message("message", unittest.mock.ANY, None, MessageSender.USER)]) + + with unittest.mock.patch("adapter._in.web.get_chat_messages_controller.ChatId") as MockChatId: + MockChatId.return_value = 1 + + getChatMessagesController = GetChatMessagesController(useCaseMock) + + response = getChatMessagesController.getChatMessages(1) + + MockChatId.assert_called_once_with(1) + + assert isinstance(response, Chat) \ No newline at end of file diff --git a/3 - PB/MVP/tests/backend/domain/adapter/_in/web/presentation_domain/new_document_test.py b/3 - PB/MVP/tests/backend/adapter/_in/web/presentation_domain/new_document_test.py similarity index 100% rename from 3 - PB/MVP/tests/backend/domain/adapter/_in/web/presentation_domain/new_document_test.py rename to 3 - PB/MVP/tests/backend/adapter/_in/web/presentation_domain/new_document_test.py