37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
from django.test import SimpleTestCase
|
|
from django.urls import reverse
|
|
|
|
from apps.system.models import File
|
|
from apps.wpm.models import Mlogbw
|
|
from apps.wpm.serializers import MlogbwFilesSerializer, MlogbwListSerializer
|
|
from apps.wpm.views import MlogbwViewSet
|
|
|
|
|
|
class MlogbwFilesDefinitionTests(SimpleTestCase):
|
|
def test_files_field_links_system_file(self):
|
|
field = Mlogbw._meta.get_field("files")
|
|
|
|
self.assertTrue(field.blank)
|
|
self.assertIs(field.remote_field.model, File)
|
|
self.assertEqual(field.remote_field.related_name, "mlogbw_outputs")
|
|
|
|
def test_list_serializer_exposes_file_ids_and_details(self):
|
|
fields = MlogbwListSerializer().fields
|
|
|
|
self.assertTrue(fields["files"].read_only)
|
|
self.assertTrue(fields["files_"].read_only)
|
|
|
|
def test_files_serializer_only_writes_file_relations(self):
|
|
fields = MlogbwFilesSerializer().fields
|
|
|
|
self.assertEqual(set(fields), {"id", "files", "files_"})
|
|
self.assertFalse(fields["files"].read_only)
|
|
|
|
def test_files_action_supports_read_and_update(self):
|
|
self.assertEqual(MlogbwViewSet.files.mapping["get"], "files")
|
|
self.assertEqual(MlogbwViewSet.files.mapping["put"], "files")
|
|
self.assertEqual(
|
|
reverse("mlogbw-files", kwargs={"pk": "single-id"}),
|
|
"/api/wpm/mlogbw/single-id/files/",
|
|
)
|