Skip to content

Commit 092e4ac

Browse files
authored
Merge pull request faif#176 from 0--key/dev
Test suite extension
2 parents af654f6 + 01d2f8a commit 092e4ac

File tree

3 files changed

+98
-14
lines changed

3 files changed

+98
-14
lines changed

creational/pool.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,26 @@
66
"""
77

88

9-
class QueueObject():
9+
class ObjectPool():
1010

1111
def __init__(self, queue, auto_get=False):
1212
self._queue = queue
13-
self.object = self._queue.get() if auto_get else None
13+
self.item = self._queue.get() if auto_get else None
1414

1515
def __enter__(self):
16-
if self.object is None:
17-
self.object = self._queue.get()
18-
return self.object
16+
if self.item is None:
17+
self.item = self._queue.get()
18+
return self.item
1919

2020
def __exit__(self, Type, value, traceback):
21-
if self.object is not None:
22-
self._queue.put(self.object)
23-
self.object = None
21+
if self.item is not None:
22+
self._queue.put(self.item)
23+
self.item = None
2424

2525
def __del__(self):
26-
if self.object is not None:
27-
self._queue.put(self.object)
28-
self.object = None
26+
if self.item is not None:
27+
self._queue.put(self.item)
28+
self.item = None
2929

3030

3131
def main():
@@ -35,13 +35,13 @@ def main():
3535
import Queue as queue
3636

3737
def test_object(queue):
38-
queue_object = QueueObject(queue, True)
39-
print('Inside func: {}'.format(queue_object.object))
38+
pool = ObjectPool(queue, True)
39+
print('Inside func: {}'.format(pool.item))
4040

4141
sample_queue = queue.Queue()
4242

4343
sample_queue.put('yam')
44-
with QueueObject(sample_queue) as obj:
44+
with ObjectPool(sample_queue) as obj:
4545
print('Inside with: {}'.format(obj))
4646
print('Outside with: {}'.format(sample_queue.get()))
4747

tests/test_lazy.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
import unittest
4+
from creational.lazy_evaluation import Person
5+
6+
7+
class TestDynamicExpanding(unittest.TestCase):
8+
9+
def setUp(self):
10+
self.John = Person('John', 'Coder')
11+
12+
def test_innate_properties(self):
13+
self.assertDictEqual({'name': 'John', 'occupation': 'Coder'},
14+
self.John.__dict__)
15+
16+
def test_relatives_not_in_properties(self):
17+
self.assertNotIn('relatives', self.John.__dict__)
18+
19+
def test_extended_properties(self):
20+
print("John's relatives: {0}".format(self.John.relatives))
21+
self.assertDictEqual({'name': 'John', 'occupation': 'Coder',
22+
'relatives': 'Many relatives.'},
23+
self.John.__dict__)
24+
25+
def test_relatives_after_access(self):
26+
print("John's relatives: {0}".format(self.John.relatives))
27+
self.assertIn('relatives', self.John.__dict__)

tests/test_pool.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
import unittest
4+
try:
5+
import queue
6+
except ImportError: # python 2.x compatibility
7+
import Queue as queue
8+
from creational.pool import ObjectPool
9+
10+
11+
class TestPool(unittest.TestCase):
12+
13+
def setUp(self):
14+
self.sample_queue = queue.Queue()
15+
self.sample_queue.put('first')
16+
self.sample_queue.put('second')
17+
18+
def test_items_recoil(self):
19+
with ObjectPool(self.sample_queue, True) as pool:
20+
self.assertEqual(pool, 'first')
21+
self.assertTrue(self.sample_queue.get() == 'second')
22+
self.assertFalse(self.sample_queue.empty())
23+
self.assertTrue(self.sample_queue.get() == 'first')
24+
self.assertTrue(self.sample_queue.empty())
25+
26+
def test_frozen_pool(self):
27+
with ObjectPool(self.sample_queue) as pool:
28+
self.assertEqual(pool, 'first')
29+
self.assertEqual(pool, 'first')
30+
self.assertTrue(self.sample_queue.get() == 'second')
31+
self.assertFalse(self.sample_queue.empty())
32+
self.assertTrue(self.sample_queue.get() == 'first')
33+
self.assertTrue(self.sample_queue.empty())
34+
35+
36+
class TestNaitivePool(unittest.TestCase):
37+
38+
"""def test_object(queue):
39+
queue_object = QueueObject(queue, True)
40+
print('Inside func: {}'.format(queue_object.object))"""
41+
42+
def test_pool_behavior_with_single_object_inside(self):
43+
sample_queue = queue.Queue()
44+
sample_queue.put('yam')
45+
with ObjectPool(sample_queue) as obj:
46+
# print('Inside with: {}'.format(obj))
47+
self.assertEqual(obj, 'yam')
48+
self.assertFalse(sample_queue.empty())
49+
self.assertTrue(sample_queue.get() == 'yam')
50+
self.assertTrue(sample_queue.empty())
51+
52+
53+
# sample_queue.put('sam')
54+
# test_object(sample_queue)
55+
# print('Outside func: {}'.format(sample_queue.get()))
56+
57+
# if not sample_queue.empty():

0 commit comments

Comments
 (0)