backport some tests tls-sprint
authorsylvain.thenault@logilab.fr
Wed, 15 Apr 2009 14:07:30 +0200
branchtls-sprint
changeset 1359 bef6891393d7
parent 1358 a7438eb2420c
child 1360 13ae1121835e
backport some tests
web/formwidgets.py
web/test/unittest_form.py
web/test/unittest_views_editforms.py
--- a/web/formwidgets.py	Wed Apr 15 14:07:10 2009 +0200
+++ b/web/formwidgets.py	Wed Apr 15 14:07:30 2009 +0200
@@ -342,7 +342,7 @@
   <input type="text" id="newopt" />
   <a href="javascript:noop()" id="add_newopt">&nbsp;</a></div>
 '''
-        
+
 # buttons ######################################################################
 
 class Button(Input):
--- a/web/test/unittest_form.py	Wed Apr 15 14:07:10 2009 +0200
+++ b/web/test/unittest_form.py	Wed Apr 15 14:07:30 2009 +0200
@@ -1,7 +1,7 @@
 from logilab.common.testlib import unittest_main, mock_object
 from cubicweb import Binary
 from cubicweb.devtools.testlib import WebTest
-from cubicweb.web.form import EntityFieldsForm, FormRenderer
+from cubicweb.web.form import EntityFieldsForm, FieldsForm, FormRenderer
 from cubicweb.web.formfields import (IntField, StringField, RichTextField,
                                      DateTimeField, DateTimePicker,
                                      FileField, EditableFileField)
@@ -9,6 +9,16 @@
 from cubicweb.web.views.workflow import ChangeStateForm
 
 
+class FieldsFormTC(WebTest):
+
+    def test_form_field_format(self):
+        form = FieldsForm(self.request(), None)
+        self.assertEquals(form.form_field_format(None), 'text/html')
+        self.execute('INSERT EProperty X: X pkey "ui.default-text-format", X value "text/rest", X for_user U WHERE U login "admin"')
+        self.commit()
+        self.assertEquals(form.form_field_format(None), 'text/rest')
+
+
 class EntityFieldsFormTC(WebTest):
 
     def setUp(self):
@@ -39,6 +49,21 @@
         # should be default groups but owners, i.e. managers, users, guests
         self.assertEquals(unrelated, [u'guests', u'managers', u'users'])
 
+    def test_subject_in_state_vocabulary(self):
+        # on a new entity
+        e = self.etype_instance('EUser')
+        form = EntityFieldsForm(self.request(), None, entity=e)
+        states = list(form.subject_in_state_vocabulary('in_state'))
+        self.assertEquals(len(states), 1)
+        self.assertEquals(states[0][0], u'activated') # list of (combobox view, state eid)
+        # on an existant entity
+        e = self.user()
+        form = EntityFieldsForm(self.request(), None, entity=e)
+        states = list(form.subject_in_state_vocabulary('in_state'))
+        self.assertEquals(len(states), 1)
+        self.assertEquals(states[0][0], u'deactivated') # list of (combobox view, state eid)
+
+
         
     # form view tests #########################################################
         
--- a/web/test/unittest_views_editforms.py	Wed Apr 15 14:07:10 2009 +0200
+++ b/web/test/unittest_views_editforms.py	Wed Apr 15 14:07:30 2009 +0200
@@ -2,12 +2,21 @@
 from cubicweb.devtools.apptest import EnvBasedTC
 from cubicweb.devtools.testlib import WebTest
 from cubicweb.web.views.editforms import AutomaticEntityForm as AEF
-
+from cubicweb.web.formwidgets import AutoCompletionWidget
 def rbc(entity, category):
     return [(rschema.type, x) for rschema, tschemas, x in AEF.erelations_by_category(entity, category)]
 
 class AutomaticEntityFormTC(EnvBasedTC):
 
+    def test_custom_widget(self):
+        AEF.rwidgets.set_rtag(AutoCompletionWidget, 'login', 'subject', 'EUser')
+        form = self.vreg.select_object('forms', 'edition', self.request(), None,
+                                       entity=self.user())
+        field = form.field_by_name('login')
+        self.assertIsInstance(field.widget, AutoCompletionWidget)
+        AEF.rwidgets.del_rtag('login', 'subject', 'EUser')
+        
+
     def test_euser_relations_by_category(self):
         #for (rtype, role, stype, otype), tag in AEF.rcategories._tagdefs.items():
         #    if rtype == 'tags':