still testing

This commit is contained in:
Romain Dorgueil
2016-12-26 08:57:39 +01:00
parent 1fbd43a94d
commit 8903e1d386
5 changed files with 85 additions and 2 deletions

9
bonobo/core/plugins.py Normal file
View File

@ -0,0 +1,9 @@
class Plugin:
def initialize(self, context):
pass
def run(self, context):
pass
def finalize(self, context):
pass

View File

@ -20,6 +20,8 @@ import blessings
import psutil
from bonobo.core.plugins import Plugin
t = blessings.Terminal()
@ -34,7 +36,7 @@ def memory_usage():
# 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
movements, or a non tty (pipe, file, ...). The features are adapted to terminal capabilities.

View File

@ -3,7 +3,7 @@ from IPython.core.display import display
from bonobo.ext.jupyter.widget import BonoboWidget
class JupyterOutputPlugin:
class JupyterOutputPlugin(Plugin):
def initialize(self, context):
self.widget = BonoboWidget()
display(self.widget)

35
tests/ext/test_ods.py Normal file
View 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
View 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'})