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.
51 lines
1.6 KiB
51 lines
1.6 KiB
import unittest
|
|
from unittest.mock import MagicMock, patch
|
|
|
|
import pandas as pd
|
|
from pandas.testing import assert_frame_equal
|
|
|
|
from data_import.pipeline.readers import (
|
|
FILE_NAME_COLUMN,
|
|
UPLOAD_NAME_COLUMN,
|
|
UUID_COLUMN,
|
|
Reader,
|
|
)
|
|
|
|
|
|
class TestReader(unittest.TestCase):
|
|
def setUp(self):
|
|
self.parser = MagicMock()
|
|
self.parser.parse.return_value = [{"a": 1}, {"a": 2}]
|
|
filename = MagicMock()
|
|
filename.generated_name = "filename"
|
|
filename.upload_name = "upload_name"
|
|
self.filenames = MagicMock()
|
|
self.filenames.__iter__.return_value = [filename]
|
|
self.rows = [
|
|
{
|
|
UUID_COLUMN: "uuid",
|
|
FILE_NAME_COLUMN: filename.generated_name,
|
|
UPLOAD_NAME_COLUMN: filename.upload_name,
|
|
"a": 1,
|
|
},
|
|
{
|
|
UUID_COLUMN: "uuid",
|
|
FILE_NAME_COLUMN: filename.generated_name,
|
|
UPLOAD_NAME_COLUMN: filename.upload_name,
|
|
"a": 2,
|
|
},
|
|
]
|
|
|
|
@patch("data_import.pipeline.readers.uuid.uuid4")
|
|
def test_iter_method(self, mock):
|
|
mock.return_value = "uuid"
|
|
reader = Reader(self.filenames, self.parser)
|
|
self.assertEqual(list(reader), self.rows)
|
|
|
|
@patch("data_import.pipeline.readers.uuid.uuid4")
|
|
def test_batch(self, mock):
|
|
mock.return_value = "uuid"
|
|
reader = Reader(self.filenames, self.parser)
|
|
batch = next(reader.batch(2))
|
|
expected_df = pd.DataFrame(self.rows)
|
|
assert_frame_equal(batch, expected_df)
|