diff --git a/mayan/apps/metadata/tests/literals.py b/mayan/apps/metadata/tests/literals.py index 8d0bde2696..951207e495 100644 --- a/mayan/apps/metadata/tests/literals.py +++ b/mayan/apps/metadata/tests/literals.py @@ -12,5 +12,7 @@ TEST_METADATA_TYPE_LABEL = 'test' TEST_METADATA_TYPE_LABEL_2 = 'test metadata type label 2' TEST_METADATA_TYPE_NAME = 'test' TEST_METADATA_TYPE_NAME_2 = 'test metadata type name 2' +TEST_METADATA_VALUE = 'test value' +TEST_METADATA_VALUE_EDITED = 'test value edited' TEST_PARSED_VALID_DATE = '2001-01-01' TEST_VALID_DATE = '2001-1-1' diff --git a/mayan/apps/metadata/tests/test_api.py b/mayan/apps/metadata/tests/test_api.py index da70c338f2..79ccff4acb 100644 --- a/mayan/apps/metadata/tests/test_api.py +++ b/mayan/apps/metadata/tests/test_api.py @@ -16,12 +16,10 @@ from ..models import DocumentMetadata, DocumentTypeMetadataType, MetadataType from .literals import ( TEST_METADATA_TYPE_LABEL, TEST_METADATA_TYPE_LABEL_2, - TEST_METADATA_TYPE_NAME, TEST_METADATA_TYPE_NAME_2 + TEST_METADATA_TYPE_NAME, TEST_METADATA_TYPE_NAME_2, TEST_METADATA_VALUE, + TEST_METADATA_VALUE_EDITED ) -TEST_METADATA_VALUE = 'test value' -TEST_METADATA_VALUE_EDITED = 'test value edited' - class MetadataTypeAPITestCase(APITestCase): def setUp(self): @@ -34,8 +32,10 @@ class MetadataTypeAPITestCase(APITestCase): username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD ) - def tearDown(self): - self.admin_user.delete() + def _create_metadata_type(self): + self.metadata_type = MetadataType.objects.create( + label=TEST_METADATA_TYPE_LABEL, name=TEST_METADATA_TYPE_NAME + ) def test_metadata_type_create(self): response = self.client.post( @@ -56,26 +56,35 @@ class MetadataTypeAPITestCase(APITestCase): self.assertEqual(metadata_type.name, TEST_METADATA_TYPE_NAME) def test_metadata_type_delete(self): - metadata_type = MetadataType.objects.create( - label=TEST_METADATA_TYPE_LABEL, name=TEST_METADATA_TYPE_NAME - ) + self._create_metadata_type() response = self.client.delete( - reverse('rest_api:metadatatype-detail', args=(metadata_type.pk,)) + reverse('rest_api:metadatatype-detail', + args=(self.metadata_type.pk,)) ) self.assertEqual(response.status_code, 204) self.assertEqual(MetadataType.objects.count(), 0) - def test_metadata_type_edit(self): - metadata_type = MetadataType.objects.create( - label=TEST_METADATA_TYPE_LABEL, name=TEST_METADATA_TYPE_NAME + def test_metadata_type_detail_view(self): + self._create_metadata_type() + + response = self.client.get( + reverse('rest_api:metadatatype-detail', + args=(self.metadata_type.pk,)) + ) + self.assertEqual(response.status_code, 200) + self.assertEqual( + response.data['label'], TEST_METADATA_TYPE_LABEL ) - response = self.client.put( - reverse('rest_api:metadatatype-detail', args=(metadata_type.pk,)), - data={ + def test_metadata_type_edit_via_patch_view(self): + self._create_metadata_type() + + response = self.client.patch( + reverse('rest_api:metadatatype-detail', + args=(self.metadata_type.pk,)), data={ 'label': TEST_METADATA_TYPE_LABEL_2, 'name': TEST_METADATA_TYPE_NAME_2 } @@ -83,10 +92,37 @@ class MetadataTypeAPITestCase(APITestCase): self.assertEqual(response.status_code, 200) - metadata_type.refresh_from_db() + self.metadata_type.refresh_from_db() - self.assertEqual(metadata_type.label, TEST_METADATA_TYPE_LABEL_2) - self.assertEqual(metadata_type.name, TEST_METADATA_TYPE_NAME_2) + self.assertEqual(self.metadata_type.label, TEST_METADATA_TYPE_LABEL_2) + self.assertEqual(self.metadata_type.name, TEST_METADATA_TYPE_NAME_2) + + def test_metadata_type_edit_via_put_view(self): + self._create_metadata_type() + + response = self.client.put( + reverse('rest_api:metadatatype-detail', + args=(self.metadata_type.pk,)), data={ + 'label': TEST_METADATA_TYPE_LABEL_2, + 'name': TEST_METADATA_TYPE_NAME_2 + } + ) + + self.assertEqual(response.status_code, 200) + + self.metadata_type.refresh_from_db() + + self.assertEqual(self.metadata_type.label, TEST_METADATA_TYPE_LABEL_2) + self.assertEqual(self.metadata_type.name, TEST_METADATA_TYPE_NAME_2) + + def test_metadata_type_list_view(self): + self._create_metadata_type() + + response = self.client.get(reverse('rest_api:metadatatype-list')) + self.assertEqual(response.status_code, 200) + self.assertEqual( + response.data['results'][0]['label'], TEST_METADATA_TYPE_LABEL + ) class DocumentTypeMetadataTypeAPITestCase(APITestCase):