summaryrefslogtreecommitdiff
path: root/tests/unit/engines/pubmed.py
diff options
context:
space:
mode:
authorAdam Tauber <asciimoo@gmail.com>2017-11-01 21:27:57 +0100
committerGitHub <noreply@github.com>2017-11-01 21:27:57 +0100
commit3d50b0288dc2ba42baf550353f3fb5bee6462754 (patch)
tree3931e34b8501cd58db58cb651b0193ee46c23eb8 /tests/unit/engines/pubmed.py
parent6d28e9d6945b5510b3d861e20521554435a10f63 (diff)
parent5954a8e16a64a369072a7487f62b6396a451ae5f (diff)
Merge pull request #1075 from kvch/finish-jibe-b-engines
Finish PRs of @jibe-b: pubmed, oa_doi_rewrite, openaire, arxiv
Diffstat (limited to 'tests/unit/engines/pubmed.py')
-rw-r--r--tests/unit/engines/pubmed.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/unit/engines/pubmed.py b/tests/unit/engines/pubmed.py
new file mode 100644
index 000000000..370efe067
--- /dev/null
+++ b/tests/unit/engines/pubmed.py
@@ -0,0 +1,37 @@
+# -*- coding: utf-8 -*-
+from collections import defaultdict
+import mock
+from searx.engines import pubmed
+from searx.testing import SearxTestCase
+
+
+class TestPubmedEngine(SearxTestCase):
+
+ def test_request(self):
+ query = 'test_query'
+ dicto = defaultdict(dict)
+ dicto['pageno'] = 1
+ params = pubmed.request(query, dicto)
+ self.assertIn('url', params)
+ self.assertIn('eutils.ncbi.nlm.nih.gov/', params['url'])
+ self.assertIn('term', params['url'])
+
+ def test_response(self):
+ self.assertRaises(AttributeError, pubmed.response, None)
+ self.assertRaises(AttributeError, pubmed.response, [])
+ self.assertRaises(AttributeError, pubmed.response, '')
+ self.assertRaises(AttributeError, pubmed.response, '[]')
+
+ response = mock.Mock(text='<PubmedArticleSet></PubmedArticleSet>')
+ self.assertEqual(pubmed.response(response), [])
+
+ xml_mock = """<eSearchResult><Count>1</Count><RetMax>1</RetMax><RetStart>0</RetStart><IdList>
+<Id>1</Id>
+</IdList></eSearchResult>
+"""
+
+ response = mock.Mock(text=xml_mock.encode('utf-8'))
+ results = pubmed.response(response)
+ self.assertEqual(type(results), list)
+ self.assertEqual(len(results), 1)
+ self.assertEqual(results[0]['content'], 'No abstract is available for this publication.')