;ò >wÄ@c@s¯dkZdkZedjo$eeiieiddƒƒndkTdklZdk l Z dk Z d„Z d„Z d klZlZd eifd „ƒYZdS( Ns__main__is framework.py(s*(s ZopeTestCase(sVerifycCs˜g}t|ƒtfƒtgƒfjo |fSnxW|D]O}t|ƒtfƒtgƒfjo|it|ƒƒq=|i|ƒq=W|SdS(sK flattenList => transform a (deep) sequence into a simple sequence N(sretstypeslstsitemsextends flattenListsappend(slstsitemsret((sW/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testInterface.pys flattenLists% %cCsig}t|ƒ}xL|D]D}|iƒ}|it|ƒƒ||j o|i|ƒqqW|SdS(sB flattenInterfaces => fetch interfaces and inherited ones N( srets flattenListslstsintfsgetBasessbasessextendsflattenInterfacessappend(slstsintfsretsbases((sW/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testInterface.pysflattenInterfaces%s  (sGroupUserFoldersGRUFUsers TestInterfacecBs#tZd„Zd„Zd„ZRS(NcCs³t|dgƒ}xš|iD]}t|dtƒ}|i|d|ifƒt |ƒ}xN|D]F}||joqan|it i ||ƒd|i|ifƒqaWqWdS(s/ Test that interfaces are okay signore_interfacess__implements__s*'%s' class doesn't implement an interface!s6'%s' class doesn't implement '%s' interface correctly.N( sgetattrsselfsignoresklassessklasssNonesintfss failUnlesss__name__s flattenListsintfsVerifys verifyClass(sselfsintfssignoresintfsklass((sW/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testInterface.pystest01Interfaces>s   c Cs&g}t|ƒ}d}t|dgƒ}xÂ|iD]·}t|dt ƒ}|i |d|i fƒt |ƒ}xv|D]n}||joqynxQ|iƒD]C}|d7}d|f|j o|id|i |fƒq q WqyWq4W|o,tdt|ƒ|ti|d ƒf‚nd S( s” Check that the test case is complete : each interface entry xxx must be associated to a test_xxx method in the test class. isignore_interfacess__implements__s*'%s' class doesn't implement an interface!istest_%ss%s.%ss=%d (over %d) MISSING TESTS: %s do not have a test associated.s, N(s not_definedsdirsselfstestsscountsgetattrsignoresklassessklasssNonesintfss failUnlesss__name__sflattenInterfacessintfsnamessnamesappends RuntimeErrorslensstringsjoin( sselfscountstestssintfssnamesignoresintfsklasss not_defined((sW/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testInterface.pystest02TestCaseCompletudeXs*      *c Cs&g}d}t|dgƒ}xÎ|iD]Ã}t|ƒ}t|dt ƒ}|i |d|i fƒt |ƒ}xv|D]n}||joqynxQ|iƒD]C}|d7}d|f|j o|id|i |fƒq q WqyWq(W|o,tdt|ƒ|ti|d ƒf‚nd S( s™ This method tests that each and every method has a ClassSecurityInfo() declaration XXX This doesn't walk through inheritance :( isignore_interfacess__implements__s*'%s' class doesn't implement an interface!is %s__roles__s%s.%ss]%d (over %d) MISSING SECURITY DECLARATIONS: %s do not have a security declaration associated.s, N(s not_definedscountsgetattrsselfsignoresklassessklasssdirsdictsNonesintfss failUnlesss__name__sflattenInterfacessintfsnamessnamesappends RuntimeErrorslensstringsjoin( sselfscountsintfssnamesignoresintfsdictsklasss not_defined((sW/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testInterface.pystest03ClassSecurityInfo}s*      *(s__name__s __module__stest01Interfacesstest02TestCaseCompletudestest03ClassSecurityInfo(((sW/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testInterface.pys TestInterface<s  %(sosssyss__name__sexecfilespathsjoinsLogsTestings ZopeTestCases InterfacesVerifysstrings flattenListsflattenInterfacessProducts.GroupUserFoldersGroupUserFoldersGRUFUsers TestInterface( s TestInterfacesGroupUserFoldersstrings ZopeTestCasesVerifys flattenListssyssflattenInterfacessossGRUFUser((sW/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testInterface.pys?s $