From 2f0dfa60c8498b6c487a384f0b5136a743ddbe79 Mon Sep 17 00:00:00 2001 From: eliott Date: Mon, 20 Jan 2025 11:45:51 +0100 Subject: [PATCH 01/21] Add utility functions for order data validation and ticket tag generation --- cg/meta/orders/utils.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 cg/meta/orders/utils.py diff --git a/cg/meta/orders/utils.py b/cg/meta/orders/utils.py new file mode 100644 index 0000000000..0029e4f9a4 --- /dev/null +++ b/cg/meta/orders/utils.py @@ -0,0 +1,26 @@ +from cg.models.orders.constants import OrderType +from cg.services.orders.constants import ORDER_TYPE_WORKFLOW_MAP +from cg.services.orders.validation.models.case import Case +from cg.services.orders.validation.models.order import Order +from cg.services.orders.validation.models.order_with_cases import OrderWithCases + + +def is_order_containing_existing_data(order: OrderWithCases) -> bool: + """Check if the order contains any existing data""" + + for enumerated_case in order.enumerated_cases: + case: Case = enumerated_case[1] + if case.enumerated_existing_samples: + return True + return False + + +def get_ticket_tags(order: Order, order_type: OrderType) -> list[str]: + """Generate ticket tags based on the order and order type""" + tags: list[str] = [] + tags.append([ORDER_TYPE_WORKFLOW_MAP[order_type]]) + + if is_order_containing_existing_data(order=order): + tags.append("existing-data") + + return tags From 4062b04719bcc4c21e7a1a47349da01fc90e68d8 Mon Sep 17 00:00:00 2001 From: eliott Date: Mon, 20 Jan 2025 11:49:05 +0100 Subject: [PATCH 02/21] Integrate ticket tag generation into TicketHandler --- cg/meta/orders/utils.py | 1 + cg/services/orders/submitter/ticket_handler.py | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/cg/meta/orders/utils.py b/cg/meta/orders/utils.py index 0029e4f9a4..ed3fcd5c04 100644 --- a/cg/meta/orders/utils.py +++ b/cg/meta/orders/utils.py @@ -17,6 +17,7 @@ def is_order_containing_existing_data(order: OrderWithCases) -> bool: def get_ticket_tags(order: Order, order_type: OrderType) -> list[str]: """Generate ticket tags based on the order and order type""" + tags: list[str] = [] tags.append([ORDER_TYPE_WORKFLOW_MAP[order_type]]) diff --git a/cg/services/orders/submitter/ticket_handler.py b/cg/services/orders/submitter/ticket_handler.py index 54ff979156..8cb2bfe2c5 100644 --- a/cg/services/orders/submitter/ticket_handler.py +++ b/cg/services/orders/submitter/ticket_handler.py @@ -5,6 +5,7 @@ from cg.clients.freshdesk.freshdesk_client import FreshdeskClient from cg.clients.freshdesk.models import TicketCreate, TicketResponse +from cg.meta.orders.utils import get_ticket_tags from cg.models.orders.constants import OrderType from cg.services.orders.constants import ORDER_TYPE_WORKFLOW_MAP from cg.services.orders.validation.models.order import Order @@ -37,6 +38,8 @@ def create_ticket( order_type=order_type, ) + tags: list[str] = get_ticket_tags(order=order, order_type=order_type) + with TemporaryDirectory() as temp_dir: attachments: Path = self.create_attachment_file(order=order, temp_dir=temp_dir) @@ -47,7 +50,7 @@ def create_ticket( name=user_name, subject=order.name, type="Order", - tags=[ORDER_TYPE_WORKFLOW_MAP[order_type]], + tags=tags, custom_fields={ "cf_environment": self.env, }, From 71909ceca3126b510ff345160701400d789d9444 Mon Sep 17 00:00:00 2001 From: eliott Date: Mon, 20 Jan 2025 12:03:18 +0100 Subject: [PATCH 03/21] Add unit test for ticket tag generation based on order type --- .../orders/submitter/test_order_submitter.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/services/orders/submitter/test_order_submitter.py b/tests/services/orders/submitter/test_order_submitter.py index 57edb4458c..6ebea01b86 100644 --- a/tests/services/orders/submitter/test_order_submitter.py +++ b/tests/services/orders/submitter/test_order_submitter.py @@ -5,6 +5,7 @@ from cg.clients.freshdesk.models import TicketResponse from cg.exc import TicketCreationError +from cg.meta.orders.utils import get_ticket_tags from cg.models.orders.constants import OrderType from cg.services.orders.constants import ORDER_TYPE_WORKFLOW_MAP from cg.services.orders.storing.constants import MAF_ORDER_ID @@ -180,3 +181,16 @@ def test_submit_ticketexception( order_submitter.submit( raw_order=raw_order, user=user, order_type=mip_dna_order.order_type ) + + +def test_get_ticket_tags(order_fixture: str, order_type: OrderType, request: pytest.FixtureRequest): + """Test that the correct tags are generated based on the order and order type.""" + # GIVEN an order with existing data + order: OrderWithCases = request.getfixturevalue(order_fixture) + order.cases[0].samples[0].existing_sample = True + + # WHEN getting the ticket tags + tags = get_ticket_tags(order=order, order_type=order_type) + + # THEN the tags should be correct + assert tags == [ORDER_TYPE_WORKFLOW_MAP[order_type]] From da49a5c3d4e270bd0b9c0de40c79363cf9358083 Mon Sep 17 00:00:00 2001 From: eliott Date: Mon, 20 Jan 2025 16:10:08 +0100 Subject: [PATCH 04/21] Refactor ticket tag generation and enhance unit tests for accuracy --- cg/meta/orders/utils.py | 2 +- .../orders/submitter/test_order_submitter.py | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/cg/meta/orders/utils.py b/cg/meta/orders/utils.py index ed3fcd5c04..1e47ec7d25 100644 --- a/cg/meta/orders/utils.py +++ b/cg/meta/orders/utils.py @@ -19,7 +19,7 @@ def get_ticket_tags(order: Order, order_type: OrderType) -> list[str]: """Generate ticket tags based on the order and order type""" tags: list[str] = [] - tags.append([ORDER_TYPE_WORKFLOW_MAP[order_type]]) + tags.append(ORDER_TYPE_WORKFLOW_MAP[order_type]) if is_order_containing_existing_data(order=order): tags.append("existing-data") diff --git a/tests/services/orders/submitter/test_order_submitter.py b/tests/services/orders/submitter/test_order_submitter.py index 6ebea01b86..a42292d9d9 100644 --- a/tests/services/orders/submitter/test_order_submitter.py +++ b/tests/services/orders/submitter/test_order_submitter.py @@ -183,14 +183,26 @@ def test_submit_ticketexception( ) -def test_get_ticket_tags(order_fixture: str, order_type: OrderType, request: pytest.FixtureRequest): +@pytest.mark.parametrize( + "order_fixture, order_type, expected_tags", + [ + ("mip_dna_order_with_existing_samples", OrderType.MIP_DNA, ["mip-dna", "existing-data"]), + ("mip_dna_order", OrderType.MIP_DNA, ["mip-dna"]), + ], +) +def test_get_ticket_tags( + request: pytest.FixtureRequest, + order_fixture: str, + order_type: OrderType, + expected_tags: list[str], +): """Test that the correct tags are generated based on the order and order type.""" + # GIVEN an order with existing data order: OrderWithCases = request.getfixturevalue(order_fixture) - order.cases[0].samples[0].existing_sample = True # WHEN getting the ticket tags tags = get_ticket_tags(order=order, order_type=order_type) # THEN the tags should be correct - assert tags == [ORDER_TYPE_WORKFLOW_MAP[order_type]] + assert tags == expected_tags From 5555920c73dcb8e1ca9dd75b21e64d5cafe0eec5 Mon Sep 17 00:00:00 2001 From: eliott Date: Tue, 21 Jan 2025 10:43:40 +0100 Subject: [PATCH 05/21] Rename function and update references in ticket tag generation --- cg/meta/orders/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cg/meta/orders/utils.py b/cg/meta/orders/utils.py index 1e47ec7d25..97542c587c 100644 --- a/cg/meta/orders/utils.py +++ b/cg/meta/orders/utils.py @@ -5,7 +5,7 @@ from cg.services.orders.validation.models.order_with_cases import OrderWithCases -def is_order_containing_existing_data(order: OrderWithCases) -> bool: +def does_order_contain_existing_data(order: OrderWithCases) -> bool: """Check if the order contains any existing data""" for enumerated_case in order.enumerated_cases: @@ -21,7 +21,7 @@ def get_ticket_tags(order: Order, order_type: OrderType) -> list[str]: tags: list[str] = [] tags.append(ORDER_TYPE_WORKFLOW_MAP[order_type]) - if is_order_containing_existing_data(order=order): + if does_order_contain_existing_data(order=order): tags.append("existing-data") return tags From 19efd0fccf58d3089e7dc25826012a69c242f4f8 Mon Sep 17 00:00:00 2001 From: eliott Date: Tue, 21 Jan 2025 10:43:48 +0100 Subject: [PATCH 06/21] Add fixture for MIP DNA order with existing samples --- .../orders_fixtures/order_fixtures.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/fixture_plugins/orders_fixtures/order_fixtures.py b/tests/fixture_plugins/orders_fixtures/order_fixtures.py index 3b290c0aa1..159adee784 100644 --- a/tests/fixture_plugins/orders_fixtures/order_fixtures.py +++ b/tests/fixture_plugins/orders_fixtures/order_fixtures.py @@ -2,6 +2,7 @@ import pytest +from cg.services.orders.validation.models.existing_sample import ExistingSample from cg.services.orders.validation.workflows.balsamic.models.order import BalsamicOrder from cg.services.orders.validation.workflows.fastq.models.order import FastqOrder from cg.services.orders.validation.workflows.fluffy.models.order import FluffyOrder @@ -135,3 +136,14 @@ def tomte_order(tomte_order_to_submit: dict, ticket_id_as_int: int) -> TomteOrde tomte_order = TomteOrder.model_validate(tomte_order_to_submit) tomte_order._generated_ticket_id = ticket_id_as_int return tomte_order + + +@pytest.fixture +def mip_dna_order_with_existing_samples(mip_dna_order_to_submit: dict) -> MipDnaOrder: + """Returns a MIP DNA order containing an existing sample.""" + mip_dna_order_to_submit["user_id"] = 1 + mip_dna_order_with_existing_samples = MipDnaOrder.model_validate(mip_dna_order_to_submit) + mip_dna_order_with_existing_samples.cases[0].samples.append( + ExistingSample(internal_id="ABC123") + ) + return mip_dna_order_with_existing_samples From 0af8611a80757f8fa1b77b7d51a01428b865300c Mon Sep 17 00:00:00 2001 From: eliott Date: Tue, 21 Jan 2025 10:44:40 +0100 Subject: [PATCH 07/21] Update internal_id for existing sample in MIP DNA order fixture --- tests/fixture_plugins/orders_fixtures/order_fixtures.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/fixture_plugins/orders_fixtures/order_fixtures.py b/tests/fixture_plugins/orders_fixtures/order_fixtures.py index 159adee784..c92d1f15a3 100644 --- a/tests/fixture_plugins/orders_fixtures/order_fixtures.py +++ b/tests/fixture_plugins/orders_fixtures/order_fixtures.py @@ -144,6 +144,6 @@ def mip_dna_order_with_existing_samples(mip_dna_order_to_submit: dict) -> MipDna mip_dna_order_to_submit["user_id"] = 1 mip_dna_order_with_existing_samples = MipDnaOrder.model_validate(mip_dna_order_to_submit) mip_dna_order_with_existing_samples.cases[0].samples.append( - ExistingSample(internal_id="ABC123") + ExistingSample(internal_id="ACC1234") ) return mip_dna_order_with_existing_samples From 5fad3d05ab5066357be0e6980484c8622b63ad1c Mon Sep 17 00:00:00 2001 From: eliott Date: Thu, 23 Jan 2025 14:36:04 +0100 Subject: [PATCH 08/21] Rename function for clarity and update ticket tag generation logic to check for existing data in orders --- cg/meta/orders/utils.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cg/meta/orders/utils.py b/cg/meta/orders/utils.py index 97542c587c..bb2e45cd0e 100644 --- a/cg/meta/orders/utils.py +++ b/cg/meta/orders/utils.py @@ -5,7 +5,7 @@ from cg.services.orders.validation.models.order_with_cases import OrderWithCases -def does_order_contain_existing_data(order: OrderWithCases) -> bool: +def contains_existing_data(order: OrderWithCases) -> bool: """Check if the order contains any existing data""" for enumerated_case in order.enumerated_cases: @@ -21,7 +21,8 @@ def get_ticket_tags(order: Order, order_type: OrderType) -> list[str]: tags: list[str] = [] tags.append(ORDER_TYPE_WORKFLOW_MAP[order_type]) - if does_order_contain_existing_data(order=order): - tags.append("existing-data") + if isinstance(order, OrderWithCases): + if contains_existing_data(order=order): + tags.append("existing-data") return tags From c905331942ba4e9e70288db7d6dddf073d5cdbfe Mon Sep 17 00:00:00 2001 From: eliott Date: Wed, 22 Jan 2025 10:33:46 +0100 Subject: [PATCH 09/21] Add functions to check if only existing samples and retrieve ticket status --- cg/meta/orders/utils.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/cg/meta/orders/utils.py b/cg/meta/orders/utils.py index bb2e45cd0e..743f428898 100644 --- a/cg/meta/orders/utils.py +++ b/cg/meta/orders/utils.py @@ -26,3 +26,21 @@ def get_ticket_tags(order: Order, order_type: OrderType) -> list[str]: tags.append("existing-data") return tags + + +def contains_only_existing_samples(order: Order) -> bool: + """Check if the order contains only existing samples""" + + for enumerated_case in order.enumerated_cases: + case: Case = enumerated_case[1] + if case.enumerated_new_samples: + return False + return True + + +def get_ticket_status(order: Order) -> int: + """Get the ticket status based on the order""" + + if contains_only_existing_samples(order=order): + return 2 + return 3 From b5db7a7a02d174957653922d25b85c9f7ac3f808 Mon Sep 17 00:00:00 2001 From: eliott Date: Wed, 22 Jan 2025 10:37:19 +0100 Subject: [PATCH 10/21] Update ticket status constants in get_ticket_status function --- cg/meta/orders/utils.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cg/meta/orders/utils.py b/cg/meta/orders/utils.py index 743f428898..e344dacc51 100644 --- a/cg/meta/orders/utils.py +++ b/cg/meta/orders/utils.py @@ -1,3 +1,4 @@ +from cg.clients.freshdesk.constants import Status from cg.models.orders.constants import OrderType from cg.services.orders.constants import ORDER_TYPE_WORKFLOW_MAP from cg.services.orders.validation.models.case import Case @@ -42,5 +43,5 @@ def get_ticket_status(order: Order) -> int: """Get the ticket status based on the order""" if contains_only_existing_samples(order=order): - return 2 - return 3 + return Status.OPEN + return Status.PENDING From bd6401cb416194acb36019acc5c1128c63539220 Mon Sep 17 00:00:00 2001 From: eliott Date: Wed, 22 Jan 2025 10:37:37 +0100 Subject: [PATCH 11/21] Add fixture for MIP DNA order with only existing samples and test ticket status --- .../orders_fixtures/order_fixtures.py | 10 ++++++++ .../orders/submitter/test_order_submitter.py | 25 ++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/tests/fixture_plugins/orders_fixtures/order_fixtures.py b/tests/fixture_plugins/orders_fixtures/order_fixtures.py index c92d1f15a3..d2c50f727c 100644 --- a/tests/fixture_plugins/orders_fixtures/order_fixtures.py +++ b/tests/fixture_plugins/orders_fixtures/order_fixtures.py @@ -147,3 +147,13 @@ def mip_dna_order_with_existing_samples(mip_dna_order_to_submit: dict) -> MipDna ExistingSample(internal_id="ACC1234") ) return mip_dna_order_with_existing_samples + + +@pytest.fixture +def mip_dna_order_with_only_existing_samples(mip_dna_order_to_submit: dict) -> MipDnaOrder: + """Returns a MIP DNA order containing only existing samples.""" + mip_dna_order_to_submit["user_id"] = 1 + mip_dna_order_with_only_existing_samples = MipDnaOrder.model_validate(mip_dna_order_to_submit) + for case in mip_dna_order_with_only_existing_samples.cases: + case.samples = [ExistingSample(internal_id="ACC1234")] + return mip_dna_order_with_existing_samples diff --git a/tests/services/orders/submitter/test_order_submitter.py b/tests/services/orders/submitter/test_order_submitter.py index a42292d9d9..b5b7437e10 100644 --- a/tests/services/orders/submitter/test_order_submitter.py +++ b/tests/services/orders/submitter/test_order_submitter.py @@ -5,7 +5,7 @@ from cg.clients.freshdesk.models import TicketResponse from cg.exc import TicketCreationError -from cg.meta.orders.utils import get_ticket_tags +from cg.meta.orders.utils import get_ticket_status, get_ticket_tags from cg.models.orders.constants import OrderType from cg.services.orders.constants import ORDER_TYPE_WORKFLOW_MAP from cg.services.orders.storing.constants import MAF_ORDER_ID @@ -206,3 +206,26 @@ def test_get_ticket_tags( # THEN the tags should be correct assert tags == expected_tags + + +@pytest.mark.parametrize( + "order_fixture, expected_status", + [ + ("mip_dna_order", 3), + ("mip_dna_order_with_existing_samples", 3), + ("mip_dna_order_with_only_existing_samples", 2), + ], +) +def test_get_ticket_status( + request: pytest.FixtureRequest, order_fixture: str, expected_status: int +): + """Test that the correct ticket status is returned based on the order samples.""" + + # GIVEN an order + order: Order = request.getfixturevalue(order_fixture) + + # WHEN getting the ticket status + status = get_ticket_status(order=order) + + # THEN the status should be correct + assert status == expected_status From dbd8bf1c34a2eb361f087fb2762ce06bf40c45b6 Mon Sep 17 00:00:00 2001 From: eliott Date: Wed, 22 Jan 2025 10:37:54 +0100 Subject: [PATCH 12/21] Add ticket status retrieval in TicketHandler for ticket creation --- cg/services/orders/submitter/ticket_handler.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cg/services/orders/submitter/ticket_handler.py b/cg/services/orders/submitter/ticket_handler.py index 8cb2bfe2c5..012e9442ff 100644 --- a/cg/services/orders/submitter/ticket_handler.py +++ b/cg/services/orders/submitter/ticket_handler.py @@ -5,7 +5,7 @@ from cg.clients.freshdesk.freshdesk_client import FreshdeskClient from cg.clients.freshdesk.models import TicketCreate, TicketResponse -from cg.meta.orders.utils import get_ticket_tags +from cg.meta.orders.utils import get_ticket_status, get_ticket_tags from cg.models.orders.constants import OrderType from cg.services.orders.constants import ORDER_TYPE_WORKFLOW_MAP from cg.services.orders.validation.models.order import Order @@ -39,6 +39,7 @@ def create_ticket( ) tags: list[str] = get_ticket_tags(order=order, order_type=order_type) + status: int = get_ticket_status(order=order) with TemporaryDirectory() as temp_dir: attachments: Path = self.create_attachment_file(order=order, temp_dir=temp_dir) @@ -55,6 +56,7 @@ def create_ticket( "cf_environment": self.env, }, attachments=[], + status=status, ) ticket_response: TicketResponse = self.client.create_ticket( ticket=freshdesk_ticket, attachments=[attachments] From 93b544864b07afb430c66b635ef26642f6ee2250 Mon Sep 17 00:00:00 2001 From: eliott Date: Wed, 22 Jan 2025 10:50:15 +0100 Subject: [PATCH 13/21] Refactor contains_only_existing_samples to accept OrderWithCases and update get_ticket_status logic --- cg/meta/orders/utils.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cg/meta/orders/utils.py b/cg/meta/orders/utils.py index e344dacc51..66ffd36c3e 100644 --- a/cg/meta/orders/utils.py +++ b/cg/meta/orders/utils.py @@ -29,7 +29,7 @@ def get_ticket_tags(order: Order, order_type: OrderType) -> list[str]: return tags -def contains_only_existing_samples(order: Order) -> bool: +def contains_only_existing_samples(order: OrderWithCases) -> bool: """Check if the order contains only existing samples""" for enumerated_case in order.enumerated_cases: @@ -41,7 +41,7 @@ def contains_only_existing_samples(order: Order) -> bool: def get_ticket_status(order: Order) -> int: """Get the ticket status based on the order""" - - if contains_only_existing_samples(order=order): - return Status.OPEN + if isinstance(order, OrderWithCases): + if contains_only_existing_samples(order=order): + return Status.OPEN return Status.PENDING From 9770d13daaae6c63d0838166bcd1f56a85972830 Mon Sep 17 00:00:00 2001 From: eliott Date: Wed, 22 Jan 2025 10:50:30 +0100 Subject: [PATCH 14/21] Fix return value in mip_dna_order_with_only_existing_samples function to return correct variable --- tests/fixture_plugins/orders_fixtures/order_fixtures.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/fixture_plugins/orders_fixtures/order_fixtures.py b/tests/fixture_plugins/orders_fixtures/order_fixtures.py index d2c50f727c..95b98fa843 100644 --- a/tests/fixture_plugins/orders_fixtures/order_fixtures.py +++ b/tests/fixture_plugins/orders_fixtures/order_fixtures.py @@ -156,4 +156,4 @@ def mip_dna_order_with_only_existing_samples(mip_dna_order_to_submit: dict) -> M mip_dna_order_with_only_existing_samples = MipDnaOrder.model_validate(mip_dna_order_to_submit) for case in mip_dna_order_with_only_existing_samples.cases: case.samples = [ExistingSample(internal_id="ACC1234")] - return mip_dna_order_with_existing_samples + return mip_dna_order_with_only_existing_samples From 7efea83043dcce71c1c31bc3aaa6f1251e6c1c56 Mon Sep 17 00:00:00 2001 From: EliottBo <112384714+eliottBo@users.noreply.github.com> Date: Fri, 24 Jan 2025 08:40:47 +0100 Subject: [PATCH 15/21] Update cg/meta/orders/utils.py Co-authored-by: Vincent Janvid <69356202+Vince-janv@users.noreply.github.com> --- cg/meta/orders/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cg/meta/orders/utils.py b/cg/meta/orders/utils.py index 66ffd36c3e..2573376e2b 100644 --- a/cg/meta/orders/utils.py +++ b/cg/meta/orders/utils.py @@ -39,7 +39,7 @@ def contains_only_existing_samples(order: OrderWithCases) -> bool: return True -def get_ticket_status(order: Order) -> int: +def get_ticket_status(order: Order) -> Status: """Get the ticket status based on the order""" if isinstance(order, OrderWithCases): if contains_only_existing_samples(order=order): From 384ea305de2dffe5b256a48068155ef2ba3886ad Mon Sep 17 00:00:00 2001 From: EliottBo <112384714+eliottBo@users.noreply.github.com> Date: Fri, 24 Jan 2025 08:41:09 +0100 Subject: [PATCH 16/21] Update tests/services/orders/submitter/test_order_submitter.py Co-authored-by: Vincent Janvid <69356202+Vince-janv@users.noreply.github.com> --- tests/services/orders/submitter/test_order_submitter.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/services/orders/submitter/test_order_submitter.py b/tests/services/orders/submitter/test_order_submitter.py index b5b7437e10..5f64c002ee 100644 --- a/tests/services/orders/submitter/test_order_submitter.py +++ b/tests/services/orders/submitter/test_order_submitter.py @@ -211,9 +211,9 @@ def test_get_ticket_tags( @pytest.mark.parametrize( "order_fixture, expected_status", [ - ("mip_dna_order", 3), - ("mip_dna_order_with_existing_samples", 3), - ("mip_dna_order_with_only_existing_samples", 2), + ("mip_dna_order", Status.PENDING), + ("mip_dna_order_with_existing_samples", Status.PENDING), + ("mip_dna_order_with_only_existing_samples", Status.OPEN), ], ) def test_get_ticket_status( From a3836a0ec884b91fef337f5edb86c410860565e4 Mon Sep 17 00:00:00 2001 From: EliottBo <112384714+eliottBo@users.noreply.github.com> Date: Fri, 24 Jan 2025 08:41:57 +0100 Subject: [PATCH 17/21] Remove space cg/meta/orders/utils.py Co-authored-by: Vincent Janvid <69356202+Vince-janv@users.noreply.github.com> --- cg/meta/orders/utils.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cg/meta/orders/utils.py b/cg/meta/orders/utils.py index 2573376e2b..16c521c1e4 100644 --- a/cg/meta/orders/utils.py +++ b/cg/meta/orders/utils.py @@ -31,7 +31,6 @@ def get_ticket_tags(order: Order, order_type: OrderType) -> list[str]: def contains_only_existing_samples(order: OrderWithCases) -> bool: """Check if the order contains only existing samples""" - for enumerated_case in order.enumerated_cases: case: Case = enumerated_case[1] if case.enumerated_new_samples: From 0965558b58bbeffdd9eb09929b086090e0907c1e Mon Sep 17 00:00:00 2001 From: eliott Date: Fri, 24 Jan 2025 09:30:05 +0100 Subject: [PATCH 18/21] Add import for Status constant in test_order_submitter.py --- tests/services/orders/submitter/test_order_submitter.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/services/orders/submitter/test_order_submitter.py b/tests/services/orders/submitter/test_order_submitter.py index 5f64c002ee..3ff426d69d 100644 --- a/tests/services/orders/submitter/test_order_submitter.py +++ b/tests/services/orders/submitter/test_order_submitter.py @@ -3,6 +3,7 @@ import pytest +from cg.clients.freshdesk.constants import Status from cg.clients.freshdesk.models import TicketResponse from cg.exc import TicketCreationError from cg.meta.orders.utils import get_ticket_status, get_ticket_tags From 7eca66f839a114b4bae113faa4ff034cf04c38fd Mon Sep 17 00:00:00 2001 From: EliottBo <112384714+eliottBo@users.noreply.github.com> Date: Wed, 29 Jan 2025 13:14:19 +0100 Subject: [PATCH 19/21] Update cg/meta/orders/utils.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Isak Ohlsson Ã…ngnell <40887124+islean@users.noreply.github.com> --- cg/meta/orders/utils.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/cg/meta/orders/utils.py b/cg/meta/orders/utils.py index 16c521c1e4..b4b9b9e7f5 100644 --- a/cg/meta/orders/utils.py +++ b/cg/meta/orders/utils.py @@ -31,10 +31,8 @@ def get_ticket_tags(order: Order, order_type: OrderType) -> list[str]: def contains_only_existing_samples(order: OrderWithCases) -> bool: """Check if the order contains only existing samples""" - for enumerated_case in order.enumerated_cases: - case: Case = enumerated_case[1] - if case.enumerated_new_samples: - return False + if order.enumerated_new_samples: + return False return True From c08b4ba574ecfb864056057db701e3f7f0f4782d Mon Sep 17 00:00:00 2001 From: eliott Date: Wed, 29 Jan 2025 16:15:01 +0100 Subject: [PATCH 20/21] Fix indentation in contains_only_existing_samples function in utils.py --- cg/meta/orders/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cg/meta/orders/utils.py b/cg/meta/orders/utils.py index b4b9b9e7f5..45d8f34e5c 100644 --- a/cg/meta/orders/utils.py +++ b/cg/meta/orders/utils.py @@ -32,7 +32,7 @@ def get_ticket_tags(order: Order, order_type: OrderType) -> list[str]: def contains_only_existing_samples(order: OrderWithCases) -> bool: """Check if the order contains only existing samples""" if order.enumerated_new_samples: - return False + return False return True From b35dfcf9f78757b9a58bd23130bb69006ead3ac8 Mon Sep 17 00:00:00 2001 From: eliott Date: Tue, 4 Feb 2025 09:29:08 +0100 Subject: [PATCH 21/21] Black formatting --- cg/meta/orders/utils.py | 4 ++-- tests/fixture_plugins/orders_fixtures/order_fixtures.py | 1 - tests/services/orders/submitter/test_order_submitter.py | 1 - 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/cg/meta/orders/utils.py b/cg/meta/orders/utils.py index c5b619bd3b..57265103f0 100644 --- a/cg/meta/orders/utils.py +++ b/cg/meta/orders/utils.py @@ -30,7 +30,7 @@ def get_ticket_tags(order: Order, order_type: OrderType) -> list[str]: def contains_only_existing_samples(order: OrderWithCases) -> bool: """Check if the order contains only existing samples""" - + if order.enumerated_new_samples: return False return True @@ -38,7 +38,7 @@ def contains_only_existing_samples(order: OrderWithCases) -> bool: def get_ticket_status(order: Order) -> Status: """Get the ticket status based on the order""" - + if isinstance(order, OrderWithCases): if contains_only_existing_samples(order=order): return Status.OPEN diff --git a/tests/fixture_plugins/orders_fixtures/order_fixtures.py b/tests/fixture_plugins/orders_fixtures/order_fixtures.py index b13b7fd8b1..95b98fa843 100644 --- a/tests/fixture_plugins/orders_fixtures/order_fixtures.py +++ b/tests/fixture_plugins/orders_fixtures/order_fixtures.py @@ -157,4 +157,3 @@ def mip_dna_order_with_only_existing_samples(mip_dna_order_to_submit: dict) -> M for case in mip_dna_order_with_only_existing_samples.cases: case.samples = [ExistingSample(internal_id="ACC1234")] return mip_dna_order_with_only_existing_samples - diff --git a/tests/services/orders/submitter/test_order_submitter.py b/tests/services/orders/submitter/test_order_submitter.py index 6fb7110efd..3ff426d69d 100644 --- a/tests/services/orders/submitter/test_order_submitter.py +++ b/tests/services/orders/submitter/test_order_submitter.py @@ -230,4 +230,3 @@ def test_get_ticket_status( # THEN the status should be correct assert status == expected_status -