Skip to content

Commit

Permalink
added tests for generator cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
maxfischer2781 committed Feb 15, 2018
1 parent ff019bf commit 54d8d29
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions chainlet_unittests/test_interface/test_resources.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
from __future__ import absolute_import, division
import unittest

import chainlet
from chainlet.primitives import link, neutral, bundle

from chainlet_unittests.utility import Adder


class ClosableLink(link.ChainLink):
def __init__(self):
Expand All @@ -12,6 +15,13 @@ def close(self):
self.closed = True


@chainlet.genlet
def pingpong():
value = yield
while True:
value = yield value


class TestClose(unittest.TestCase):
"""Closing chainlets to release resources"""
def test_link(self):
Expand Down Expand Up @@ -65,6 +75,14 @@ def get_elements(test_chain):
for linklet in get_elements(chain_bundle):
self.assertTrue(linklet.close)

def test_generator(self):
generator_chain = Adder(1) >> pingpong() >> Adder(1)
for val in (-10, 0, 1, 3):
self.assertEqual(generator_chain.send(val), val + 2)
generator_chain.close()
with self.assertRaises(StopIteration):
generator_chain.send(1)


class TestContext(unittest.TestCase):
"""Context chainlets to manage resources"""
Expand Down Expand Up @@ -114,3 +132,10 @@ def get_elements(test_chain):
chain_bundle.close()
for linklet in get_elements(chain_bundle):
self.assertTrue(linklet.close)

def test_generator(self):
with Adder(1) >> pingpong() >> Adder(1) as generator_chain:
for val in (-10, 0, 1, 3):
self.assertEqual(generator_chain.send(val), val + 2)
with self.assertRaises(StopIteration):
generator_chain.send(1)

0 comments on commit 54d8d29

Please sign in to comment.