mirror of https://github.com/doccano/doccano.git
pythondatasetsactive-learningtext-annotationdatasetnatural-language-processingdata-labelingmachine-learningannotation-tool
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.6 KiB
76 lines
2.6 KiB
from django.test import TestCase
|
|
from django.core.exceptions import ValidationError
|
|
from django.db.utils import IntegrityError
|
|
from mixer.backend.django import mixer
|
|
|
|
|
|
class TestProject(TestCase):
|
|
|
|
def test_project_type(self):
|
|
project = mixer.blend('server.Project')
|
|
project.is_type_of(project.project_type)
|
|
|
|
def test_get_progress(self):
|
|
project = mixer.blend('server.Project')
|
|
res = project.get_progress()
|
|
self.assertEqual(res['total'], 0)
|
|
self.assertEqual(res['remaining'], 0)
|
|
|
|
|
|
class TestLabel(TestCase):
|
|
|
|
def test_shortcut_uniqueness(self):
|
|
label = mixer.blend('server.Label')
|
|
mixer.blend('server.Label', shortcut=label.shortcut)
|
|
with self.assertRaises(IntegrityError):
|
|
mixer.blend('server.Label',
|
|
project=label.project,
|
|
shortcut=label.shortcut)
|
|
|
|
def test_text_uniqueness(self):
|
|
label = mixer.blend('server.Label')
|
|
mixer.blend('server.Label', text=label.text)
|
|
with self.assertRaises(IntegrityError):
|
|
mixer.blend('server.Label',
|
|
project=label.project,
|
|
text=label.text)
|
|
|
|
|
|
class TestDocumentAnnotation(TestCase):
|
|
|
|
def test_uniqueness(self):
|
|
annotation1 = mixer.blend('server.DocumentAnnotation')
|
|
with self.assertRaises(IntegrityError):
|
|
mixer.blend('server.DocumentAnnotation',
|
|
document=annotation1.document,
|
|
user=annotation1.user,
|
|
label=annotation1.label)
|
|
|
|
|
|
class TestSequenceAnnotation(TestCase):
|
|
|
|
def test_uniqueness(self):
|
|
annotation1 = mixer.blend('server.SequenceAnnotation')
|
|
with self.assertRaises(IntegrityError):
|
|
mixer.blend('server.SequenceAnnotation',
|
|
document=annotation1.document,
|
|
user=annotation1.user,
|
|
label=annotation1.label,
|
|
start_offset=annotation1.start_offset,
|
|
end_offset=annotation1.end_offset)
|
|
|
|
def test_position_constraint(self):
|
|
with self.assertRaises(ValidationError):
|
|
mixer.blend('server.SequenceAnnotation',
|
|
start_offset=1, end_offset=0).clean()
|
|
|
|
|
|
class TestSeq2seqAnnotation(TestCase):
|
|
|
|
def test_uniqueness(self):
|
|
annotation1 = mixer.blend('server.Seq2seqAnnotation')
|
|
with self.assertRaises(IntegrityError):
|
|
mixer.blend('server.Seq2seqAnnotation',
|
|
document=annotation1.document,
|
|
user=annotation1.user,
|
|
text=annotation1.text)
|