Changeset 2098 in products


Ignore:
Timestamp:
Apr 9, 2010 11:09:48 AM (14 years ago)
Author:
mylan
Message:

#174: added tests for CaptchaField?

Location:
quintagroup.pfg.captcha/trunk/quintagroup/pfg/captcha
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.pfg.captcha/trunk/quintagroup/pfg/captcha/field.py

    r2091 r2098  
    1515 
    1616CAPTCHA_ID = 'key' 
     17HIDDEN_FIELDS = [ 
     18    'title',  
     19    'description', 
     20    'required',  
     21    'hidden',  
     22    'fgTDefault',  
     23    'fgTEnabled',  
     24    'fgDefault', 
     25    'fgTValidator'] 
    1726 
    1827def finalizeCaptchaFieldSchema( schema ): 
    1928    schema['title'].default= 'key' 
    20     for field in ('title',  
    21                   'description', 
    22                   'required',  
    23                   'hidden',  
    24                   'fgTDefault',  
    25                   'fgTEnabled',  
    26                   'fgDefault', 
    27                   'fgTValidator'): 
     29    for field in HIDDEN_FIELDS: 
    2830        schema[field].widget.visible = {'view':'invisible','edit':'invisible'} 
    2931 
  • quintagroup.pfg.captcha/trunk/quintagroup/pfg/captcha/tests.py

    r2097 r2098  
    88from Products.PloneTestCase.layer import onsetup 
    99from Products.PloneTestCase import PloneTestCase as ptc 
     10from Products.CMFCore.permissions import View 
     11from Products.Archetypes.atapi import StringField 
     12 
     13from quintagroup.pfg.captcha import CaptchaWidget 
     14from quintagroup.pfg.captcha import CaptchaValidator 
     15from quintagroup.pfg.captcha.field import CAPTCHA_ID, HIDDEN_FIELDS 
     16 
     17_marker = object() 
    1018 
    1119PRODUCTS = [ 
    12     'Products.PloneFormGen', 
    1320    'quintagroup.captcha.core', 
    1421    'quintagroup.pfg.captcha', 
     
    2229    zcml.load_config('configure.zcml', quintagroup.pfg.captcha) 
    2330    fiveconfigure.debug_mode = False 
     31    ztc.installProduct('PloneFormGen') 
    2432    ztc.installPackage('quintagroup.pfg.captcha') 
    2533    ztc.installPackage('quintagroup.captcha.core') 
    2634 
    2735setup_product() 
    28 ptc.setupPloneSite(extension_profiles=PROFILES) 
     36ptc.setupPloneSite(products=['PloneFormGen',], extension_profiles=PROFILES) 
    2937 
    3038 
     
    6775                '"qplonecaptchafield" layer not present in "%s" skin' % sname) 
    6876 
     77 
     78class TestCaptchaField(ptc.PloneTestCase): 
     79 
     80    def afterSetUp(self): 
     81        self.folder.invokeFactory('FormFolder', 'ff1') 
     82        self.ff1 = getattr(self.folder, 'ff1') 
     83        self.ff1.invokeFactory('CaptchaField', 'captcha_field') 
     84     
     85    def testId(self): 
     86        """CaptchaField has always CAPTCHA_ID id.""" 
     87        self.assertEqual(CAPTCHA_ID in self.ff1, True) 
     88        self.assertNotEqual('captcha_field' in self.ff1, True) 
     89 
     90    def testSchema(self): 
     91        cf = getattr(self.ff1, CAPTCHA_ID) 
     92        schema = cf.Schema() 
     93        for field in HIDDEN_FIELDS: 
     94            visibility = schema[field].widget.visible 
     95            self.assertEqual(visibility, {'view':'invisible','edit':'invisible'}, 
     96                '"%s" field is not hidden, but %s:' % (field, visibility)) 
     97 
     98    def testFGField(self): 
     99        cf = getattr(self.ff1, CAPTCHA_ID) 
     100        fgField = getattr(cf, 'fgField', _marker) 
     101        self.assertNotEqual(fgField, _marker) 
     102        # Test fgField properties 
     103        self.assertEqual(type(fgField), StringField) 
     104        self.assertEqual(bool(fgField.searchable), False ) 
     105        self.assertEqual(fgField.write_permission, View,) 
     106        self.assertEqual(type(fgField.widget), CaptchaWidget) 
     107        validators = [v.__class__ for v in fgField.validators._chain] 
     108        self.assertEqual(CaptchaValidator in validators, True) 
    69109             
    70110 
     
    72112    suite = unittest.TestSuite() 
    73113    suite.addTest(unittest.makeSuite(TestInstallations)) 
     114    suite.addTest(unittest.makeSuite(TestCaptchaField)) 
    74115    return suite 
Note: See TracChangeset for help on using the changeset viewer.