diff -r cb68c8af3858 -r 984e249764d1 web/test/unittest_views_editforms.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/test/unittest_views_editforms.py Wed Apr 08 11:33:57 2009 +0200 @@ -0,0 +1,87 @@ +from logilab.common.testlib import unittest_main +from cubicweb.devtools.apptest import EnvBasedTC +from cubicweb.web.views.editforms import AutomaticEntityForm as AEF + +def rbc(entity, category): + return [(rschema.type, x) for rschema, tschemas, x in AEF.erelations_by_category(entity, category)] + +class AutomaticEntityFormTC(EnvBasedTC): + + def test_euser_relations_by_category(self): + #for (rtype, role, stype, otype), tag in AEF.rcategories._tagdefs.items(): + # if rtype == 'tags': + # print rtype, role, stype, otype, ':', tag + e = self.etype_instance('EUser') + # see custom configuration in views.euser + self.assertEquals(rbc(e, 'primary'), + [('login', 'subject'), + ('upassword', 'subject'), + ('in_group', 'subject'), + ('in_state', 'subject'), + ('eid', 'subject'), + ]) + self.assertListEquals(rbc(e, 'secondary'), + [('firstname', 'subject'), + ('surname', 'subject') + ]) + self.assertListEquals(rbc(e, 'metadata'), + [('last_login_time', 'subject'), + ('created_by', 'subject'), + ('creation_date', 'subject'), + ('modification_date', 'subject'), + ('owned_by', 'subject'), + ('bookmarked_by', 'object'), + ]) + self.assertListEquals(rbc(e, 'generic'), + [('primary_email', 'subject'), + ('use_email', 'subject'), + ('connait', 'subject'), + ('checked_by', 'object'), + ]) + # owned_by is defined both as subject and object relations on EUser + self.assertListEquals(rbc(e, 'generated'), + [('is', 'subject'), + ('is_instance_of', 'subject'), + ('tags', 'object'), + ('for_user', 'object'), + ('created_by', 'object'), + ('wf_info_for', 'object'), + ('owned_by', 'object'), + ]) + + def test_personne_relations_by_category(self): + e = self.etype_instance('Personne') + self.assertListEquals(rbc(e, 'primary'), + [('nom', 'subject'), + ('eid', 'subject') + ]) + self.assertListEquals(rbc(e, 'secondary'), + [('prenom', 'subject'), + ('sexe', 'subject'), + ('promo', 'subject'), + ('titre', 'subject'), + ('ass', 'subject'), + ('web', 'subject'), + ('tel', 'subject'), + ('fax', 'subject'), + ('datenaiss', 'subject'), + ('test', 'subject'), + ('description', 'subject'), + ('salary', 'subject') + ]) + self.assertListEquals(rbc(e, 'metadata'), + [('created_by', 'subject'), + ('creation_date', 'subject'), + ('modification_date', 'subject'), + ('owned_by', 'subject'), + ]) + self.assertListEquals(rbc(e, 'generic'), + [('travaille', 'subject'), + ('connait', 'object') + ]) + self.assertListEquals(rbc(e, 'generated'), + [('is', 'subject'), + ('is_instance_of', 'subject'), + ]) +if __name__ == '__main__': + unittest_main()