diff --git a/app/main/lib/langid.py b/app/main/lib/langid.py index dcb7dc8c..b6f5417e 100644 --- a/app/main/lib/langid.py +++ b/app/main/lib/langid.py @@ -70,8 +70,8 @@ def langid(text): prediction = cld3.get_language(text) return { 'result': { - 'language': prediction.language, - 'confidence': prediction.probability + 'language': prediction and prediction.language, + 'confidence': prediction and prediction.probability }, 'raw': prediction, 'model': 'CLD3', diff --git a/app/test/test_langid.py b/app/test/test_langid.py index 395f2031..94b45df6 100644 --- a/app/test/test_langid.py +++ b/app/test/test_langid.py @@ -120,6 +120,19 @@ def test_langid_api_get_without_text(self): self.assertEqual('application/json', response.content_type) self.assertEqual(200, response.status_code) + def test_null_prediction_cld(self): + with patch('cld3.get_language', ) as mock_cld3_get_language: + mock_cld3_get_language.return_value = None + expected = { + 'result': { + 'language': None, + 'confidence': None + }, + 'raw': None, + 'model': 'CLD3', + } + self.assertEqual(Cld3LangidProvider.langid("foo bar"), {'model': 'CLD3', 'raw': None, 'result': {'confidence': None, 'language': None}}) + def test_langid_api_post(self): response = self.client.post( '/text/langid/',