Tuning ValueHolder as I could not find better option to generate the double-underscore methods.

This commit is contained in:
Romain Dorgueil
2017-05-21 19:22:45 +02:00
parent 2b3ef05fac
commit 4d9b579a60
12 changed files with 177 additions and 117 deletions

View File

@ -1,7 +1,8 @@
from unittest.mock import MagicMock
import bonobo
import pytest
import bonobo
from bonobo.config.processors import ContextCurrifier
from bonobo.constants import NOT_MODIFIED
@ -10,14 +11,12 @@ def test_count():
with pytest.raises(TypeError):
bonobo.count()
context = MagicMock()
currified = ContextCurrifier(bonobo.count)
currified.setup(context)
for i in range(42):
currified()
currified.teardown()
with ContextCurrifier(bonobo.count).as_contextmanager(context) as stack:
for i in range(42):
stack()
assert len(context.method_calls) == 1
bag = context.send.call_args[0][0]
@ -32,18 +31,31 @@ def test_identity():
def test_limit():
limit = bonobo.Limit(2)
results = []
for i in range(42):
results += list(limit())
context, results = MagicMock(), []
with ContextCurrifier(bonobo.Limit(2)).as_contextmanager(context) as stack:
for i in range(42):
results += list(stack())
assert results == [NOT_MODIFIED] * 2
def test_limit_not_there():
limit = bonobo.Limit(42)
results = []
for i in range(10):
results += list(limit())
context, results = MagicMock(), []
with ContextCurrifier(bonobo.Limit(42)).as_contextmanager(context) as stack:
for i in range(10):
results += list(stack())
assert results == [NOT_MODIFIED] * 10
def test_limit_default():
context, results = MagicMock(), []
with ContextCurrifier(bonobo.Limit()).as_contextmanager(context) as stack:
for i in range(20):
results += list(stack())
assert results == [NOT_MODIFIED] * 10