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

Clinical-Genomics / cg / 12276038756

11 Dec 2024 12:08PM UTC coverage: 84.029%. First build
12276038756

Pull #3936

github

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

33 of 53 new or added lines in 11 files covered. (62.26%)

25391 of 30217 relevant lines covered (84.03%)

0.84 hits per line

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

58.06
/cg/services/order_validation_service/workflows/fastq/validation_service.py
1
from cg.exc import OrderError
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.models.order import Order
1✔
6
from cg.services.order_validation_service.order_validation_service import OrderValidationService
1✔
7
from cg.services.order_validation_service.response_mapper import create_order_validation_response
1✔
8
from cg.services.order_validation_service.utils import (
1✔
9
    apply_order_validation,
10
    apply_sample_validation,
11
)
12
from cg.services.order_validation_service.workflows.fastq.models.order import FastqOrder
1✔
13
from cg.services.order_validation_service.workflows.fastq.validation_rules import SAMPLE_RULES
1✔
14
from cg.services.order_validation_service.workflows.order_validation_rules import ORDER_RULES
1✔
15
from cg.store.store import Store
1✔
16

17

18
class FastqValidationService(OrderValidationService):
1✔
19

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

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

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

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

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

47
    def parse_and_validate(self, raw_order: dict) -> FastqOrder | dict:
1✔
NEW
48
        parsed_order, errors = ModelValidator.validate(order=raw_order, model=FastqOrder)
×
NEW
49
        if parsed_order:
×
NEW
50
            errors: ValidationErrors = self._perform_rule_validation(order=parsed_order)
×
NEW
51
        if not errors.is_empty:
×
NEW
52
            return create_order_validation_response(raw_order=raw_order, errors=errors)
×
NEW
53
        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