Skip to content

Commit

Permalink
Merge 7bd8edf into da5a3ce
Browse files Browse the repository at this point in the history
  • Loading branch information
holtgrewe committed Sep 8, 2022
2 parents da5a3ce + 7bd8edf commit 98d372a
Show file tree
Hide file tree
Showing 251 changed files with 2,470 additions and 1,553 deletions.
19 changes: 11 additions & 8 deletions .github/workflows/ci.yml
Expand Up @@ -87,14 +87,17 @@ jobs:
with:
parallel: true
flag-name: Unit Test
- name: run Codacy coverage reporter
uses: codacy/codacy-coverage-reporter-action@master
with:
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
coverage-reports: coverage.xml
env:
secrets.CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}
if: "${{ (matrix.python-version == '3.8') && (matrix.postgres-version == '12') && (!!env.CODACY_PROJECT_TOKEN) }}"
- name: Check import order with isort
run: |
rm -rf src
isort --force-sort-within-sections --profile=black --check .
if: ${{ matrix.python-version == '3.8' }}
- name: Check style with black
run: black --check --line-length 100 .
if: ${{ matrix.python-version == '3.8' }}
- name: Run linting
run: flake8
if: ${{ matrix.python-version == '3.8' }}

coveralls_finish:
needs: build
Expand Down
15 changes: 15 additions & 0 deletions Makefile
Expand Up @@ -62,3 +62,18 @@ test: collectstatic
.PHONY: test-noselenium
test-noselenium:
VARFISH_KIOSK_MODE=0 SKIP_SELENIUM=1 coverage run manage.py test -v2 --settings=config.settings.test

.PHONY: lint
lint: flake8

.PHONY: isort
isort:
isort --force-sort-within-sections --profile=black .

.PHONY: flake8
flake8:
flake8

coverage:
coverage report
coverage html
4 changes: 0 additions & 4 deletions README.rst
@@ -1,10 +1,6 @@
.. image:: https://readthedocs.org/projects/varfish-server/badge/?version=latest
:target: https://varfish-server.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://app.codacy.com/project/badge/Grade/f47216cf5a4349acbb9baf5ca1c91329
:target: https://www.codacy.com/gh/bihealth/varfish-server/dashboard?utm_source=github.com&utm_medium=referral&utm_content=bihealth/varfish-server&utm_campaign=Badge_Grade
.. image:: https://app.codacy.com/project/badge/Coverage/f47216cf5a4349acbb9baf5ca1c91329
:target: https://www.codacy.com/gh/bihealth/varfish-server/dashboard?utm_source=github.com&utm_medium=referral&utm_content=bihealth/varfish-server&utm_campaign=Badge_Coverage
.. image:: https://coveralls.io/repos/github/bihealth/varfish-server/badge.svg?branch=main
:target: https://coveralls.io/github/bihealth/varfish-server?branch=main
.. image:: https://img.shields.io/badge/License-MIT-green.svg
Expand Down
2 changes: 1 addition & 1 deletion beaconsite/forms.py
Expand Up @@ -2,7 +2,7 @@
from django.db import transaction
from projectroles.models import Project

from .models import Consortium, Site, ConsortiumMember, ConsortiumAssignment
from .models import Consortium, ConsortiumAssignment, ConsortiumMember, Site


class ConsortiumForm(forms.ModelForm):
Expand Down
5 changes: 3 additions & 2 deletions beaconsite/migrations/0001_initial.py
Expand Up @@ -2,11 +2,12 @@
# Generated by Django 1.11.29 on 2021-03-03 08:23
from __future__ import unicode_literals

import uuid

import cryptographic_fields.fields
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import cryptographic_fields.fields
import uuid


class Migration(migrations.Migration):
Expand Down
2 changes: 1 addition & 1 deletion beaconsite/migrations/0003_auto_20210304_1052.py
Expand Up @@ -2,8 +2,8 @@
# Generated by Django 1.11.29 on 2021-03-04 10:52
from __future__ import unicode_literals

from django.db import migrations
import cryptographic_fields.fields
from django.db import migrations


class Migration(migrations.Migration):
Expand Down
4 changes: 2 additions & 2 deletions beaconsite/models.py
Expand Up @@ -2,12 +2,12 @@
import uuid as uuid_object

from Crypto.PublicKey import RSA
from cryptographic_fields.fields import EncryptedTextField
from django.conf import settings
from django.core.exceptions import ValidationError
from django.db import models
from django.conf import settings
from django.urls import reverse
from projectroles.models import Project
from cryptographic_fields.fields import EncryptedTextField

#: Django user model.
AUTH_USER_MODEL = getattr(settings, "AUTH_USER_MODEL", "auth.User")
Expand Down
1 change: 0 additions & 1 deletion beaconsite/models_api.py
Expand Up @@ -2,7 +2,6 @@

import attr


#: Default assembly ID to assume.
DEFAULT_ASSEMBLY_ID = "GRCh37"
#: Indicated API version.
Expand Down
1 change: 0 additions & 1 deletion beaconsite/plugins.py
@@ -1,4 +1,3 @@
from bgjobs.plugins import BackgroundJobsPluginPoint
from projectroles.plugins import SiteAppPluginPoint

from .urls import urlpatterns
Expand Down
2 changes: 0 additions & 2 deletions beaconsite/rules.py
@@ -1,8 +1,6 @@
"""Rule definitions for the ``beaconsites`` app."""

import rules
from projectroles import rules as pr_rules


# Rules ------------------------------------------------------------------------

Expand Down
5 changes: 3 additions & 2 deletions beaconsite/tests/factories.py
Expand Up @@ -3,8 +3,9 @@
from projectroles.models import Project

from varfish.users.tests.factories import UserFactory
from variants.tests.factories import ProjectFactory, CaseFactory
from ..models import Site, Consortium, ConsortiumMember, Query, Response, ConsortiumAssignment
from variants.tests.factories import CaseFactory, ProjectFactory

from ..models import Consortium, ConsortiumAssignment, ConsortiumMember, Query, Response, Site


class SiteFactory(factory.django.DjangoModelFactory):
Expand Down
4 changes: 2 additions & 2 deletions beaconsite/tests/test_models.py
Expand Up @@ -2,15 +2,15 @@
from django.core.exceptions import ValidationError
from test_plus.test import TestCase

from ..models import Consortium, ConsortiumMember, Query, Response, Site
from .factories import (
SiteFactory,
ConsortiumFactory,
ConsortiumMemberFactory,
ConsortiumWithLocalAndRemoteSiteFactory,
QueryFactory,
ResponseFactory,
SiteFactory,
)
from ..models import Site, Consortium, ConsortiumMember, Query, Response


class TestSite(TestCase):
Expand Down
13 changes: 9 additions & 4 deletions beaconsite/tests/test_permissions_ajax.py
Expand Up @@ -2,21 +2,23 @@

import cattr
from django.urls import reverse

from projectroles.tests.test_permissions_api import TestProjectAPIPermissionBase
import requests_mock

from .factories import SiteFactory
from ..models import Site
from ..models_api import BeaconAlleleRequest
from .factories import SiteFactory


class TestOrganisationAjaxViews(TestProjectAPIPermissionBase):
@requests_mock.Mocker()
def test_get(self, r_mock):
_local_site = SiteFactory(role=Site.LOCAL)
remote_site = SiteFactory()
url = reverse("beaconsite:ajax-beacon-info", kwargs={"site": remote_site.sodar_uuid},)
url = reverse(
"beaconsite:ajax-beacon-info",
kwargs={"site": remote_site.sodar_uuid},
)
good_users = [
self.superuser,
]
Expand Down Expand Up @@ -71,7 +73,10 @@ def test_get(self, r_mock):
url_params = "&".join(
"%s=%s" % (k, v) for k, v in cattr.unstructure(beacon_allele_request).items()
)
url = reverse("beaconsite:ajax-beacon-query", kwargs={"site": remote_site.sodar_uuid},)
url = reverse(
"beaconsite:ajax-beacon-query",
kwargs={"site": remote_site.sodar_uuid},
)
good_users = [
self.superuser,
]
Expand Down
15 changes: 9 additions & 6 deletions beaconsite/tests/test_permissions_api.py
@@ -1,20 +1,21 @@
import urllib
import datetime
import urllib
from wsgiref.handlers import format_date_time

import cattr
import httpsig
from Crypto.PublicKey import RSA
import cattr
from django.shortcuts import reverse
from django.utils import timezone
import httpsig
from projectroles.tests.test_permissions_api import TestProjectAPIPermissionBase
from requests_http_signature import HTTPSignatureAuth

from variants.tests.factories import SmallVariantFactory

from ..models import Site
from .factories import ConsortiumWithLocalAndRemoteSiteFactory, ConsortiumAssignmentFactory
from ..models_api import BeaconAlleleRequest
from ..views_api import _header_canonical
from .factories import ConsortiumAssignmentFactory, ConsortiumWithLocalAndRemoteSiteFactory


class AcceptHeaderMixin:
Expand Down Expand Up @@ -48,7 +49,8 @@ def setUp(self):
self.consortium = ConsortiumWithLocalAndRemoteSiteFactory()
self.remote_site = Site.objects.get(role=Site.REMOTE)
ConsortiumAssignmentFactory(
consortium=self.consortium, project=self.project,
consortium=self.consortium,
project=self.project,
)

def test_success(self):
Expand Down Expand Up @@ -115,7 +117,8 @@ def setUp(self):
self.consortium = ConsortiumWithLocalAndRemoteSiteFactory()
self.remote_site = Site.objects.get(role=Site.REMOTE)
ConsortiumAssignmentFactory(
consortium=self.consortium, project=self.project,
consortium=self.consortium,
project=self.project,
)
self.small_variant = SmallVariantFactory(case__project=self.project)
self.beacon_allele_request = BeaconAlleleRequest(
Expand Down
20 changes: 16 additions & 4 deletions beaconsite/tests/test_views.py
Expand Up @@ -187,7 +187,10 @@ class TestSiteUpdateView(TestViewsBase):
def test_render(self):
with self.login(self.superuser):
response = self.client.get(
reverse("beaconsite:site-update", kwargs={"site": self.site.sodar_uuid},)
reverse(
"beaconsite:site-update",
kwargs={"site": self.site.sodar_uuid},
)
)
self.assertEqual(response.status_code, 200)
self.assertIsNotNone(response.context["object"])
Expand All @@ -211,7 +214,10 @@ def test_update(self):

with self.login(self.superuser):
response = self.client.post(
reverse("beaconsite:site-update", kwargs={"site": self.site.sodar_uuid},),
reverse(
"beaconsite:site-update",
kwargs={"site": self.site.sodar_uuid},
),
post_data,
)

Expand Down Expand Up @@ -243,7 +249,10 @@ class TestSiteDeleteView(TestViewsBase):
def test_render(self):
with self.login(self.superuser):
response = self.client.get(
reverse("beaconsite:site-delete", kwargs={"site": self.site.sodar_uuid},)
reverse(
"beaconsite:site-delete",
kwargs={"site": self.site.sodar_uuid},
)
)
self.assertEqual(response.status_code, 200)

Expand All @@ -253,7 +262,10 @@ def test_delete(self):

with self.login(self.superuser):
response = self.client.post(
reverse("beaconsite:site-delete", kwargs={"site": self.site.sodar_uuid},)
reverse(
"beaconsite:site-delete",
kwargs={"site": self.site.sodar_uuid},
)
)
self.assertEqual(response.status_code, 302)
self.assertEqual(response.url, reverse("beaconsite:site-list"))
Expand Down
1 change: 0 additions & 1 deletion beaconsite/tests/test_views_ajax.py
Expand Up @@ -5,7 +5,6 @@
from projectroles.tests.test_permissions_api import TestProjectAPIPermissionBase
import requests_mock


RE_UUID4 = re.compile(r"^[0-9a-f-]+$")
RE_DATETIME = re.compile(r"^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d\.\d\d\d\d\d\dZ$")

Expand Down
11 changes: 7 additions & 4 deletions beaconsite/tests/test_views_api.py
Expand Up @@ -3,10 +3,11 @@

from variants.tests.factories import SmallVariantFactory
from variants.tests.helpers import ApiViewTestBase
from .test_permissions_api import AcceptHeaderMixin

from ..models import Site
from .factories import ConsortiumWithLocalAndRemoteSiteFactory, ConsortiumAssignmentFactory
from ..models_api import BeaconAlleleRequest
from .factories import ConsortiumAssignmentFactory, ConsortiumWithLocalAndRemoteSiteFactory
from .test_permissions_api import AcceptHeaderMixin


class TestBeaconInfoApiView(AcceptHeaderMixin, ApiViewTestBase):
Expand All @@ -16,7 +17,8 @@ def setUp(self):
self.local_site = Site.objects.get(role=Site.LOCAL)
self.remote_site = Site.objects.get(role=Site.REMOTE)
ConsortiumAssignmentFactory(
consortium=self.consortium, project=self.project,
consortium=self.consortium,
project=self.project,
)

def test_get_info(self):
Expand Down Expand Up @@ -54,7 +56,8 @@ def setUp(self):
self.local_site = Site.objects.get(role=Site.LOCAL)
self.remote_site = Site.objects.get(role=Site.REMOTE)
ConsortiumAssignmentFactory(
consortium=self.consortium, project=self.project,
consortium=self.consortium,
project=self.project,
)
self.small_variant = SmallVariantFactory(case__project=self.project)
self.beacon_allele_request = BeaconAlleleRequest(
Expand Down
27 changes: 22 additions & 5 deletions beaconsite/urls.py
Expand Up @@ -2,13 +2,22 @@
"""

from django.conf.urls import url
from . import views, views_api, views_ajax

from . import views, views_ajax, views_api

app_name = "beaconsite"

ui_urlpatterns = [
url(regex=r"^$", view=views.IndexView.as_view(), name="index",),
url(regex=r"^consortium$", view=views.ConsortiumListView.as_view(), name="consortium-list",),
url(
regex=r"^$",
view=views.IndexView.as_view(),
name="index",
),
url(
regex=r"^consortium$",
view=views.ConsortiumListView.as_view(),
name="consortium-list",
),
url(
regex=r"^consortium/(?P<consortium>[0-9a-f-]+)$",
view=views.ConsortiumDetailView.as_view(),
Expand All @@ -29,13 +38,21 @@
view=views.ConsortiumDeleteView.as_view(),
name="consortium-delete",
),
url(regex=r"^site$", view=views.SiteListView.as_view(), name="site-list",),
url(
regex=r"^site$",
view=views.SiteListView.as_view(),
name="site-list",
),
url(
regex=r"^site/(?P<site>[0-9a-f-]+)$",
view=views.SiteDetailView.as_view(),
name="site-detail",
),
url(regex=r"^site/create/$", view=views.SiteCreateView.as_view(), name="site-create",),
url(
regex=r"^site/create/$",
view=views.SiteCreateView.as_view(),
name="site-create",
),
url(
regex=r"^site/update/(?P<site>[0-9a-f-]+)$",
view=views.SiteUpdateView.as_view(),
Expand Down

0 comments on commit 98d372a

Please sign in to comment.