57 def setUp(self): |
57 def setUp(self): |
58 super(EntityFieldsFormTC, self).setUp() |
58 super(EntityFieldsFormTC, self).setUp() |
59 self.req = self.request() |
59 self.req = self.request() |
60 self.entity = self.user(self.req) |
60 self.entity = self.user(self.req) |
61 |
61 |
62 def test_form_field_vocabulary_unrelated(self): |
62 def test_form_field_choices(self): |
63 b = self.req.create_entity('BlogEntry', title=u'di mascii code', content=u'a best-seller') |
63 b = self.req.create_entity('BlogEntry', title=u'di mascii code', content=u'a best-seller') |
64 t = self.req.create_entity('Tag', name=u'x') |
64 t = self.req.create_entity('Tag', name=u'x') |
65 form1 = self.vreg['forms'].select('edition', self.req, entity=t) |
65 form1 = self.vreg['forms'].select('edition', self.req, entity=t) |
66 unrelated = [reid for rview, reid in form1.field_by_name('tags', 'subject', t.e_schema).choices(form1)] |
66 choices = [reid for rview, reid in form1.field_by_name('tags', 'subject', t.e_schema).choices(form1)] |
67 self.assertTrue(unicode(b.eid) in unrelated, unrelated) |
67 self.assertIn(unicode(b.eid), choices) |
68 form2 = self.vreg['forms'].select('edition', self.req, entity=b) |
68 form2 = self.vreg['forms'].select('edition', self.req, entity=b) |
69 unrelated = [reid for rview, reid in form2.field_by_name('tags', 'object', t.e_schema).choices(form2)] |
69 choices = [reid for rview, reid in form2.field_by_name('tags', 'object', t.e_schema).choices(form2)] |
70 self.assertTrue(unicode(t.eid) in unrelated, unrelated) |
70 self.assertIn(unicode(t.eid), choices) |
|
71 |
|
72 b.cw_clear_all_caches() |
|
73 t.cw_clear_all_caches() |
71 self.execute('SET X tags Y WHERE X is Tag, Y is BlogEntry') |
74 self.execute('SET X tags Y WHERE X is Tag, Y is BlogEntry') |
72 unrelated = [reid for rview, reid in form1.field_by_name('tags', 'subject', t.e_schema).choices(form1)] |
75 |
73 self.assertFalse(unicode(b.eid) in unrelated, unrelated) |
76 choices = [reid for rview, reid in form1.field_by_name('tags', 'subject', t.e_schema).choices(form1)] |
74 unrelated = [reid for rview, reid in form2.field_by_name('tags', 'object', t.e_schema).choices(form2)] |
77 self.assertIn(unicode(b.eid), choices) |
75 self.assertFalse(unicode(t.eid) in unrelated, unrelated) |
78 choices = [reid for rview, reid in form2.field_by_name('tags', 'object', t.e_schema).choices(form2)] |
76 |
79 self.assertIn(unicode(t.eid), choices) |
77 |
80 |
78 def test_form_field_vocabulary_new_entity(self): |
81 def test_form_field_choices_new_entity(self): |
79 e = self.vreg['etypes'].etype_class('CWUser')(self.request()) |
82 e = self.vreg['etypes'].etype_class('CWUser')(self.request()) |
80 form = self.vreg['forms'].select('edition', self.req, entity=e) |
83 form = self.vreg['forms'].select('edition', self.req, entity=e) |
81 unrelated = [rview for rview, reid in form.field_by_name('in_group', 'subject').choices(form)] |
84 unrelated = [rview for rview, reid in form.field_by_name('in_group', 'subject').choices(form)] |
82 # should be default groups but owners, i.e. managers, users, guests |
85 # should be default groups but owners, i.e. managers, users, guests |
83 self.assertEqual(unrelated, [u'guests', u'managers', u'users']) |
86 self.assertEqual(unrelated, [u'guests', u'managers', u'users']) |