def test_dynamic_prop(self): s = conf.Settings() s.add_config({ "A": 3, "B": conf.prop_dynamic(lambda x: x.A + 10), }) self.assertEqual(13, s.B) x1 = s.add_config({"A": 5}) self.assertEqual(15, s.B) s.remove_config(x1) self.assertEqual(13, s.B)
def test_magic_props(self): zcalcs = [0] def calcz(): zcalcs[0] += 1 return 33 s = conf.Settings() s.add_config({ "A": 3, "B": conf.prop_dynamic(lambda x: x.A + 10), "Z": conf.prop_lazy(calcz), }) self.assertEqual(33, s.Z) self.assertEqual(33, s.Z) self.assertEqual(33, s.Z) self.assertEqual(1, zcalcs[0])