def test_components_disjoint(self): d = merge_devices([ Device(components={'a': ExportedState()}), Device(components={'b': ExportedState()}) ]) self.assertEqual(d, IDevice(d)) self.assertEqual(sorted(d.get_components().keys()), ['a', 'b'])
def test_components_conflict(self): d = merge_devices([ Device(components={'a': ExportedState()}), Device(components={'a': ExportedState()}) ]) self.assertEqual(d, IDevice(d)) self.assertEqual(sorted(d.get_components().keys()), ['0-a', '1-a'])
def test_collection_delete(self): d = CellDict({'a': ExportedState()}, dynamic=True) self.setUpForObject(CollectionState(d)) self.assertEqual( self.getUpdates(), transform_for_json([ ['register_block', 1, 'urlroot', []], [ 'register_cell', 2, 'urlroot/a', self.object.state()['a'].description() ], ['register_block', 3, 'urlroot/a', []], ['value', 3, {}], ['value', 2, 3], ['value', 1, { 'a': 2 }], ['value', 0, 1], ])) self.assertEqual(self.getUpdates(), []) del d['a'] self.assertEqual(self.getUpdates(), [ ['value', 1, {}], ['delete', 2], ['delete', 3], ])
def test_subscription(self): o = BlockCellSpecimen(self.obj_value) st = CellSubscriptionTester(o.state()['block']) new = ExportedState() o.replace_block(new) st.expect_now(new) st.unsubscribe() o.replace_block(self.obj_value) st.advance() # check for unwanted callbacks
def test_persistence_args(self): o = unserialize_exported_state( ctor=ValueAndBlockSpecimen, kwargs={u'block': ValueAndBlockSpecimen(ExportedState())}, state={ u'value': 1, }) self.assertEqual(o.state_to_json(), { u'value': 1, u'block': { u'value': 0, u'block': {}, }, })
def test_persistence_basic(self): o = ValueAndBlockSpecimen(ValueAndBlockSpecimen(ExportedState())) self.assertEqual(o.state_to_json(), { u'value': 0, u'block': { u'value': 0, u'block': {}, }, }) o.state_from_json({ u'value': 1, u'block': { u'value': 2, u'block': {}, }, }) self.assertEqual(o.state_to_json(), { u'value': 1, u'block': { u'value': 2, u'block': {}, }, })
def __init__(self): self.__block = ExportedState()
def state_insert(self, key, desc): if desc['fail']: raise ValueError('Should be handled') else: self.table[key] = ExportedState() self.table[key].state_from_json(desc)
def setUp(self): self.obj_value = ExportedState() self.object = BlockCellSpecimen(self.obj_value)
def setUp(self): self.st = SubscriptionTester() self.o = ValueAndBlockSpecimen(ValueAndBlockSpecimen(ExportedState())) self.calls = 0 self.d = PersistenceChangeDetector(self.o, self.__callback, subscription_context=self.st.context)