add tests for the computers rest api

This commit is contained in:
Andreas Zweili 2020-11-30 18:47:14 +01:00
parent 76bbd6fde3
commit 5917f4c895
4 changed files with 375 additions and 1 deletions

View File

@ -0,0 +1,128 @@
from rest_framework import serializers
from .models import Computer
from .models import ComputerCpuRelation
from .models import ComputerDiskRelation
from .models import ComputerGpuRelation
from .models import ComputerRamRelation
from .models import ComputerSoftwareRelation
from .models import CpuArchitecture
from .models import CpuManufacturer
from .models import Cpu
from .models import DiskType
from .models import Disk
from .models import GpuManufacturer
from .models import Gpu
from .models import DisksInRaid
from .models import RaidType
from .models import Raid
from .models import RamType
from .models import Ram
class ComputerSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Computer
fields = '__all__'
class ComputerCpuRelationSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = ComputerCpuRelation
fields = '__all__'
class ComputerDiskRelationSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = ComputerDiskRelation
fields = '__all__'
class ComputerGpuRelationSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = ComputerGpuRelation
fields = '__all__'
class ComputerRamRelationSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = ComputerRamRelation
fields = '__all__'
class ComputerSoftwareRelationSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = ComputerSoftwareRelation
fields = '__all__'
class CpuArchitectureSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = CpuArchitecture
fields = '__all__'
class CpuManufacturerSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = CpuManufacturer
fields = '__all__'
class CpuSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Cpu
fields = '__all__'
class DiskTypeSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = DiskType
fields = '__all__'
class DiskSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Disk
fields = '__all__'
class GpuManufacturerSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = GpuManufacturer
fields = '__all__'
class GpuSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Gpu
fields = '__all__'
class DisksInRaidSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = DisksInRaid
fields = '__all__'
class RaidTypeSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = RaidType
fields = '__all__'
class RaidSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Raid
fields = '__all__'
class RamTypeSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = RamType
fields = '__all__'
class RamSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Ram
fields = '__all__'

View File

@ -96,7 +96,7 @@ def test_unauthorized_request_gpu(api_client):
@pytest.mark.django_db
def test_unauthorized_request_disks_in_raid(api_client):
url = reverse('disk-in-raid-list')
url = reverse('disks-in-raid-list')
response = api_client.get(url)
assert response.status_code == 403

View File

@ -2,8 +2,52 @@ from django.urls import path, include
from rest_framework import routers
from . import views
router = routers.DefaultRouter()
router.register(r'computers', views.ComputerViewSet)
router.register(r'computer-cpu-relations',
views.ComputerCpuRelationViewSet,
'computer-cpu-relation')
router.register(r'computer-disk-relations',
views.ComputerDiskRelationViewSet,
'computer-disk-relation')
router.register(r'computer-gpu-relations',
views.ComputerGpuRelationViewSet,
'computer-gpu-relation')
router.register(r'computer-ram-relations',
views.ComputerRamRelationViewSet,
'computer-ram-relation')
router.register(r'computer-software-relations',
views.ComputerSoftwareRelationViewSet,
'computer-software-relation')
router.register(r'cpu-architectures',
views.CpuArchitectureViewSet,
'cpu-architecture')
router.register(r'cpu-manufacturers',
views.CpuManufacturerViewSet,
'cpu-manufacturer')
router.register(r'cpus', views.CpuViewSet)
router.register(r'disk-types',
views.DiskTypeViewSet,
'disk-type')
router.register(r'disks', views.DiskViewSet)
router.register(r'gpu-manufacturers',
views.GpuManufacturerViewSet,
'gpu-manufacturer')
router.register(r'gpus', views.GpuViewSet)
router.register(r'disks-in-raid',
views.DisksInRaidViewSet,
'disks-in-raid')
router.register(r'raid-types',
views.RaidTypeViewSet,
'raid-type')
router.register(r'raids', views.RaidViewSet)
router.register(r'ram-types',
views.RamTypeViewSet,
'ram-type')
router.register(r'rams', views.RamViewSet)
urlpatterns = [

202
backend/computers/views.py Normal file
View File

@ -0,0 +1,202 @@
from rest_framework import viewsets
from rest_framework import permissions
from .models import Computer
from .models import ComputerCpuRelation
from .models import ComputerDiskRelation
from .models import ComputerGpuRelation
from .models import ComputerRamRelation
from .models import ComputerSoftwareRelation
from .models import CpuArchitecture
from .models import CpuManufacturer
from .models import Cpu
from .models import DiskType
from .models import Disk
from .models import GpuManufacturer
from .models import Gpu
from .models import DisksInRaid
from .models import RaidType
from .models import Raid
from .models import RamType
from .models import Ram
from .serializers import ComputerSerializer
from .serializers import ComputerCpuRelationSerializer
from .serializers import ComputerDiskRelationSerializer
from .serializers import ComputerGpuRelationSerializer
from .serializers import ComputerRamRelationSerializer
from .serializers import ComputerSoftwareRelationSerializer
from .serializers import CpuArchitectureSerializer
from .serializers import CpuManufacturerSerializer
from .serializers import CpuSerializer
from .serializers import DiskTypeSerializer
from .serializers import DiskSerializer
from .serializers import GpuManufacturerSerializer
from .serializers import GpuSerializer
from .serializers import DisksInRaidSerializer
from .serializers import RaidTypeSerializer
from .serializers import RaidSerializer
from .serializers import RamTypeSerializer
from .serializers import RamSerializer
class ComputerViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = Computer.objects.all()
serializer_class = ComputerSerializer
permission_classes = [permissions.IsAuthenticated]
class ComputerCpuRelationViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = ComputerCpuRelation.objects.all()
serializer_class = ComputerCpuRelationSerializer
permission_classes = [permissions.IsAuthenticated]
class ComputerDiskRelationViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = ComputerDiskRelation.objects.all()
serializer_class = ComputerDiskRelationSerializer
permission_classes = [permissions.IsAuthenticated]
class ComputerGpuRelationViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = ComputerGpuRelation.objects.all()
serializer_class = ComputerGpuRelationSerializer
permission_classes = [permissions.IsAuthenticated]
class ComputerRamRelationViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = ComputerRamRelation.objects.all()
serializer_class = ComputerRamRelationSerializer
permission_classes = [permissions.IsAuthenticated]
class ComputerSoftwareRelationViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = ComputerSoftwareRelation.objects.all()
serializer_class = ComputerSoftwareRelationSerializer
permission_classes = [permissions.IsAuthenticated]
class CpuArchitectureViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = CpuArchitecture.objects.all()
serializer_class = CpuArchitectureSerializer
permission_classes = [permissions.IsAuthenticated]
class CpuManufacturerViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = CpuManufacturer.objects.all()
serializer_class = CpuManufacturerSerializer
permission_classes = [permissions.IsAuthenticated]
class CpuViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = Cpu.objects.all()
serializer_class = CpuSerializer
permission_classes = [permissions.IsAuthenticated]
class DiskTypeViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = DiskType.objects.all()
serializer_class = DiskTypeSerializer
permission_classes = [permissions.IsAuthenticated]
class DiskViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = Disk.objects.all()
serializer_class = DiskSerializer
permission_classes = [permissions.IsAuthenticated]
class GpuManufacturerViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = GpuManufacturer.objects.all()
serializer_class = GpuManufacturerSerializer
permission_classes = [permissions.IsAuthenticated]
class GpuViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = Gpu.objects.all()
serializer_class = GpuSerializer
permission_classes = [permissions.IsAuthenticated]
class DisksInRaidViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = DisksInRaid.objects.all()
serializer_class = DisksInRaidSerializer
permission_classes = [permissions.IsAuthenticated]
class RaidTypeViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = RaidType.objects.all()
serializer_class = RaidTypeSerializer
permission_classes = [permissions.IsAuthenticated]
class RaidViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = Raid.objects.all()
serializer_class = RaidSerializer
permission_classes = [permissions.IsAuthenticated]
class RamTypeViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = RamType.objects.all()
serializer_class = RamTypeSerializer
permission_classes = [permissions.IsAuthenticated]
class RamViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows weekdays to be viewed or edited.
"""
queryset = Ram.objects.all()
serializer_class = RamSerializer
permission_classes = [permissions.IsAuthenticated]