Skip to content

Commit

Permalink
Add test
Browse files Browse the repository at this point in the history
  • Loading branch information
seallard committed Jul 29, 2024
1 parent ace5361 commit 703346f
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
validate_ticket_number_required_if_connected,
)
from cg.services.order_validation_service.workflows.tomte.validation.inter_field.rules import (
validate_unique_sample_names_in_cases,
validate_wells_contain_at_most_one_sample,
)

Expand All @@ -17,4 +18,7 @@
validate_customer_can_skip_reception_control,
]

TOMTE_CASE_SAMPLE_RULES = [validate_wells_contain_at_most_one_sample]
TOMTE_CASE_SAMPLE_RULES = [
validate_unique_sample_names_in_cases,
validate_wells_contain_at_most_one_sample,
]
15 changes: 15 additions & 0 deletions tests/services/order_validation_service/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,3 +71,18 @@ def valid_order(valid_case: TomteCase) -> TomteOrder:
@pytest.fixture
def order_with_samples_in_same_well(case_with_samples_in_same_well: TomteCase) -> TomteOrder:
return create_order([case_with_samples_in_same_well])


@pytest.fixture
def case_with_samples_with_duplicate_names() -> TomteCase:
sample_1: TomteSample = create_sample(1)
sample_2: TomteSample = create_sample(1)
sample_1.name = sample_2.name
return create_case([sample_1, sample_2])


@pytest.fixture
def order_with_duplicate_sample_names(
case_with_samples_with_duplicate_names: TomteCase,
) -> TomteOrder:
return create_order([case_with_samples_with_duplicate_names])
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
from cg.services.order_validation_service.models.errors import OccupiedWellError
from cg.services.order_validation_service.models.errors import (
OccupiedWellError,
ReusedSampleNameError,
)
from cg.services.order_validation_service.workflows.tomte.models.order import TomteOrder
from cg.services.order_validation_service.workflows.tomte.validation.inter_field.rules import (
validate_unique_sample_names_in_cases,
validate_wells_contain_at_most_one_sample,
)

Expand Down Expand Up @@ -28,3 +32,16 @@ def test_order_without_multiple_samples_in_well(valid_order: TomteOrder):

# THEN no errors should be returned
assert not errors


def test_duplicate_sample_names_not_allowed(order_with_duplicate_sample_names: TomteOrder):
# Given an order with samples in a case with the same name

# WHEN validating the order
errors = validate_unique_sample_names_in_cases(order_with_duplicate_sample_names)

# THEN errors are returned
assert errors

# THEN the errors are about the sample names
assert isinstance(errors[0], ReusedSampleNameError)

0 comments on commit 703346f

Please sign in to comment.