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.
34 lines
1.4 KiB
34 lines
1.4 KiB
import unittest
|
|
|
|
from model_mommy import mommy
|
|
|
|
from api.models import INTENT_DETECTION_AND_SLOT_FILLING
|
|
from api.tests.api.utils import prepare_project
|
|
from ..pipeline.repositories import IntentDetectionSlotFillingRepository
|
|
|
|
|
|
class TestCSVWriter(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.project = prepare_project(INTENT_DETECTION_AND_SLOT_FILLING)
|
|
|
|
def test_list(self):
|
|
example = mommy.make('Example', project=self.project.item, text='example')
|
|
category = mommy.make('Category', example=example, user=self.project.admin)
|
|
span = mommy.make('Span', example=example, user=self.project.admin, start_offset=0, end_offset=1)
|
|
repository = IntentDetectionSlotFillingRepository(self.project.item)
|
|
expected = [
|
|
{
|
|
'data': example.text,
|
|
'label': {
|
|
'cats': [category.label.text],
|
|
'entities': [(span.start_offset, span.end_offset, span.label.text)]
|
|
}
|
|
}
|
|
]
|
|
records = list(repository.list())
|
|
self.assertEqual(len(records), len(expected))
|
|
for record, expect in zip(records, expected):
|
|
self.assertEqual(record.data, expect['data'])
|
|
self.assertEqual(record.label['cats'], expect['label']['cats'])
|
|
self.assertEqual(record.label['entities'], expect['label']['entities'])
|