2019-07-17 14:29:30 +00:00
|
|
|
#
|
|
|
|
# Copyright 2014 Grupo de Sistemas Inteligentes (GSI) DIT, UPM
|
|
|
|
#
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
# You may obtain a copy of the License at
|
|
|
|
#
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
|
|
|
#
|
|
|
|
|
2017-02-08 20:55:17 +00:00
|
|
|
from unittest import TestCase
|
2017-04-07 16:20:38 +00:00
|
|
|
|
2018-06-15 14:47:48 +00:00
|
|
|
from senpy.testing import patch_requests
|
2017-02-08 20:55:17 +00:00
|
|
|
from senpy.client import Client
|
2024-12-12 23:01:27 +00:00
|
|
|
from senpy.models import Results, Plugins
|
|
|
|
from senpy.errors import Error
|
2018-01-01 12:13:17 +00:00
|
|
|
from senpy.plugins import AnalysisPlugin
|
2017-02-08 20:55:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
class ModelsTest(TestCase):
|
|
|
|
def setUp(self):
|
|
|
|
self.host = '0.0.0.0'
|
|
|
|
self.port = 5000
|
|
|
|
|
|
|
|
def test_client(self):
|
|
|
|
endpoint = 'http://dummy/'
|
|
|
|
client = Client(endpoint)
|
2018-07-23 17:07:04 +00:00
|
|
|
with patch_requests('http://dummy/', Results()):
|
2017-02-08 20:55:17 +00:00
|
|
|
resp = client.analyse('hello')
|
|
|
|
assert isinstance(resp, Results)
|
2018-07-23 17:07:04 +00:00
|
|
|
with patch_requests('http://dummy/', Error('Nothing')):
|
2017-02-28 18:38:01 +00:00
|
|
|
try:
|
|
|
|
client.analyse(input='hello', algorithm='NONEXISTENT')
|
|
|
|
raise Exception('Exceptions should be raised. This is not golang')
|
|
|
|
except Error:
|
|
|
|
pass
|
2017-04-07 16:20:38 +00:00
|
|
|
|
2018-10-30 14:15:37 +00:00
|
|
|
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
|
|
|
|
|
2017-04-07 16:20:38 +00:00
|
|
|
def test_plugins(self):
|
|
|
|
endpoint = 'http://dummy/'
|
|
|
|
client = Client(endpoint)
|
|
|
|
plugins = Plugins()
|
|
|
|
p1 = AnalysisPlugin({'name': 'AnalysisP1', 'version': 0, 'description': 'No'})
|
|
|
|
plugins.plugins = [p1, ]
|
2018-07-23 17:07:04 +00:00
|
|
|
with patch_requests('http://dummy/plugins', plugins):
|
2017-04-07 16:20:38 +00:00
|
|
|
response = client.plugins()
|
|
|
|
assert isinstance(response, dict)
|
|
|
|
assert len(response) == 1
|
|
|
|
assert "AnalysisP1" in response
|