1
0
mirror of https://github.com/gsi-upm/senpy synced 2024-11-21 15:52:28 +00:00
This commit is contained in:
J. Fernando Sánchez 2018-10-30 15:15:37 +01:00
parent 6dd4a44924
commit c939b095de
5 changed files with 42 additions and 10 deletions

View File

@ -69,7 +69,7 @@ def encoded_url(url=None, base=None):
if request.method == 'GET': if request.method == 'GET':
url = request.full_path[1:] # Remove the first slash url = request.full_path[1:] # Remove the first slash
else: else:
hash(frozenset(request.form.params().items())) hash(frozenset(request.parameters.items()))
code = 'hash:{}'.format(hash) code = 'hash:{}'.format(hash)
code = code or base64.urlsafe_b64encode(url.encode()).decode() code = code or base64.urlsafe_b64encode(url.encode()).decode()

View File

@ -15,9 +15,12 @@ try:
from gsitk.datasets.datasets import DatasetManager from gsitk.datasets.datasets import DatasetManager
from gsitk.evaluation.evaluation import Evaluation as Eval from gsitk.evaluation.evaluation import Evaluation as Eval
from sklearn.pipeline import Pipeline from sklearn.pipeline import Pipeline
GSITK_AVAILABLE = True import pkg_resources
GSITK_VERSION = pkg_resources.get_distribution("gsitk").version.split()
GSITK_AVAILABLE = GSITK_VERSION > (0, 1, 9, 1) # Earlier versions have a bug
modules = locals() modules = locals()
except ImportError: except ImportError:
logger.warn(IMPORTMSG) logger.warning(IMPORTMSG)
GSITK_AVAILABLE = False GSITK_AVAILABLE = False
GSITK_VERSION = ()
DatasetManager = Eval = Pipeline = raise_exception DatasetManager = Eval = Pipeline = raise_exception

View File

@ -67,6 +67,20 @@ class BlueprintsTest(TestCase):
logging.debug("Got response: %s", js) logging.debug("Got response: %s", js)
assert "@context" in js assert "@context" in js
assert "entries" in js assert "entries" in js
assert len(js['analysis']) == 1
def test_analysis_post(self):
"""
The results for a POST request should be the same as for a GET request.
"""
resp = self.client.post("/api/", data={'i': 'My aloha mohame',
'with_parameters': True})
self.assertCode(resp, 200)
js = parse_resp(resp)
logging.debug("Got response: %s", js)
assert "@context" in js
assert "entries" in js
assert len(js['analysis']) == 1
def test_analysis_extra(self): def test_analysis_extra(self):
""" """

View File

@ -24,6 +24,19 @@ class ModelsTest(TestCase):
except Error: except Error:
pass pass
def test_client_post(self):
endpoint = 'http://dummy/'
client = Client(endpoint)
with patch_requests('http://dummy/', Results()):
resp = client.analyse('hello')
assert isinstance(resp, Results)
with patch_requests('http://dummy/', Error('Nothing'), method='POST'):
try:
client.analyse(input='hello', method='POST', algorithm='NONEXISTENT')
raise Exception('Exceptions should be raised. This is not golang')
except Error:
pass
def test_plugins(self): def test_plugins(self):
endpoint = 'http://dummy/' endpoint = 'http://dummy/'
client = Client(endpoint) client = Client(endpoint)

View File

@ -1,15 +1,15 @@
#!/bin/env python #!/bin/env python
import os import os
import sys
import pickle import pickle
import shutil import shutil
import tempfile import tempfile
from unittest import TestCase from unittest import TestCase, skipIf
from senpy.models import Results, Entry, EmotionSet, Emotion, Plugins from senpy.models import Results, Entry, EmotionSet, Emotion, Plugins
from senpy import plugins from senpy import plugins
from senpy.plugins.conversion.emotion.centroids import CentroidConversion from senpy.plugins.conversion.emotion.centroids import CentroidConversion
from senpy.gsitk_compat import GSITK_AVAILABLE
import pandas as pd import pandas as pd
@ -346,13 +346,15 @@ class PluginsTest(TestCase):
smart_metrics = results[0].metrics[0] smart_metrics = results[0].metrics[0]
assert abs(smart_metrics['accuracy'] - 1) < 0.01 assert abs(smart_metrics['accuracy'] - 1) < 0.01
@skipIf(not GSITK_AVAILABLE, "GSITK is not available")
def test_evaluation(self): def test_evaluation(self):
if sys.version_info < (3, 0): self._test_evaluation()
with self.assertRaises(Exception) as context:
self._test_evaluation() @skipIf(GSITK_AVAILABLE, "GSITK is available")
self.assertTrue('GSITK ' in str(context.exception)) def test_evaluation_unavailable(self):
else: with self.assertRaises(Exception) as context:
self._test_evaluation() self._test_evaluation()
self.assertTrue('GSITK ' in str(context.exception))
def make_mini_test(fpath): def make_mini_test(fpath):