Changeset 2099 in products


Ignore:
Timestamp:
Apr 9, 2010 12:19:57 PM (14 years ago)
Author:
mylan
Message:

#174: added tests for CaptchaWidget?

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

Legend:

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

    r2098 r2099  
    1010from Products.CMFCore.permissions import View 
    1111from Products.Archetypes.atapi import StringField 
     12from Products.Archetypes.Registry import availableWidgets 
    1213 
     14from quintagroup.pfg.captcha import CaptchaField 
    1315from quintagroup.pfg.captcha import CaptchaWidget 
    1416from quintagroup.pfg.captcha import CaptchaValidator 
     17from quintagroup.pfg.captcha.widget import CAPTCHA_MACRO 
    1518from quintagroup.pfg.captcha.field import CAPTCHA_ID, HIDDEN_FIELDS 
    1619 
     
    8285        self.ff1 = getattr(self.folder, 'ff1') 
    8386        self.ff1.invokeFactory('CaptchaField', 'captcha_field') 
    84      
     87 
    8588    def testId(self): 
    8689        """CaptchaField has always CAPTCHA_ID id.""" 
     
    103106        self.assertEqual(type(fgField), StringField) 
    104107        self.assertEqual(bool(fgField.searchable), False ) 
    105         self.assertEqual(fgField.write_permission, View,) 
     108        self.assertEqual(fgField.write_permission, View) 
    106109        self.assertEqual(type(fgField.widget), CaptchaWidget) 
    107110        validators = [v.__class__ for v in fgField.validators._chain] 
    108111        self.assertEqual(CaptchaValidator in validators, True) 
    109              
     112 
     113 
     114class TestCaptchaWidget(ptc.PloneTestCase): 
     115 
     116    CF = CaptchaField.__module__ + '.CaptchaField' 
     117    CW = CaptchaWidget.__module__ + '.CaptchaWidget' 
     118 
     119    def afterSetUp(self): 
     120        self.widgets = dict(availableWidgets()) 
     121 
     122    def testRegistration(self): 
     123        self.assertEqual(self.CW in self.widgets, True) 
     124        cw = self.widgets[self.CW] 
     125        self.assertEqual(self.CF in cw.used_for, True) 
     126 
     127    def testWidgetMacro(self): 
     128        widget_macro = self.widgets[self.CW].klass._properties['macro'] 
     129        self.assertEqual(widget_macro, CAPTCHA_MACRO) 
     130 
     131    def testWidgetMacroAccessable(self): 
     132        macro = self.portal.restrictedTraverse(CAPTCHA_MACRO) 
     133        self.assertNotEqual(macro, None) 
     134     
    110135 
    111136def test_suite(): 
     
    113138    suite.addTest(unittest.makeSuite(TestInstallations)) 
    114139    suite.addTest(unittest.makeSuite(TestCaptchaField)) 
     140    suite.addTest(unittest.makeSuite(TestCaptchaWidget)) 
    115141    return suite 
  • quintagroup.pfg.captcha/trunk/quintagroup/pfg/captcha/widget.py

    r2084 r2099  
    22from Products.Archetypes.Registry import registerWidget 
    33 
     4CAPTCHA_MACRO = "captchaField_widget" 
     5 
    46class CaptchaWidget(StringWidget): 
    57    _properties = StringWidget._properties.copy() 
    6     _properties.update( {'macro' : "captchaField_widget"} ) 
     8    _properties.update( {'macro' : CAPTCHA_MACRO} ) 
    79 
    810 
     
    1012               title = 'Captcha widget', 
    1113               description= ('Renders captcha image and string input',), 
    12                used_for = ('quintagroup.pfg.captcha.content.CaptchaField',) 
     14               used_for = ('quintagroup.pfg.captcha.field.CaptchaField',) 
    1315              ) 
Note: See TracChangeset for help on using the changeset viewer.