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

Clinical-Genomics / arnold / 7130299646

07 Dec 2023 03:25PM UTC coverage: 0.0%. Remained the same
7130299646

push

github

web-flow
refactor( refactor arnold add tests) (#52) (patch)

# Added
This PR refactors some parts of arnold and adds test for the crud modules related to the flow cell and sample model

0 of 39 new or added lines in 11 files covered. (0.0%)

5 existing lines in 5 files now uncovered.

0 of 897 relevant lines covered (0.0%)

0.0 hits per line

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

0.0
/arnold/api/api_v1/endpoints/sample.py
1
from arnold.adapter import ArnoldAdapter
×
2
from arnold.crud import create, update
×
NEW
3
from arnold.crud.read.sample import get_sample_by_id, get_samples
×
4
from arnold.crud.read.step import find_sample_fields
×
5
from arnold.models.database import LimsSample
×
6
from typing import List
×
7
from fastapi import APIRouter, Depends, status
×
8
from fastapi.responses import JSONResponse
×
9
import logging
×
10
import arnold.crud.read.sample
×
11
from arnold.settings import get_arnold_adapter
×
12

13
LOG = logging.getLogger(__name__)
×
14

15
router = APIRouter()
×
16

17

18
@router.get("/sample/fields")
×
19
def get_sample_fields(
×
20
    adapter: ArnoldAdapter = Depends(get_arnold_adapter),
21
):
22
    """Get sample fields"""
23
    return find_sample_fields(adapter=adapter)
×
24

25

26
@router.get("/sample/{sample_id}", response_model=LimsSample)
×
27
def get_sample(
×
28
    sample_id: str,
29
    adapter: ArnoldAdapter = Depends(get_arnold_adapter),
30
):
31
    """fetch a sample by sample id"""
NEW
32
    sample: LimsSample = get_sample_by_id(sample_id=sample_id, adapter=adapter)
×
33
    return sample
×
34

35

36
@router.get("/samples/", response_model=List[LimsSample])
×
37
def get_samples(
×
38
    adapter: ArnoldAdapter = Depends(get_arnold_adapter),
39
):
40
    """Get all samples"""
NEW
41
    samples: List[LimsSample] = get_samples(adapter=adapter)
×
42

43
    return samples
×
44

45

46
@router.post("/sample/")
×
47
def create_sample(
×
48
    sample: LimsSample, adapter: ArnoldAdapter = Depends(get_arnold_adapter)
49
) -> JSONResponse:
NEW
50
    if arnold.crud.read.sample.get_sample_by_id(
×
51
        sample_id=sample.sample_id, adapter=adapter
52
    ):
UNCOV
53
        return JSONResponse(
×
54
            status_code=status.HTTP_405_METHOD_NOT_ALLOWED,
55
            content=f"Sample: sample.sample_id is already in database",
56
        )
57
    try:
×
58
        create.create_sample(adapter=adapter, sample=sample)
×
59
    except Exception as e:
×
60
        return JSONResponse(
×
61
            status_code=status.HTTP_405_METHOD_NOT_ALLOWED,
62
            content=f"exception {e} ",
63
        )
64

65
    return JSONResponse(
×
66
        status_code=status.HTTP_200_OK,
67
        content=f"Sample: {sample.sample_id} inserted to database",
68
    )
69

70

71
@router.post("/samples/")
×
72
def create_samples(
×
73
    samples: List[LimsSample], adapter: ArnoldAdapter = Depends(get_arnold_adapter)
74
) -> JSONResponse:
75
    try:
×
76
        create.create_samples(adapter=adapter, samples=samples)
×
77
    except Exception as e:
×
78
        return JSONResponse(
×
79
            status_code=status.HTTP_405_METHOD_NOT_ALLOWED,
80
            content=f"exception {e} ",
81
        )
NEW
82
    return JSONResponse(
×
83
        status_code=status.HTTP_200_OK, content="Samples inserted to db"
84
    )
85

86

87
@router.put("/sample/")
×
88
def update_sample(
×
89
    sample: LimsSample, adapter: ArnoldAdapter = Depends(get_arnold_adapter)
90
) -> JSONResponse:
91
    try:
×
92
        update.update_sample(adapter=adapter, sample=sample)
×
93
    except Exception as e:
×
94
        return JSONResponse(
×
95
            status_code=status.HTTP_405_METHOD_NOT_ALLOWED,
96
            content=f"exception {e} ",
97
        )
98

99
    return JSONResponse(
×
100
        status_code=status.HTTP_200_OK,
101
        content=f"Sample: {sample.sample_id} inserted to database",
102
    )
103

104

105
@router.put("/samples/")
×
106
def update_samples(
×
107
    samples: List[LimsSample], adapter: ArnoldAdapter = Depends(get_arnold_adapter)
108
) -> JSONResponse:
109
    try:
×
110
        update.update_samples(adapter=adapter, samples=samples)
×
111
    except Exception as e:
×
112
        return JSONResponse(
×
113
            status_code=status.HTTP_405_METHOD_NOT_ALLOWED,
114
            content=f"exception {e} ",
115
        )
NEW
116
    return JSONResponse(
×
117
        status_code=status.HTTP_200_OK, content="Samples inserted to db"
118
    )
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

© 2026 Coveralls, Inc