mirror of
https://github.com/gsi-upm/senpy
synced 2024-12-22 13:08:13 +00:00
parent
1a582c0843
commit
603e086606
@ -13,7 +13,7 @@ from .. import models
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class SenpyPlugin(models.Plugin):
|
||||
class Plugin(models.Plugin):
|
||||
def __init__(self, info=None):
|
||||
"""
|
||||
Provides a canonical name for plugins and serves as base for other
|
||||
@ -24,7 +24,7 @@ class SenpyPlugin(models.Plugin):
|
||||
"information for the plugin."))
|
||||
logger.debug("Initialising {}".format(info))
|
||||
id = 'plugins/{}_{}'.format(info['name'], info['version'])
|
||||
super(SenpyPlugin, self).__init__(id=id, **info)
|
||||
super(Plugin, self).__init__(id=id, **info)
|
||||
self.is_activated = False
|
||||
|
||||
def get_folder(self):
|
||||
@ -37,7 +37,10 @@ class SenpyPlugin(models.Plugin):
|
||||
pass
|
||||
|
||||
|
||||
class AnalysisPlugin(SenpyPlugin):
|
||||
SenpyPlugin = Plugin
|
||||
|
||||
|
||||
class AnalysisPlugin(Plugin):
|
||||
|
||||
def analyse(self, *args, **kwargs):
|
||||
raise NotImplemented(
|
||||
@ -58,7 +61,7 @@ class AnalysisPlugin(SenpyPlugin):
|
||||
yield i
|
||||
|
||||
|
||||
class ConversionPlugin(SenpyPlugin):
|
||||
class ConversionPlugin(Plugin):
|
||||
pass
|
||||
|
||||
|
||||
|
@ -37,6 +37,9 @@
|
||||
"@type": "@id",
|
||||
"@container": "@set"
|
||||
},
|
||||
"plugins": {
|
||||
"@container": "@list"
|
||||
},
|
||||
"prov:wasGeneratedBy": {
|
||||
"@type": "@id"
|
||||
},
|
||||
|
@ -6,6 +6,7 @@
|
||||
"properties": {
|
||||
"plugins": {
|
||||
"type": "array",
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "plugin.json"
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
from senpy.plugins import SenpyPlugin
|
||||
from senpy.plugins import AnalysisPlugin
|
||||
from time import sleep
|
||||
|
||||
|
||||
class SleepPlugin(SenpyPlugin):
|
||||
class SleepPlugin(AnalysisPlugin):
|
||||
def activate(self, *args, **kwargs):
|
||||
sleep(self.timeout)
|
||||
|
||||
|
@ -11,8 +11,10 @@ from senpy.models import (Emotion,
|
||||
Entry,
|
||||
Error,
|
||||
Results,
|
||||
Sentiment)
|
||||
from senpy.plugins import SenpyPlugin
|
||||
Sentiment,
|
||||
Plugins,
|
||||
Plugin)
|
||||
from senpy import plugins
|
||||
from pprint import pprint
|
||||
|
||||
|
||||
@ -53,8 +55,8 @@ class ModelsTest(TestCase):
|
||||
assert (received["entries"][0]["nif:isString"] != "Not testing")
|
||||
|
||||
def test_id(self):
|
||||
''' Adding the id after creation should overwrite the automatic ID
|
||||
'''
|
||||
""" Adding the id after creation should overwrite the automatic ID
|
||||
"""
|
||||
r = Entry()
|
||||
j = r.jsonld()
|
||||
assert '@id' in j
|
||||
@ -94,8 +96,8 @@ class ModelsTest(TestCase):
|
||||
r.validate()
|
||||
|
||||
def test_plugins(self):
|
||||
self.assertRaises(Error, SenpyPlugin)
|
||||
p = SenpyPlugin({"name": "dummy", "version": 0})
|
||||
self.assertRaises(Error, plugins.Plugin)
|
||||
p = plugins.Plugin({"name": "dummy", "version": 0})
|
||||
c = p.jsonld()
|
||||
assert "info" not in c
|
||||
assert "repo" not in c
|
||||
@ -107,7 +109,7 @@ class ModelsTest(TestCase):
|
||||
def test_str(self):
|
||||
"""The string representation shouldn't include private variables"""
|
||||
r = Results()
|
||||
p = SenpyPlugin({"name": "STR test", "version": 0})
|
||||
p = plugins.Plugin({"name": "STR test", "version": 0})
|
||||
p._testing = 0
|
||||
s = str(p)
|
||||
assert "_testing" not in s
|
||||
@ -143,3 +145,15 @@ class ModelsTest(TestCase):
|
||||
print(t)
|
||||
g = rdflib.Graph().parse(data=t, format='turtle')
|
||||
assert len(g) == len(triples)
|
||||
|
||||
def test_single_plugin(self):
|
||||
"""A response with a single plugin should still return a list"""
|
||||
plugs = Plugins()
|
||||
for i in range(10):
|
||||
p = Plugin({'id': str(i),
|
||||
'version': 0,
|
||||
'description': 'dummy'})
|
||||
plugs.plugins.append(p)
|
||||
assert isinstance(plugs.plugins, list)
|
||||
js = plugs.jsonld()
|
||||
assert isinstance(js['plugins'], list)
|
||||
|
Loading…
Reference in New Issue
Block a user