예제 #1
0
 def test_flattened_model_with_empty_master_item_closes_properly(self):
     l = ListModel.ListModel("as")
     bs1 = ListModel.ListModel("bs")
     bs1.append_item("11")
     bs2 = ListModel.ListModel("bs")
     bs3 = ListModel.ListModel("bs")
     bs3.append_item("31")
     l.append_item(bs1)
     l.append_item(bs2)
     l.append_item(bs3)
     f = ListModel.FlattenedListModel(container=l, master_items_key="as", child_items_key="bs", items_key="cs")
     with contextlib.closing(f):
         pass
예제 #2
0
 def test_flattened_model_initializes_properly(self):
     l = ListModel.ListModel("as")
     bs1 = ListModel.ListModel("bs")
     bs1.append_item("11")
     bs1.append_item("12")
     bs2 = ListModel.ListModel("bs")
     bs3 = ListModel.ListModel("bs")
     bs3.append_item("31")
     bs3.append_item("32")
     bs3.append_item("33")
     l.append_item(bs1)
     l.append_item(bs2)
     l.append_item(bs3)
     f = ListModel.FlattenedListModel(container=l, master_items_key="as", child_items_key="bs", items_key="cs")
     self.assertEqual(["11", "12", "31", "32", "33"], f.cs)
예제 #3
0
 def test_flattened_model_removes_child_item_properly(self) -> None:
     l = ListModel.ListModel[typing.Any]("as")
     bs1 = ListModel.ListModel[typing.Any]("bs")
     bs1.append_item("11")
     bs1.append_item("12")
     bs2 = ListModel.ListModel[typing.Any]("bs")
     bs3 = ListModel.ListModel[typing.Any]("bs")
     bs3.append_item("31")
     bs3.append_item("32")
     bs3.append_item("33")
     l.append_item(bs1)
     l.append_item(bs2)
     l.append_item(bs3)
     f = ListModel.FlattenedListModel(container=l,
                                      master_items_key="as",
                                      child_items_key="bs",
                                      items_key="cs")
     bs1.remove_item(1)
     self.assertEqual(["11", "31", "32", "33"], f.cs)
예제 #4
0
 def test_refcounts(self) -> None:
     # list model
     model = ListModel.ListModel[typing.Any]("items")
     model_ref = weakref.ref(model)
     del model
     self.assertIsNone(model_ref())
     # filtered model
     l = ListModel.ListModel[typing.Any]("items")
     model2 = ListModel.FilteredListModel(container=l, items_key="items")
     model_ref2 = weakref.ref(model2)
     del model2
     self.assertIsNone(model_ref2())
     # nested filtered model
     l = ListModel.ListModel[typing.Any]("items")
     l2 = ListModel.FilteredListModel(container=l, items_key="items")
     model3 = ListModel.FilteredListModel(container=l2, items_key="items")
     model_ref3 = weakref.ref(model3)
     del model3
     self.assertIsNone(model_ref3())
     # filtered model with item changed event
     l = ListModel.ListModel[typing.Any]("items")
     l.append_item(C())
     model4 = ListModel.FilteredListModel(container=l, items_key="items")
     model_ref4 = weakref.ref(model4)
     del model4
     self.assertIsNone(model_ref4())
     # mapped model
     l = ListModel.ListModel[typing.Any]("items")
     model5 = ListModel.MappedListModel(container=l,
                                        master_items_key="items",
                                        items_key="items")
     model_ref5 = weakref.ref(model5)
     del model5
     self.assertIsNone(model_ref5())
     # mapped model of filtered model
     l = ListModel.ListModel[typing.Any]("items")
     l2 = ListModel.FilteredListModel(container=l, items_key="items")
     model6 = ListModel.MappedListModel(container=l2,
                                        master_items_key="items",
                                        items_key="items")
     model_ref6 = weakref.ref(model6)
     del model6
     self.assertIsNone(model_ref6())
     # flattened model
     l = ListModel.ListModel[typing.Any]("items")
     model7 = ListModel.FlattenedListModel(container=l,
                                           master_items_key="items",
                                           child_items_key="items",
                                           items_key="items")
     model_ref7 = weakref.ref(model7)
     del model7
     self.assertIsNone(model_ref7())
     # flattened model with items
     l = ListModel.ListModel[typing.Any]("items")
     l.append_item(ListModel.ListModel[typing.Any]("items"))
     model8 = ListModel.FlattenedListModel(container=l,
                                           master_items_key="items",
                                           child_items_key="items",
                                           items_key="items")
     model_ref8 = weakref.ref(model8)
     del model8
     self.assertIsNone(model_ref8())
     # list property model
     l = ListModel.ListModel[typing.Any]("items")
     model9 = ListModel.ListPropertyModel(l)
     model_ref9 = weakref.ref(model9)
     del model9
     self.assertIsNone(model_ref9())