コード例 #1
0
 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'])
コード例 #2
0
 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'])
コード例 #3
0
    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],
        ])
コード例 #4
0
ファイル: test_values.py プロジェクト: StrangeAnimal/shinysdr
 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
コード例 #5
0
ファイル: test_values.py プロジェクト: StrangeAnimal/shinysdr
 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': {},
         },
     })
コード例 #6
0
ファイル: test_values.py プロジェクト: StrangeAnimal/shinysdr
 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': {},
         },
     })
コード例 #7
0
ファイル: test_values.py プロジェクト: StrangeAnimal/shinysdr
 def __init__(self):
     self.__block = ExportedState()
コード例 #8
0
ファイル: test_values.py プロジェクト: StrangeAnimal/shinysdr
 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)
コード例 #9
0
ファイル: test_values.py プロジェクト: StrangeAnimal/shinysdr
 def setUp(self):
     self.obj_value = ExportedState()
     self.object = BlockCellSpecimen(self.obj_value)
コード例 #10
0
 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)