still testing
This commit is contained in:
9
bonobo/core/plugins.py
Normal file
9
bonobo/core/plugins.py
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
class Plugin:
|
||||||
|
def initialize(self, context):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def run(self, context):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def finalize(self, context):
|
||||||
|
pass
|
||||||
@ -20,6 +20,8 @@ import blessings
|
|||||||
|
|
||||||
import psutil
|
import psutil
|
||||||
|
|
||||||
|
from bonobo.core.plugins import Plugin
|
||||||
|
|
||||||
t = blessings.Terminal()
|
t = blessings.Terminal()
|
||||||
|
|
||||||
|
|
||||||
@ -34,7 +36,7 @@ def memory_usage():
|
|||||||
# return datetime.datetime.now() - harness._started_at
|
# return datetime.datetime.now() - harness._started_at
|
||||||
|
|
||||||
|
|
||||||
class ConsoleOutputPlugin:
|
class ConsoleOutputPlugin(Plugin):
|
||||||
"""
|
"""
|
||||||
Outputs status information to the connected stdout. Can be a TTY, with or without support for colors/cursor
|
Outputs status information to the connected stdout. Can be a TTY, with or without support for colors/cursor
|
||||||
movements, or a non tty (pipe, file, ...). The features are adapted to terminal capabilities.
|
movements, or a non tty (pipe, file, ...). The features are adapted to terminal capabilities.
|
||||||
|
|||||||
@ -3,7 +3,7 @@ from IPython.core.display import display
|
|||||||
from bonobo.ext.jupyter.widget import BonoboWidget
|
from bonobo.ext.jupyter.widget import BonoboWidget
|
||||||
|
|
||||||
|
|
||||||
class JupyterOutputPlugin:
|
class JupyterOutputPlugin(Plugin):
|
||||||
def initialize(self, context):
|
def initialize(self, context):
|
||||||
self.widget = BonoboWidget()
|
self.widget = BonoboWidget()
|
||||||
display(self.widget)
|
display(self.widget)
|
||||||
|
|||||||
35
tests/ext/test_ods.py
Normal file
35
tests/ext/test_ods.py
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
from mock import patch
|
||||||
|
|
||||||
|
from bonobo.ext.ods import extract_ods
|
||||||
|
|
||||||
|
|
||||||
|
class ResponseMock:
|
||||||
|
def __init__(self, json_value):
|
||||||
|
self.json_value = json_value
|
||||||
|
self.count = 0
|
||||||
|
|
||||||
|
def json(self):
|
||||||
|
if self.count:
|
||||||
|
return {}
|
||||||
|
else:
|
||||||
|
self.count += 1
|
||||||
|
return {'records': self.json_value, }
|
||||||
|
|
||||||
|
|
||||||
|
def test_read_from_opendatasoft_api():
|
||||||
|
extract = extract_ods('http://example.com/', 'test-a-set')
|
||||||
|
with patch(
|
||||||
|
'requests.get', return_value=ResponseMock([
|
||||||
|
{
|
||||||
|
'fields': {
|
||||||
|
'foo': 'bar'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'fields': {
|
||||||
|
'foo': 'zab'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
])):
|
||||||
|
for line in extract():
|
||||||
|
assert 'foo' in line
|
||||||
37
tests/io/test_json.py
Normal file
37
tests/io/test_json.py
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import pytest
|
||||||
|
|
||||||
|
from bonobo import to_json
|
||||||
|
from bonobo.util.lifecycle import get_initializer, get_finalizer
|
||||||
|
|
||||||
|
|
||||||
|
class ContextMock:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def test_write_json_to_file(tmpdir):
|
||||||
|
file = tmpdir.join('output.json')
|
||||||
|
json_writer = to_json(file)
|
||||||
|
context = ContextMock()
|
||||||
|
|
||||||
|
get_initializer(json_writer)(context)
|
||||||
|
json_writer(context, {'foo': 'bar'})
|
||||||
|
get_finalizer(json_writer)(context)
|
||||||
|
|
||||||
|
assert file.read() == '''[
|
||||||
|
{"foo": "bar"}
|
||||||
|
]'''
|
||||||
|
|
||||||
|
with pytest.raises(AttributeError):
|
||||||
|
getattr(context, 'fp')
|
||||||
|
|
||||||
|
with pytest.raises(AttributeError):
|
||||||
|
getattr(context, 'first')
|
||||||
|
|
||||||
|
|
||||||
|
def test_write_json_without_initializer_should_not_work(tmpdir):
|
||||||
|
file = tmpdir.join('output.json')
|
||||||
|
json_writer = to_json(file)
|
||||||
|
|
||||||
|
context = ContextMock()
|
||||||
|
with pytest.raises(AttributeError):
|
||||||
|
json_writer(context, {'foo': 'bar'})
|
||||||
Reference in New Issue
Block a user