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/", )