Source code for ynlu.sdk.test.test_model
from unittest import TestCase
from ..model import Model
FAKE_QUERY = {
'predict': {
'intents': [
{
'name': '測試2',
'score': 0.78,
},
{
'name': '測試1',
'score': 0.17,
},
],
'entities': [
{
'name': 'Entity在哪裡',
'value': 3,
'score': 0.8877,
},
{
'name': 'ok123',
'value': 8,
'score': 0.7788,
},
],
},
}
FAKE_INTENT_SHOULD_RETURN = [
{
'intent': '測試2',
'score': 0.78,
},
{
'intent': '測試1',
'score': 0.17,
},
]
FAKE_ENTITY_SHOULD_RETURN = [
{
'entity': 'Entity在哪裡',
'value': 3,
'score': 0.8877,
},
{
'entity': 'ok123',
'value': 8,
'score': 0.7788,
},
]
[docs]class MockClient:
[docs] def execute(self, gql_query, variable_values):
return FAKE_QUERY
[docs]class ModelTestCase(TestCase):
[docs] def setUp(self):
self.model = Model(
classifier_id='7878',
client=MockClient(),
)
[docs] def test_model_init(self):
self.assertEqual(self.model.model_id, '7878')
[docs] def test_model_id(self):
self.assertEqual(self.model.model_id, self.model._classifier_id)
[docs] def test_model_predict(self):
with self.assertRaises(ValueError):
illegal_utterance = 11223
self.model.predict(illegal_utterance)
str_utterance = 'something_i_dont_know'
intents_result, entities_result = self.model.predict(str_utterance)
self.assertEqual(FAKE_INTENT_SHOULD_RETURN, intents_result)
self.assertEqual(FAKE_ENTITY_SHOULD_RETURN, entities_result)