Skip to content
Snippets Groups Projects
Commit a6d5f462 authored by Tore.Brede's avatar Tore.Brede
Browse files

Merge branch 'master' into GREG-21_test_data_model_updates

parents d8d9aba5 e1363c26
No related branches found
No related tags found
1 merge request!24GREG-21: Various model updates
Pipeline #90469 passed
......@@ -6,4 +6,4 @@ from greg.models import Sponsor
class SponsorSerializer(serializers.ModelSerializer):
class Meta:
model = Sponsor
fields = ["id", "feide_id"]
fields = ["id", "feide_id", "first_name", "last_name"]
from drf_spectacular.utils import extend_schema, OpenApiParameter
from rest_framework import mixins
from rest_framework.viewsets import ReadOnlyModelViewSet, GenericViewSet
from rest_framework.viewsets import GenericViewSet, ModelViewSet
from greg.api.pagination import PrimaryKeyCursorPagination
from greg.api.serializers import PersonSerializer
......@@ -8,7 +8,7 @@ from greg.api.serializers.sponsor import SponsorSerializer
from greg.models import Sponsor, Person
class SponsorViewSet(ReadOnlyModelViewSet):
class SponsorViewSet(ModelViewSet):
"""Sponsor API"""
queryset = Sponsor.objects.all().order_by("id")
......
# Generated by Django 3.2.5 on 2021-08-19 09:10
# Generated by Django 3.2.5 on 2021-08-19 12:57
import datetime
import dirtyfields.dirtyfields
......@@ -119,6 +119,8 @@ class Migration(migrations.Migration):
('created', models.DateTimeField(auto_now_add=True)),
('updated', models.DateTimeField(auto_now=True)),
('feide_id', models.CharField(max_length=256)),
('first_name', models.CharField(max_length=256)),
('last_name', models.CharField(max_length=256)),
],
bases=(dirtyfields.dirtyfields.DirtyFieldsMixin, models.Model),
),
......
......@@ -262,6 +262,9 @@ class Sponsor(BaseModel):
"""
feide_id = models.CharField(max_length=256)
first_name = models.CharField(max_length=256)
last_name = models.CharField(max_length=256)
units = models.ManyToManyField(
"OrganizationalUnit",
through="SponsorOrganizationalUnit",
......@@ -269,8 +272,12 @@ class Sponsor(BaseModel):
)
def __repr__(self):
return "{}(id={!r}, feide_id={!r})".format(
self.__class__.__name__, self.pk, self.feide_id
return "{}(id={!r}, feide_id={!r}, first_name={!r}, last_name={!r})".format(
self.__class__.__name__,
self.pk,
self.feide_id,
self.first_name,
self.last_name,
)
class Meta:
......@@ -317,3 +324,8 @@ class ScheduleTask(models.Model):
name = models.CharField(max_length=32)
last_completed = models.DateTimeField(null=True)
def __repr__(self):
return "{}(id={!r}, name={!r}, last_completed={!r})".format(
self.__class__.__name__, self.pk, self.name, self.last_completed
)
import pytest
from rest_framework import status
from rest_framework.reverse import reverse
@pytest.mark.django_db
def test_add_sponsor(client):
data = {
"feide_id": "sponsor@example.org",
"first_name": "Test",
"last_name": "Sponsor",
}
post_response = client.post(reverse("sponsor-list"), data=data)
assert post_response.status_code == status.HTTP_201_CREATED
response_data = post_response.json()
list_response = client.get(
reverse("sponsor-detail", kwargs={"id": response_data["id"]})
)
list_response_data = list_response.json()
assert list_response_data["feide_id"] == data["feide_id"]
assert list_response_data["first_name"] == data["first_name"]
assert list_response_data["last_name"] == data["last_name"]
@pytest.mark.django_db
def test_sponsor_guest_list(client, sponsor_guy, person_foo_role):
url = reverse("sponsor_guests-list", kwargs={"sponsor_id": sponsor_guy.id})
......
......@@ -53,7 +53,9 @@ def person_bar() -> Person:
@pytest.fixture
def sponsor_guy() -> Sponsor:
return Sponsor.objects.create(feide_id="guy@example.org")
return Sponsor.objects.create(
feide_id="guy@example.org", first_name="Sponsor", last_name="Guy"
)
@pytest.fixture
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment