• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Clinical-Genomics / cg / 12294344407

12 Dec 2024 10:19AM UTC coverage: 80.834%. First build
12294344407

Pull #3936

github

web-flow
Merge 82f219ba6 into ab9ded5a4
Pull Request #3936: (Improve order flow) Minimal implementation FASTQSubmission

34 of 52 new or added lines in 11 files covered. (65.38%)

13648 of 16884 relevant lines covered (80.83%)

1.5 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

56.67
/cg/services/order_validation_service/workflows/fastq/validation_service.py
1
from cg.exc import OrderError, OrderFormError
1✔
2
from cg.services.order_validation_service.errors.sample_errors import SampleError
1✔
3
from cg.services.order_validation_service.errors.validation_errors import ValidationErrors
1✔
4
from cg.services.order_validation_service.model_validator.model_validator import ModelValidator
1✔
5
from cg.services.order_validation_service.order_validation_service import OrderValidationService
1✔
6
from cg.services.order_validation_service.response_mapper import create_order_validation_response
1✔
7
from cg.services.order_validation_service.utils import (
1✔
8
    apply_order_validation,
9
    apply_sample_validation,
10
)
11
from cg.services.order_validation_service.workflows.fastq.models.order import FastqOrder
1✔
12
from cg.services.order_validation_service.workflows.fastq.validation_rules import SAMPLE_RULES
1✔
13
from cg.services.order_validation_service.workflows.order_validation_rules import ORDER_RULES
1✔
14
from cg.store.store import Store
1✔
15

16

17
class FastqValidationService(OrderValidationService):
1✔
18

19
    def __init__(self, store: Store):
1✔
20
        self.store = store
1✔
21

22
    def validate(self, raw_order: dict) -> dict:
1✔
NEW
23
        parsed_order, errors = ModelValidator.validate(order=raw_order, model=FastqOrder)
×
NEW
24
        if parsed_order:
×
NEW
25
            errors: ValidationErrors = self._perform_rule_validation(order=parsed_order)
×
26
        return create_order_validation_response(raw_order=raw_order, errors=errors)
×
27

28
    def _perform_rule_validation(self, order: FastqOrder) -> ValidationErrors:
1✔
29

30
        order_errors: list[OrderError] = apply_order_validation(
×
31
            rules=ORDER_RULES,
32
            order=order,
33
            store=self.store,
34
        )
35
        sample_errors: list[SampleError] = apply_sample_validation(
×
36
            rules=SAMPLE_RULES,
37
            order=order,
38
            store=self.store,
39
        )
40

41
        return ValidationErrors(
×
42
            sample_errors=sample_errors,
43
            order_errors=order_errors,
44
        )
45

46
    def parse_and_validate(self, raw_order: dict) -> FastqOrder:
1✔
NEW
47
        parsed_order, errors = ModelValidator.validate(order=raw_order, model=FastqOrder)
×
NEW
48
        if parsed_order:
×
NEW
49
            errors: ValidationErrors = self._perform_rule_validation(order=parsed_order)
×
NEW
50
        if not errors.is_empty:
×
NEW
51
            raise OrderFormError(message="Order form contained errors")
×
NEW
52
        return parsed_order
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc