Skip to content
Snippets Groups Projects
Commit 51df3e61 authored by Valentin Rigal's avatar Valentin Rigal
Browse files

Other tests

parent 44a5baf3
No related branches found
No related tags found
No related merge requests found
from django.test import TestCase
from rest_framework.serializers import ValidationError
from arkindex_common.ml_tool import MLToolType
from arkindex.project.serializer_fields import DataSourceSlugField
from arkindex.documents.models import DataSource
class TestDataSourceSlugField(TestCase):
@classmethod
def setUpTestData(cls):
super().setUpTestData()
cls.external_source = DataSource.objects.create(
name='External sauce',
type=MLToolType.Classifier,
slug='sauce',
internal=False,
)
cls.internal_source = DataSource.objects.create(
name='Internal sauce',
type=MLToolType.Recognizer,
slug='better_sauce',
revision='13.37',
internal=True,
)
def test_init(self):
with self.assertRaises(AssertionError):
DataSourceSlugField(tool_type='oops')
def test_to_representation(self):
field = DataSourceSlugField()
self.assertEqual(field.to_representation('something'), 'something')
self.assertEqual(field.to_representation(self.external_source), 'sauce')
def test_to_internal_value(self):
field = DataSourceSlugField()
self.assertEqual(field.to_internal_value('sauce'), self.external_source)
with self.assertRaises(ValidationError, msg="Source with slug 'mayo' not found"):
field.to_internal_value('mayo')
def test_to_internal_value_latest(self):
"""
Test DataSourceSlugField.to_internal_value picks the latest source by revision
"""
field = DataSourceSlugField()
DataSource.objects.create(
name='Spoiled mayonnaise',
type=MLToolType.Recognizer,
slug='mayo',
revision='42',
internal=False,
)
mayo = DataSource.objects.create(
name='Edible mayonnaise',
type=MLToolType.Recognizer,
slug='mayo',
revision='43',
internal=False,
)
self.assertEqual(field.to_internal_value('mayo'), mayo)
def test_to_internal_value_tool_type_not_found(self):
field = DataSourceSlugField(tool_type=MLToolType.Classifier)
with self.assertRaises(ValidationError, msg="Source with slug 'better_sauce' not found"):
field.to_internal_value('better_sauce')
field = DataSourceSlugField(tool_type=MLToolType.Recognizer)
self.assertEqual(field.to_internal_value('better_sauce'), self.internal_source)
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