class TestBlockItem(unittest.TestCase): def setUp(self): ref = MagicMock() BlockItem.items.clear() self.item = BlockItem(("endpoint", ), ref) def test_ref_children(self): self.item.ref = dict(a=MagicMock(spec=Method), b=MagicMock(spec=Method), c=MagicMock(spec=Attribute)) assert self.item.ref_children() == 3 def make_grouped_attr(self): attr = MagicMock(spec=Attribute) attr.meta = MagicMock() attr.meta.tags = ["group:foo"] return attr def test_group_name(self): attr = self.make_grouped_attr() assert self.item._get_group_name(attr) == "foo" def test_grouped_children(self): attr = self.make_grouped_attr() self.item.ref = dict(c=attr, d=MagicMock(spec=Attribute)) assert self.item.ref_children() == 1 @patch("malcolm.gui.blockitem.MethodItem") @patch("malcolm.gui.blockitem.AttributeItem") def test_create_children(self, attribute_mock, method_mock): # Load up items to create mi1, mi2 = MagicMock(), MagicMock() method_mock.side_effect = [mi1, mi2] ai1, ai2 = MagicMock(), MagicMock() attribute_mock.side_effect = [ai1, ai2] # Load up refs to get group_attr = MagicMock(spec=Attribute) child_attr = self.make_grouped_attr() m1 = MagicMock(spec=Method) m2 = MagicMock(spec=Method) BlockItem.items[("endpoint", "foo")] = ai1 self.item.ref = OrderedDict( (("foo", group_attr), ("c", child_attr), ("a", m1), ("b", m2))) self.item.create_children() # Check it made the right thing assert len(self.item.children) == 3 attribute_mock.assert_any_call(("endpoint", "foo"), group_attr) assert self.item.children[0] == ai1 attribute_mock.assert_any_call(("endpoint", "c"), child_attr) ai1.add_child.assert_called_once_with(ai2) method_mock.assert_any_call(("endpoint", "a"), m1) assert self.item.children[1] == mi1 method_mock.assert_any_call(("endpoint", "b"), m2) assert self.item.children[2] == mi2
class TestBlockItem(unittest.TestCase): def setUp(self): ref = MagicMock() BlockItem.items.clear() self.item = BlockItem(("endpoint",), ref) def test_ref_children(self): self.item.ref = dict( a=MethodMeta(), b=MethodMeta(), c=Attribute()) self.assertEqual(self.item.ref_children(), 3) def make_grouped_attr(self): attr = Attribute() attr.set_endpoint_data("meta", MagicMock()) attr.meta.tags = ["group:foo"] return attr def test_group_name(self): attr = self.make_grouped_attr() self.assertEqual(self.item._get_group_name(attr), "foo") def test_grouped_children(self): attr = self.make_grouped_attr() self.item.ref = dict(c=attr, d=Attribute()) self.assertEqual(self.item.ref_children(), 1) @patch("malcolm.gui.blockitem.MethodItem") @patch("malcolm.gui.blockitem.AttributeItem") def test_create_children(self, attribute_mock, method_mock): # Load up items to create mi1, mi2 = MagicMock(), MagicMock() method_mock.side_effect = [mi1, mi2] ai1, ai2 = MagicMock(), MagicMock() attribute_mock.side_effect = [ai1, ai2] # Load up refs to get group_attr = Attribute() child_attr = self.make_grouped_attr() m1 = MethodMeta() m2 = MethodMeta() BlockItem.items[("endpoint", "foo")] = ai1 self.item.ref = OrderedDict(( ("foo", group_attr), ("c", child_attr), ("a", m1), ("b", m2))) self.item.create_children() # Check it made the right thing self.assertEqual(len(self.item.children), 3) attribute_mock.assert_any_call(("endpoint", "foo"), group_attr) self.assertEqual(self.item.children[0], ai1) attribute_mock.assert_any_call(("endpoint", "c"), child_attr) ai1.add_child.assert_called_once_with(ai2) method_mock.assert_any_call(("endpoint", "a"), m1) self.assertEqual(self.item.children[1], mi1) method_mock.assert_any_call(("endpoint", "b"), m2) self.assertEqual(self.item.children[2], mi2)
def __init__(self, process, block): QAbstractItemModel.__init__(self) self.controller = process.get_controller(block.mri) self.block = block self.id_ = 1 self.root_item = BlockItem((self.block.mri,), block) # map id -> item self.item_lookup = {} # TODO: unsubscribe when done self.response_received.connect(self.handle_response) self.send_request(Subscribe(path=[self.block.mri], delta=True)).wait()
def __init__(self, process, block): QAbstractItemModel.__init__(self) self.process = process self.block = block self.id_ = 1 self.block_path = tuple(block.path_relative_to(process)) self.root_item = BlockItem(self.block_path, block) # map id -> request self.requests = {} # TODO: unsubscribe when done self.response_received.connect(self.handle_response) request = Subscribe(None, None, self.block_path, delta=True) self.send_request(request)
def setUp(self): ref = MagicMock() BlockItem.items.clear() self.item = BlockItem(("endpoint", ), ref)
def setUp(self): ref = MagicMock() BlockItem.items.clear() self.item = BlockItem(("endpoint",), ref)