Skip to content

Commit

Permalink
fixed typos, formatted test.yml, re-added unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
why-not-try-calmer committed Sep 29, 2023
1 parent 7e04d88 commit 0372d2e
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 73 deletions.
77 changes: 38 additions & 39 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,51 +17,50 @@ jobs:
OGCAPIF_HOST: localhost

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Login to DockerHub
if: github.repository == 'opengisch/django-ogcapif'
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to DockerHub
if: github.repository == 'opengisch/django-ogcapif'
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build Django image
uses: docker/build-push-action@v4
with:
context: .
provenance: false
file: docker/django/Dockerfile
push: ${{ github.repository == 'opengisch/django-ogcapif' }}
pull: true
cache-from: type=registry,ref=opengisch/django-oapif:latest
cache-to: type=registry,ref=opengisch/django-oapif:latest,mode=max
tags: opengisch/django-oapif:latest
- name: Build Django image
uses: docker/build-push-action@v4
with:
context: .
provenance: false
file: docker/django/Dockerfile
push: ${{ github.repository == 'opengisch/django-ogcapif' }}
pull: true
cache-from: type=registry,ref=opengisch/django-oapif:latest
cache-to: type=registry,ref=opengisch/django-oapif:latest,mode=max
tags: opengisch/django-oapif:latest

- name: Setup Compose
run: |
# copy default conf
cp .env.example .env
- name: Setup Compose
run: |
# copy default conf
cp .env.example .env
# start the stack
docker compose up --build -d
# start the stack
docker compose up --build -d
# deploy static files and migrate database
docker compose exec django python manage.py collectstatic --no-input
docker compose exec django python manage.py migrate --no-input
docker compose exec django python manage.py populate_users
docker compose exec django python manage.py populate_data
# deploy static files and migrate database
docker compose exec django python manage.py collectstatic --no-input
docker compose exec django python manage.py migrate --no-input
docker compose exec django python manage.py populate_users
docker compose exec django python manage.py populate_data
# - name: Run unit tests
# run: |
# docker compose exec django python manage.py test signalo.value_lists
- name: Run unit tests
run: docker compose exec django python manage.py test signalo.core.tests

- name: Run integration tests
run: docker compose run integration_tests
- name: Run integration tests
run: docker compose run integration_tests

- name: Failure logs
if: failure()
run: docker-compose logs
- name: Failure logs
if: failure()
run: docker-compose logs
42 changes: 8 additions & 34 deletions src/django_oapif/decorators.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,30 +40,7 @@ def inner(Model):
1 for viewsets for models without (aka 'non-geometric features').
"""

class AutoSerializer(GeoFeatureModelSerializer):
class Meta:
model = Model
fields = "__all__"
geo_field = "geom"

# ON HOLD, WAITING ON GeoFeatureModelSerializer to admit of null geometries
"""
class AutoNoGeomSerializer(ModelSerializer):
class Meta:
model = Model
fields = "__all__
if skip_geom:
viewset_serializer_class = AutoNoGeomSerializer
viewset_oapif_geom_lookup = None
else:
"""
viewset_serializer_class = AutoSerializer
viewset_renderer_classes = [
renderers.JSONRenderer,
FGBRenderer,
JSONStreamingRenderer,
]
viewset_oapif_geom_lookup = (
_viewset_oapif_geom_lookup = (
"geom" # one day this will be retrieved automatically from the serializer
)
_geo_field = "geom"
Expand All @@ -82,15 +59,19 @@ class Meta:
# Create the viewset
class Viewset(OAPIFDescribeModelViewSetMixin, viewsets.ModelViewSet):
queryset = Model.objects.all()
serializer_class = viewset_serializer_class
renderer_classes = viewset_renderer_classes
serializer_class = AutoSerializer
renderer_classes = [
renderers.JSONRenderer,
JSONStreamingRenderer,
FGBRenderer,
]

# TODO: these should probably be moved to the mixin
oapif_title = Model._meta.verbose_name
oapif_description = Model.__doc__

# (one day this will be retrieved automatically from the serializer)
oapif_geom_lookup = viewset_oapif_geom_lookup
oapif_geom_lookup = _viewset_oapif_geom_lookup
filter_backends = [BboxFilterBackend]

# Allowing '.' and '-' in urls
Expand Down Expand Up @@ -123,13 +104,6 @@ def list(self, request, *args, **kwargs):
self.renderer_classes = [FGBRenderer]
return super().list(request, *args, **kwargs)

# ON HOLD, WAITING ON GeoFeatureModelSerializer to admit of null geometries
"""
# Apply custom serializer attributes
if viewset_serializer_class.__name__ == "AutoNoGeomSerializer":
for k, v in custom_serializer_attrs.items():
setattr(AutoNoGeomSerializer.Meta, k, v)
"""
# Apply custom serializer attributes
for k, v in custom_serializer_attrs.items():
setattr(AutoSerializer.Meta, k, v)
Expand Down

0 comments on commit 0372d2e

Please sign in to comment.