500
500
variable.get()["b"] = 2
501
501
self.assertEquals(variable.get(), {"a": 1, "b": 2})
503
def test_pickle_events(self):
504
event = EventSystem(marker)
506
variable = PickleVariable(event=event, value_factory=list)
509
def changed(owner, variable, old_value, new_value, fromdb):
510
changes.append((variable, old_value, new_value, fromdb))
512
event.hook("changed", changed)
514
variable.checkpoint()
518
self.assertEquals(changes, [])
522
self.assertEquals(lst, [])
523
self.assertEquals(changes, [])
527
self.assertEquals(changes, [])
531
self.assertEquals(changes, [(variable, None, ["a"], False)])
535
event.emit("object-deleted")
536
self.assertEquals(changes, [(variable, None, ["a"], False)])
539
class ListVariableTest(TestHelper):
541
def test_get_set(self):
543
l_dump = pickle.dumps(l, -1)
545
variable = ListVariable(IntVariable)
548
self.assertEquals(variable.get(), l)
549
self.assertEquals(variable.get(to_db=True),
550
[IntVariable(1), IntVariable(2)])
552
variable.set([1.1, 2.2], from_db=True)
553
self.assertEquals(variable.get(), l)
554
self.assertEquals(variable.get(to_db=True),
555
[IntVariable(1), IntVariable(2)])
557
self.assertEquals(variable.get_state(), (Undef, l_dump))
560
variable.set_state((Undef, l_dump))
561
self.assertEquals(variable.get(), l)
563
variable.get().append(3)
564
self.assertEquals(variable.get(), [1, 2, 3])
566
def test_list_events(self):
567
event = EventSystem(marker)
569
variable = ListVariable(StrVariable, event=event, value_factory=list)
572
def changed(owner, variable, old_value, new_value, fromdb):
573
changes.append((variable, old_value, new_value, fromdb))
575
event.hook("changed", changed)
577
variable.checkpoint()
581
self.assertEquals(changes, [])
585
self.assertEquals(lst, [])
586
self.assertEquals(changes, [])
590
self.assertEquals(changes, [])
594
self.assertEquals(changes, [(variable, None, ["a"], False)])
598
event.emit("object-deleted")
599
self.assertEquals(changes, [(variable, None, ["a"], False)])