class TestViewCell(unittest.TestCase): def setUp(self): self.lc = LooseCell(value=0, key='a', type=int) self.vc = ViewCell( base=self.lc, get_transform=lambda x: x + 1, set_transform=lambda x: x - 1, key='b', type=int) def test_get_set(self): self.assertEqual(0, self.lc.get()) self.assertEqual(1, self.vc.get()) self.vc.set(2) self.assertEqual(1, self.lc.get()) self.assertEqual(2, self.vc.get()) self.lc.set(3) self.assertEqual(3, self.lc.get()) self.assertEqual(4, self.vc.get()) def test_subscription(self): fired = [] def f(): fired.append(self.vc.get()) self.vc.subscribe(f) self.lc.set(1) self.assertEqual([2], fired)