Skip to content

Commit

Permalink
Merge pull request #136 from c3g/tox-flake8
Browse files Browse the repository at this point in the history
Add tox and flake8
  • Loading branch information
davidlougheed committed Jun 25, 2020
2 parents 624a3a2 + f71270e commit 13e2318
Show file tree
Hide file tree
Showing 38 changed files with 486 additions and 433 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ install:
- pip install .
script:
- export POSTGRES_USER="postgres" && export POSTGRES_PASSWORD="hj38f3Ntr" && export POSTGRES_PORT=5433
- python3 -m coverage run ./manage.py test
- python3 -m tox
- codecov
- rm -rf chord_metadata_service
- python3 -m coverage run ./manage.py test chord_metadata_service
16 changes: 11 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,22 +131,28 @@ out and tagged from the tagged major/minor release in `master`.

Tests are located in tests directory in an individual app folder.

Run all tests for the whole project:
Run all tests and linting checks for the whole project:

```bash
tox
```

Run all tests for the whole project:

```bash
python manage.py test
```

Run tests for an individual app, e.g.:

```
```bash
python manage.py test chord_metadata_service.phenopackets.tests.test_api
```

Create coverage html report:
Test and create `coverage` HTML report:

```
coverage run manage.py test
```bash
tox
coverage html
```

Expand Down
5 changes: 2 additions & 3 deletions chord_metadata_service/experiments/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
from chord_metadata_service.restapi.models import IndexableMixin
from chord_metadata_service.restapi.description_utils import rec_help
from chord_metadata_service.restapi.validators import ontology_list_validator, key_value_validator
from chord_metadata_service.patients.models import Individual
from chord_metadata_service.phenopackets.models import Biosample
import chord_metadata_service.experiments.descriptions as d

Expand Down Expand Up @@ -53,8 +52,8 @@ class Experiment(models.Model, IndexableMixin):
experiment_type = CharField(max_length=30, help_text=rec_help(d.EXPERIMENT, 'experiment_type'))
experiment_ontology = JSONField(blank=True, default=list, validators=[ontology_list_validator],
help_text=rec_help(d.EXPERIMENT, 'experiment_ontology'))
molecule_ontology = JSONField(blank=True, default=list, validators=[ontology_list_validator],
help_text=rec_help(d.EXPERIMENT, 'molecule_ontology'))
molecule_ontology = JSONField(blank=True, default=list, validators=[ontology_list_validator],
help_text=rec_help(d.EXPERIMENT, 'molecule_ontology'))
molecule = CharField(choices=MOLECULE, max_length=20, blank=True, null=True,
help_text=rec_help(d.EXPERIMENT, 'molecule'))
library_strategy = CharField(choices=LIBRARY_STRATEGY, max_length=25,
Expand Down
22 changes: 11 additions & 11 deletions chord_metadata_service/mcode/admin.py
Original file line number Diff line number Diff line change
@@ -1,52 +1,52 @@
from django.contrib import admin
from .models import *
from . import models as m


@admin.register(GeneticSpecimen)
@admin.register(m.GeneticSpecimen)
class GeneticSpecimenAdmin(admin.ModelAdmin):
pass


@admin.register(CancerGeneticVariant)
@admin.register(m.CancerGeneticVariant)
class CancerGeneticVariantAdmin(admin.ModelAdmin):
pass


@admin.register(GenomicRegionStudied)
@admin.register(m.GenomicRegionStudied)
class GenomicRegionStudiedAdmin(admin.ModelAdmin):
pass


@admin.register(GenomicsReport)
@admin.register(m.GenomicsReport)
class GenomicsReportAdmin(admin.ModelAdmin):
pass


@admin.register(LabsVital)
@admin.register(m.LabsVital)
class LabsVitalAdmin(admin.ModelAdmin):
pass


@admin.register(CancerCondition)
@admin.register(m.CancerCondition)
class CancerConditionAdmin(admin.ModelAdmin):
pass


@admin.register(TNMStaging)
@admin.register(m.TNMStaging)
class TNMStagingAdmin(admin.ModelAdmin):
pass


@admin.register(CancerRelatedProcedure)
@admin.register(m.CancerRelatedProcedure)
class CancerRelatedProcedureAdmin(admin.ModelAdmin):
pass


@admin.register(MedicationStatement)
@admin.register(m.MedicationStatement)
class MedicationStatementAdmin(admin.ModelAdmin):
pass


@admin.register(MCodePacket)
@admin.register(m.MCodePacket)
class MCodePacketAdmin(admin.ModelAdmin):
pass
44 changes: 21 additions & 23 deletions chord_metadata_service/mcode/api_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@
from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import AllowAny
from rest_framework.response import Response
from .serializers import *
from .schemas import MCODE_SCHEMA
from .models import *
from .serializers import *
from . import models as m, serializers as s
from chord_metadata_service.restapi.api_renderers import PhenopacketsRenderer
from chord_metadata_service.restapi.pagination import LargeResultsSetPagination

Expand All @@ -17,53 +15,53 @@ class McodeModelViewSet(viewsets.ModelViewSet):


class GeneticSpecimenViewSet(McodeModelViewSet):
queryset = GeneticSpecimen.objects.all()
serializer_class = GeneticSpecimenSerializer
queryset = m.GeneticSpecimen.objects.all()
serializer_class = s.GeneticSpecimenSerializer


class CancerGeneticVariantViewSet(McodeModelViewSet):
queryset = CancerGeneticVariant.objects.all()
serializer_class = CancerGeneticVariantSerializer
queryset = m.CancerGeneticVariant.objects.all()
serializer_class = s.CancerGeneticVariantSerializer


class GenomicRegionStudiedViewSet(McodeModelViewSet):
queryset = GenomicRegionStudied.objects.all()
serializer_class = GenomicRegionStudiedSerializer
queryset = m.GenomicRegionStudied.objects.all()
serializer_class = s.GenomicRegionStudiedSerializer


class GenomicsReportViewSet(McodeModelViewSet):
queryset = GenomicsReport.objects.all()
serializer_class = GenomicsReportSerializer
queryset = m.GenomicsReport.objects.all()
serializer_class = s.GenomicsReportSerializer


class LabsVitalViewSet(McodeModelViewSet):
queryset = LabsVital.objects.all()
serializer_class = LabsVitalSerializer
queryset = m.LabsVital.objects.all()
serializer_class = s.LabsVitalSerializer


class CancerConditionViewSet(McodeModelViewSet):
queryset = CancerCondition.objects.all()
serializer_class = CancerConditionSerializer
queryset = m.CancerCondition.objects.all()
serializer_class = s.CancerConditionSerializer


class TNMStagingViewSet(McodeModelViewSet):
queryset = TNMStaging.objects.all()
serializer_class = TNMStagingSerializer
queryset = m.TNMStaging.objects.all()
serializer_class = s.TNMStagingSerializer


class CancerRelatedProcedureViewSet(McodeModelViewSet):
queryset = CancerRelatedProcedure.objects.all()
serializer_class = CancerRelatedProcedureSerializer
queryset = m.CancerRelatedProcedure.objects.all()
serializer_class = s.CancerRelatedProcedureSerializer


class MedicationStatementViewSet(McodeModelViewSet):
queryset = MedicationStatement.objects.all()
serializer_class = MedicationStatementSerializer
queryset = m.MedicationStatement.objects.all()
serializer_class = s.MedicationStatementSerializer


class MCodePacketViewSet(McodeModelViewSet):
queryset = MCodePacket.objects.all()
serializer_class = MCodePacketSerializer
queryset = m.MCodePacket.objects.all()
serializer_class = s.MCodePacketSerializer


@api_view(["GET"])
Expand Down
56 changes: 28 additions & 28 deletions chord_metadata_service/mcode/mappings/mappings.py
Original file line number Diff line number Diff line change
@@ -1,77 +1,77 @@
from .mcode_profiles import *
from . import mcode_profiles as mp

MCODE_PROFILES_MAPPING = {
"patient": {
"profile": MCODE_PATIENT,
"profile": mp.MCODE_PATIENT,
"properties_profile": {
"comorbid_condition": MCODE_COMORBID_CONDITION,
"ecog_performance_status": MCODE_ECOG_PERFORMANCE_STATUS,
"karnofsky": MCODE_KARNOFSKY
"comorbid_condition": mp.MCODE_COMORBID_CONDITION,
"ecog_performance_status": mp.MCODE_ECOG_PERFORMANCE_STATUS,
"karnofsky": mp.MCODE_KARNOFSKY
}
},
"genetic_specimen": {
"profile": MCODE_GENETIC_SPECIMEN,
"profile": mp.MCODE_GENETIC_SPECIMEN,
"properties_profile": {
"laterality": MCODE_LATERALITY
"laterality": mp.MCODE_LATERALITY
}
},
"cancer_genetic_variant": {
"profile": MCODE_CANCER_GENETIC_VARIANT
"profile": mp.MCODE_CANCER_GENETIC_VARIANT
},
"genomic_region_studied": {
"profile": MCODE_GENOMIC_REGION_STUDIED
"profile": mp.MCODE_GENOMIC_REGION_STUDIED
},
"genomics_report": {
"profile": MCODE_GENOMICS_REPORT
"profile": mp.MCODE_GENOMICS_REPORT
},
"labs_vital": {
"profile": MCODE_TUMOR_MARKER
"profile": mp.MCODE_TUMOR_MARKER
},
"cancer_condition": {
"profile": {
"primary": MCODE_PRIMARY_CANCER_CONDITION,
"secondary": MCODE_SECONDARY_CANCER_CONDITION
"primary": mp.MCODE_PRIMARY_CANCER_CONDITION,
"secondary": mp.MCODE_SECONDARY_CANCER_CONDITION
},
"properties_profile": {
"histology_morphology_behavior": MCODE_HISTOLOGY_MORPHOLOGY_BEHAVIOR
"histology_morphology_behavior": mp.MCODE_HISTOLOGY_MORPHOLOGY_BEHAVIOR
}
},
"tnm_staging": {
"properties_profile": {
"stage_group": {
"clinical": MCODE_TNM_CLINICAL_STAGE_GROUP,
"pathologic": MCODE_TNM_PATHOLOGIC_STAGE_GROUP
"clinical": mp.MCODE_TNM_CLINICAL_STAGE_GROUP,
"pathologic": mp.MCODE_TNM_PATHOLOGIC_STAGE_GROUP
},
"primary_tumor_category": {
"clinical": MCODE_TNM_CLINICAL_PRIMARY_TUMOR_CATEGORY,
"pathologic": MCODE_TNM_PATHOLOGIC_PRIMARY_TUMOR_CATEGORY
"clinical": mp.MCODE_TNM_CLINICAL_PRIMARY_TUMOR_CATEGORY,
"pathologic": mp.MCODE_TNM_PATHOLOGIC_PRIMARY_TUMOR_CATEGORY
},
"regional_nodes_category": {
"clinical": MCODE_TNM_CLINICAL_REGIONAL_NODES_CATEGORY,
"pathologic": MCODE_TNM_PATHOLOGIC_REGIONAL_NODES_CATEGORY
"clinical": mp.MCODE_TNM_CLINICAL_REGIONAL_NODES_CATEGORY,
"pathologic": mp.MCODE_TNM_PATHOLOGIC_REGIONAL_NODES_CATEGORY
},
"distant_metastases_category": {
"clinical": MCODE_TNM_CLINICAL_DISTANT_METASTASES_CATEGORY,
"pathologic": MCODE_TNM_PATHOLOGIC_DISTANT_METASTASES_CATEGORY
"clinical": mp.MCODE_TNM_CLINICAL_DISTANT_METASTASES_CATEGORY,
"pathologic": mp.MCODE_TNM_PATHOLOGIC_DISTANT_METASTASES_CATEGORY
}
}
},
"cancer_related_procedure": {
"profile": {
"radiation": MCODE_CANCER_RELATED_RADIATION_PROCEDURE,
"surgical": MCODE_CANCER_RELATED_SURGICAL_PROCEDURE
"radiation": mp.MCODE_CANCER_RELATED_RADIATION_PROCEDURE,
"surgical": mp.MCODE_CANCER_RELATED_SURGICAL_PROCEDURE
}
},
"medication_statement": {
"profile": MCODE_MEDICATION_STATEMENT,
"profile": mp.MCODE_MEDICATION_STATEMENT,
"properties_profile": {
"termination_reason": MCODE_TERMINATION_REASON,
"treatment_intent": MCODE_TREATMENT_INTENT
"termination_reason": mp.MCODE_TERMINATION_REASON,
"treatment_intent": mp.MCODE_TREATMENT_INTENT
}
},
"mcodepacket": {
"properties_profile": {
"cancer_disease_status": MCODE_CANCER_DISEASE_STATUS
"cancer_disease_status": mp.MCODE_CANCER_DISEASE_STATUS
}
}
}

0 comments on commit 13e2318

Please sign in to comment.