use mtconverter's html_unescape rather than saxutils' escape to deal with any html entity
fromlogilab.common.testlibimportunittest_main,TestCasefromos.pathimportjoinfromcubicwebimportCW_SOFTWARE_ROOTasBASEfromcubicweb.vregistryimportVObjectfromcubicweb.cwvregimportCubicWebRegistry,UnknownPropertyfromcubicweb.cwconfigimportCubicWebConfigurationclassYesSchema:def__contains__(self,something):returnTrueclassVRegistryTC(TestCase):defsetUp(self):config=CubicWebConfiguration('data')self.vreg=CubicWebRegistry(config)self.vreg.schema=YesSchema()deftest_load(self):self.vreg.load_file(join(BASE,'web','views'),'euser.py')self.vreg.load_file(join(BASE,'web','views'),'baseviews.py')fpvc=[vforvinself.vreg.registry_objects('views','primary')ifv.accepts[0]=='EUser'][0]fpv=fpvc(None,None)# don't want a TypeError due to super callself.assertRaises(AttributeError,fpv.render_entity_attributes,None,None)deftest_load_interface_based_vojects(self):self.vreg.load_file(join(BASE,'web','views'),'idownloadable.py')self.vreg.load_file(join(BASE,'web','views'),'baseviews.py')# check loading baseviews after idownloadable isn't kicking interface based viewsself.assertEquals(len(self.vreg['views']['primary']),2)deftest_autoselectors(self):myselector1=lambda*args:1myselector2=lambda*args:1classAnAppObject(VObject):__selectors__=(myselector1,myselector2)self.assertEquals(AnAppObject.__select__(),2)deftest_properties(self):self.failIf('system.version.cubicweb'inself.vreg['propertydefs'])self.failUnless(self.vreg.property_info('system.version.cubicweb'))self.assertRaises(UnknownProperty,self.vreg.property_info,'a.non.existent.key')if__name__=='__main__':unittest_main()