def testPropertyTypes(self): item = BeanItem(MyClass('bean1')) self.assertTrue(int == item.getItemProperty('superPrivate').getType()) self.assertTrue(float == item.getItemProperty('superProtected').getType()) self.assertTrue(bool == item.getItemProperty('superPublic').getType()) self.assertTrue(str == item.getItemProperty('name').getType())
def testAddRemoveProperty(self): pd = MethodPropertyDescriptor('myname', MyClass, getattr(MyClass, 'getName'), getattr(MyClass, 'setName')) item = BeanItem(self.MyClass('bean1')) self.assertEquals(6, len(item.getItemPropertyIds())) self.assertEquals(None, item.getItemProperty('myname')) item.addItemProperty('myname', pd.createProperty(item.getBean())) self.assertEquals(7, len(item.getItemPropertyIds())) self.assertEquals('bean1', item.getItemProperty('myname').getValue()) item.removeItemProperty('myname') self.assertEquals(6, len(item.getItemPropertyIds())) self.assertEquals(None, item.getItemProperty('myname'))
def testOverridingProperties(self): item = BeanItem(MyClass2('bean2')) itemPropertyIds = item.getItemPropertyIds() self.assertEquals(6, len(itemPropertyIds)) self.assertTrue(MyClass2 == item.getBean().__class__) # check that name2 accessed via MyClass2, not MyClass self.assertFalse(item.getItemProperty('name2').isReadOnly())
def testPropertyReadOnly(self): item = BeanItem(MyClass('bean1')) self.assertFalse(item.getItemProperty('name').isReadOnly()) self.assertTrue(item.getItemProperty('name2').isReadOnly())