Skip to content

Commit 7706fd5

Browse files
author
fkromer
committed
add: missing TestData tests / change: TestData cleanup
1 parent ded7051 commit 7706fd5

1 file changed

Lines changed: 19 additions & 18 deletions

File tree

test_observer.py

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44

55
if sys.version_info < (2, 7):
66
import unittest2 as unittest
7+
78
else:
89
import unittest
9-
10+
11+
from unittest.mock import patch
1012

1113
class TestSubject(unittest.TestCase):
1214

@@ -39,27 +41,26 @@ class TestData(unittest.TestCase):
3941

4042
@classmethod
4143
def setUpClass(self):
42-
dec_obs = DecimalViewer()
43-
hex_obs = HexViewer()
44-
self.sub1 = Data('Data 1')
45-
self.sub2 = Data('Data 2')
44+
self.dec_obs = DecimalViewer()
45+
self.hex_obs = HexViewer()
46+
self.sub = Data('Data')
4647
#inherited behavior already tested with TestSubject
47-
self.sub1.attach(dec_obs)
48-
self.sub1.attach(hex_obs)
49-
self.sub2.attach(dec_obs)
50-
self.sub2.attach(hex_obs)
48+
self.sub.attach(self.dec_obs)
49+
self.sub.attach(self.hex_obs)
5150

52-
def setUp(self):
53-
self.output = StringIO()
54-
self.saved_stdout = sys.stdout
55-
sys.stdout = self.output
51+
def test_data_change_shall_notify_all_observers_once(self):
52+
with patch.object(self.dec_obs, 'update') as mock_dec_obs_update, patch.object(self.hex_obs, 'update') as mock_hex_obs_update:
53+
self.sub.data = 10
54+
self.assertEqual(mock_dec_obs_update.call_count, 1)
55+
self.assertEqual(mock_hex_obs_update.call_count, 1)
5656

57-
# def test_observers_shall_be_notified(self):
58-
# self.sub1.data = 10
57+
def test_data_value_shall_be_changeable(self):
58+
self.sub.data = 20
59+
self.assertEqual(self.sub._data, 20)
5960

60-
def tearDown(self):
61-
self.output.close()
62-
sys.stdout = self.saved_stdout
61+
def test_data_name_shall_be_changeable(self):
62+
self.sub.name = 'New Data Name'
63+
self.assertEqual(self.sub.name, 'New Data Name')
6364

6465
if __name__ == "__main__":
6566
unittest.main()

0 commit comments

Comments
 (0)