mirror of
https://github.com/gsi-upm/senpy
synced 2024-12-22 04:58:12 +00:00
Adapt to new mocking of requests
This commit is contained in:
parent
9355d27e71
commit
9dbe22b81f
@ -1 +1 @@
|
||||
from gsiupm/senpy:0.10.9-python2.7
|
||||
from gsiupm/senpy:0.11.0-python2.7
|
@ -11,13 +11,6 @@ from senpy.plugins import SentimentPlugin
|
||||
from senpy.models import Results, Entry, Entity, Topic, Sentiment, Error
|
||||
from senpy.utils import check_template
|
||||
|
||||
from mocked_request import mocked_requests_post
|
||||
|
||||
try:
|
||||
from unittest import mock
|
||||
except ImportError:
|
||||
import mock
|
||||
|
||||
|
||||
class MeaningCloudPlugin(SentimentPlugin):
|
||||
'''
|
||||
@ -116,8 +109,8 @@ class MeaningCloudPlugin(SentimentPlugin):
|
||||
marl__polarityValue=polarityValue,
|
||||
marl__aggregatesOpinion=agg_opinion.get('id'),
|
||||
nif__anchorOf=nopinion.get('text', None),
|
||||
nif__beginIndex=nopinion.get('inip', None),
|
||||
nif__endIndex=nopinion.get('endp', None))
|
||||
nif__beginIndex=int(nopinion.get('inip', None)),
|
||||
nif__endIndex=int(nopinion.get('endp', None)))
|
||||
count += 1
|
||||
opinion.prov(self)
|
||||
entry.sentiments.append(opinion)
|
||||
@ -131,8 +124,8 @@ class MeaningCloudPlugin(SentimentPlugin):
|
||||
itsrdf__taIdentRef="http://{}dbpedia.org/resource/{}".format(
|
||||
mapper[lang], resource),
|
||||
nif__anchorOf=sent_entity.get('form', None),
|
||||
nif__beginIndex=sent_entity['variant_list'][0].get('inip', None),
|
||||
nif__endIndex=sent_entity['variant_list'][0].get('endp', None))
|
||||
nif__beginIndex=int(sent_entity['variant_list'][0].get('inip', None)),
|
||||
nif__endIndex=int(sent_entity['variant_list'][0].get('endp', None)))
|
||||
sementity = sent_entity['sementity'].get('type', None).split(">")[-1]
|
||||
entity['@type'] = "ODENTITY_{}".format(sementity)
|
||||
entity.prov(self)
|
||||
@ -149,33 +142,105 @@ class MeaningCloudPlugin(SentimentPlugin):
|
||||
entry.topics.append(concept)
|
||||
yield entry
|
||||
|
||||
@mock.patch('requests.post', side_effect=mocked_requests_post)
|
||||
def test(self, *args, **kwargs):
|
||||
results = list()
|
||||
params = {'algo': 'sentiment-meaningCloud',
|
||||
'intype': 'direct',
|
||||
'expanded-jsonld': 0,
|
||||
'informat': 'text',
|
||||
'prefix': '',
|
||||
'plugin_type': 'analysisPlugin',
|
||||
'urischeme': 'RFC5147String',
|
||||
'outformat': 'json-ld',
|
||||
'i': 'Hello World',
|
||||
'input': 'Hello World',
|
||||
'conversion': 'full',
|
||||
'language': 'en',
|
||||
'apikey': '00000',
|
||||
'algorithm': 'sentiment-meaningCloud'}
|
||||
res = next(self.analyse_entry(Entry(nif__isString="Hello World Obama"), params))
|
||||
test_cases = [
|
||||
{
|
||||
'params': {
|
||||
'algo': 'sentiment-meaningCloud',
|
||||
'intype': 'direct',
|
||||
'expanded-jsonld': 0,
|
||||
'informat': 'text',
|
||||
'prefix': '',
|
||||
'plugin_type': 'analysisPlugin',
|
||||
'urischeme': 'RFC5147String',
|
||||
'outformat': 'json-ld',
|
||||
'conversion': 'full',
|
||||
'language': 'en',
|
||||
'apikey': '00000',
|
||||
'algorithm': 'sentiment-meaningCloud'
|
||||
},
|
||||
'input': 'Hello World Obama',
|
||||
'expected': {
|
||||
'sentiments': [
|
||||
{'marl:hasPolarity': 'marl:Neutral'}],
|
||||
'entities': [
|
||||
{'itsrdf:taIdentRef': 'http://dbpedia.org/resource/Obama'}],
|
||||
'topics': [
|
||||
{'fam:topic-reference': 'http://dbpedia.org/resource/Astronomy'}]
|
||||
},
|
||||
'responses': [
|
||||
{
|
||||
'url': 'http://api.meaningcloud.com/sentiment-2.1',
|
||||
'method': 'POST',
|
||||
'json': {
|
||||
'model': 'general_en',
|
||||
'sentence_list': [{
|
||||
'text':
|
||||
'Hello World',
|
||||
'endp':
|
||||
'10',
|
||||
'inip':
|
||||
'0',
|
||||
'segment_list': [{
|
||||
'text':
|
||||
'Hello World',
|
||||
'segment_type':
|
||||
'secondary',
|
||||
'confidence':
|
||||
'100',
|
||||
'inip':
|
||||
'0',
|
||||
'agreement':
|
||||
'AGREEMENT',
|
||||
'endp':
|
||||
'10',
|
||||
'polarity_term_list': [],
|
||||
'score_tag':
|
||||
'NONE'
|
||||
}],
|
||||
'score_tag':
|
||||
'NONE',
|
||||
}],
|
||||
'score_tag':
|
||||
'NONE'
|
||||
}
|
||||
}, {
|
||||
'url': 'http://api.meaningcloud.com/topics-2.0',
|
||||
'method': 'POST',
|
||||
'json': {
|
||||
'entity_list': [{
|
||||
'form':
|
||||
'Obama',
|
||||
'id':
|
||||
'__1265958475430276310',
|
||||
'variant_list': [{
|
||||
'endp': '16',
|
||||
'form': 'Obama',
|
||||
'inip': '12'
|
||||
}],
|
||||
'sementity': {
|
||||
'fiction': 'nonfiction',
|
||||
'confidence': 'uncertain',
|
||||
'class': 'instance',
|
||||
'type': 'Top>Person'
|
||||
}
|
||||
}],
|
||||
'concept_list': [{
|
||||
'form':
|
||||
'world',
|
||||
'id':
|
||||
'5c053cd39d',
|
||||
'relevance':
|
||||
'100',
|
||||
'semtheme_list': [{
|
||||
'id': 'ODTHEME_ASTRONOMY',
|
||||
'type': 'Top>NaturalSciences>Astronomy'
|
||||
}]
|
||||
}],
|
||||
}
|
||||
}]
|
||||
}
|
||||
]
|
||||
|
||||
check_template(res,
|
||||
{'sentiments': [
|
||||
{'marl:hasPolarity': 'marl:Neutral'}],
|
||||
'entities': [
|
||||
{'itsrdf:taIdentRef': 'http://dbpedia.org/resource/Obama'}],
|
||||
'topics': [
|
||||
{'fam:topic-reference': 'http://dbpedia.org/resource/Astronomy'}]
|
||||
})
|
||||
|
||||
if __name__ == '__main__':
|
||||
from senpy import easy_test
|
||||
|
@ -1,76 +0,0 @@
|
||||
def mocked_requests_post(*args, **kwargs):
|
||||
class MockResponse:
|
||||
def __init__(self, json_data, status_code):
|
||||
self.json_data = json_data
|
||||
self.status_code = status_code
|
||||
|
||||
def json(self):
|
||||
return self.json_data
|
||||
|
||||
if args[0] == 'http://api.meaningcloud.com/sentiment-2.1':
|
||||
return MockResponse({
|
||||
'model': 'general_en',
|
||||
'sentence_list': [{
|
||||
'text':
|
||||
'Hello World',
|
||||
'endp':
|
||||
'10',
|
||||
'inip':
|
||||
'0',
|
||||
'segment_list': [{
|
||||
'text':
|
||||
'Hello World',
|
||||
'segment_type':
|
||||
'secondary',
|
||||
'confidence':
|
||||
'100',
|
||||
'inip':
|
||||
'0',
|
||||
'agreement':
|
||||
'AGREEMENT',
|
||||
'endp':
|
||||
'10',
|
||||
'polarity_term_list': [],
|
||||
'score_tag':
|
||||
'NONE'
|
||||
}],
|
||||
'score_tag':
|
||||
'NONE',
|
||||
}],
|
||||
'score_tag':
|
||||
'NONE'
|
||||
}, 200)
|
||||
elif args[0] == 'http://api.meaningcloud.com/topics-2.0':
|
||||
|
||||
return MockResponse({
|
||||
'entity_list': [{
|
||||
'form':
|
||||
'Obama',
|
||||
'id':
|
||||
'__1265958475430276310',
|
||||
'variant_list': [{
|
||||
'endp': '16',
|
||||
'form': 'Obama',
|
||||
'inip': '12'
|
||||
}],
|
||||
'sementity': {
|
||||
'fiction': 'nonfiction',
|
||||
'confidence': 'uncertain',
|
||||
'class': 'instance',
|
||||
'type': 'Top>Person'
|
||||
}
|
||||
}],
|
||||
'concept_list': [{
|
||||
'form':
|
||||
'world',
|
||||
'id':
|
||||
'5c053cd39d',
|
||||
'relevance':
|
||||
'100',
|
||||
'semtheme_list': [{
|
||||
'id': 'ODTHEME_ASTRONOMY',
|
||||
'type': 'Top>NaturalSciences>Astronomy'
|
||||
}]
|
||||
}],
|
||||
}, 200)
|
||||
return MockResponse(None, 404)
|
Loading…
Reference in New Issue
Block a user