def test_dictproperty_is_none(): from kivy.properties import DictProperty d1 = DictProperty(None) d1.set_name(wid, 'd1') d1.link_eagerly(wid) assert d1.get(wid) is None d2 = DictProperty({'a': 1, 'b': 2}, allownone=True) d2.set_name(wid, 'd2') d2.link_eagerly(wid) d2.set(wid, None) assert d2.get(wid) is None
def test_dictcheck(self, set_name): from kivy.properties import DictProperty a = DictProperty() if set_name: a.set_name(wid, 'a') a.link_eagerly(wid) else: a.link(wid, 'a') a.link_deps(wid, 'a') self.assertEqual(a.get(wid), {}) a.set(wid, {'foo': 'bar'}) self.assertEqual(a.get(wid), {'foo': 'bar'})
def test_dict(self, set_name): from kivy.properties import DictProperty x = DictProperty() if set_name: x.set_name(wid, 'x') x.link_eagerly(wid) else: x.link(wid, 'x') x.link_deps(wid, 'x') # test observer global observe_called observe_called = 0 def observe(obj, value): global observe_called observe_called = 1 x.bind(wid, observe) observe_called = 0 x.get(wid)['toto'] = 1 self.assertEqual(observe_called, 1) observe_called = 0 x.get(wid)['toto'] = 2 self.assertEqual(observe_called, 1) observe_called = 0 x.get(wid)['youupi'] = 2 self.assertEqual(observe_called, 1) observe_called = 0 del x.get(wid)['toto'] self.assertEqual(observe_called, 1) observe_called = 0 x.get(wid).update({'bleh': 5}) self.assertEqual(observe_called, 1)