From kupu-checkins at codespeak.net Thu Sep 9 22:08:48 2010 From: kupu-checkins at codespeak.net (kupu-checkins at codespeak.net) Date: Thu, 09 Sep 2010 20:08:48 -0000 Subject: kupu-checkins@codespeak.net V|AGRA ® Official 37% OFF Message-ID: <20100909200843.52565282B9C@codespeak.net> Since the time when men faced erectile dysfunction they have been trying to find the treatment! Buy Your ED Pills Online NoPRESCRIPTION REQUIRED Safe, Easy and Discreet Delivery! Order Now! -------------- next part -------------- An HTML attachment was scrubbed... URL: http://codespeak.net/pipermail/kupu-checkins/attachments/20100909/135b32e2/attachment.htm From mihxil at codespeak.net Fri Sep 24 16:31:49 2010 From: mihxil at codespeak.net (mihxil at codespeak.net) Date: Fri, 24 Sep 2010 16:31:49 +0200 (CEST) Subject: [kupu-checkins] r77345 - kupu/trunk/kupu/mmbase Message-ID: <20100924143149.DC8AA282BD4@codespeak.net> Author: mihxil Date: Fri Sep 24 16:31:48 2010 New Revision: 77345 Modified: kupu/trunk/kupu/mmbase/mmbase.js Log: made it work in chrome Modified: kupu/trunk/kupu/mmbase/mmbase.js ============================================================================== --- kupu/trunk/kupu/mmbase/mmbase.js (original) +++ kupu/trunk/kupu/mmbase/mmbase.js Fri Sep 24 16:31:48 2010 @@ -61,7 +61,8 @@ // let's register saveOnPart(), to ask the user if he wants to save when // leaving after editing - if (kupu.getBrowserName() == 'IE') { + var browser = kupu.getBrowserName(); + if (browser == 'IE') { // IE supports onbeforeunload, so let's use that addEventHandler(window, 'beforeunload', saveOnPart); } else { @@ -69,7 +70,7 @@ // so let's try to register and if it fails fall back on onunload var re = /rv:([0-9\.]+)/; var match = re.exec(navigator.userAgent); - if (match[1] && parseFloat(match[1]) > 1.6) { + if (match != null && match[1] && parseFloat(match[1]) > 1.6) { addEventHandler(window, 'beforeunload', saveOnPart); } else { addEventHandler(window, 'unload', saveOnPart); @@ -78,6 +79,7 @@ // and now we can initialize... kupu.initialize(); + if (window.kuputoolcollapser) { var collapser = new window.kuputoolcollapser.Collapser('kupu-toolboxes'); if (kupu.getBrowserName() != 'IE') { From mihxil at codespeak.net Fri Sep 24 16:35:45 2010 From: mihxil at codespeak.net (mihxil at codespeak.net) Date: Fri, 24 Sep 2010 16:35:45 +0200 (CEST) Subject: [kupu-checkins] r77346 - kupu/trunk/kupu/mmbase Message-ID: <20100924143545.A9ED6282B9E@codespeak.net> Author: mihxil Date: Fri Sep 24 16:35:44 2010 New Revision: 77346 Modified: kupu/trunk/kupu/mmbase/Makefile Log: repo location on mmbase machine has been changed Modified: kupu/trunk/kupu/mmbase/Makefile ============================================================================== --- kupu/trunk/kupu/mmbase/Makefile (original) +++ kupu/trunk/kupu/mmbase/Makefile Fri Sep 24 16:35:44 2010 @@ -17,6 +17,8 @@ REPO=$(shell if [ "$(VERSIONEXTRA)" == "-SNAPSHOT" ] ; then echo snapshots ; else echo maven2 ; fi) REPOID=$(shell if [ "$(VERSIONEXTRA)" == "-SNAPSHOT" ] ; then echo mmbase-snapshots ; else echo mmbase ; fi) +DEPLOY=scp://mmbase.org/home/tomcat/downloads/ + #type in i18n: msginit -l -i messages.po @@ -83,8 +85,8 @@ deploy.jars: $(I18N) mmbase-kupu-i18n.jar mvn install:install-file -DgeneratePom.description='Resource bundle with translations of kupu-generic texts' -DgroupId=org.oscom -DartifactId=kupu-i18n -Dversion=$(VERSION) -Dpackaging=jar -Dfile=$(I18N) mvn install:install-file -DgeneratePom.description='Resource bundle with translations specific to kupu/mmbase' -DgroupId=org.oscom -DartifactId=mmbase-kupu-i18n -Dversion=$(VERSION) -Dpackaging=jar -Dfile=mmbase-kupu-i18n.jar - mvn deploy:deploy-file -DgeneratePom.description='Resource bundle with translations of kupu-generic texts' -DgroupId=org.oscom -DartifactId=kupu-i18n -Dversion=$(VERSION) -Dpackaging=jar -Dfile=$(I18N) -Durl=scp://mmbase.org/home/mmweb/web/$(REPO) -DrepositoryId=$(REPOID) -DuniqueVersion=false - mvn deploy:deploy-file -DgeneratePom.description='Resource bundle with translations specific to kupu/mmbase' -DgroupId=org.oscom -DartifactId=mmbase-kupu-i18n -Dversion=$(VERSION) -Dpackaging=jar -Dfile=mmbase-kupu-i18n.jar -Durl=scp://mmbase.org/home/mmweb/web/$(REPO) -DrepositoryId=$(REPOID) -DuniqueVersion=false + mvn deploy:deploy-file -DgeneratePom.description='Resource bundle with translations of kupu-generic texts' -DgroupId=org.oscom -DartifactId=kupu-i18n -Dversion=$(VERSION) -Dpackaging=jar -Dfile=$(I18N) -Durl=$(DEPLOY)$(REPO) -DrepositoryId=$(REPOID) -DuniqueVersion=false + mvn deploy:deploy-file -DgeneratePom.description='Resource bundle with translations specific to kupu/mmbase' -DgroupId=org.oscom -DartifactId=mmbase-kupu-i18n -Dversion=$(VERSION) -Dpackaging=jar -Dfile=mmbase-kupu-i18n.jar -Durl=$(DEPLOY)$(REPO) -DrepositoryId=$(REPOID) -DuniqueVersion=false deploy: mmbase-kupu.war From davisagli at codespeak.net Sat Sep 25 22:31:15 2010 From: davisagli at codespeak.net (davisagli at codespeak.net) Date: Sat, 25 Sep 2010 22:31:15 +0200 (CEST) Subject: [kupu-checkins] r77367 - kupu/branch/plone-plip9938-output-filters Message-ID: <20100925203115.8FDEA282BAD@codespeak.net> Author: davisagli Date: Sat Sep 25 22:31:12 2010 New Revision: 77367 Added: kupu/branch/plone-plip9938-output-filters/ - copied from r77366, kupu/trunk/ Log: branch for Plone plip 9938 From davisagli at codespeak.net Sun Sep 26 00:01:04 2010 From: davisagli at codespeak.net (davisagli at codespeak.net) Date: Sun, 26 Sep 2010 00:01:04 +0200 (CEST) Subject: [kupu-checkins] r77368 - kupu/branch/plone-plip9938-output-filters/Products.kupu/Products Message-ID: <20100925220104.06ACC282BAD@codespeak.net> Author: davisagli Date: Sun Sep 26 00:01:03 2010 New Revision: 77368 Modified: kupu/branch/plone-plip9938-output-filters/Products.kupu/Products/ (props changed) kupu/branch/plone-plip9938-output-filters/Products.kupu/Products/EXTERNALS.txt Log: update external Modified: kupu/branch/plone-plip9938-output-filters/Products.kupu/Products/EXTERNALS.txt ============================================================================== --- kupu/branch/plone-plip9938-output-filters/Products.kupu/Products/EXTERNALS.txt (original) +++ kupu/branch/plone-plip9938-output-filters/Products.kupu/Products/EXTERNALS.txt Sun Sep 26 00:01:03 2010 @@ -1 +1 @@ -kupu https://codespeak.net/svn/kupu/trunk/kupu +kupu https://codespeak.net/svn/kupu/branch/plone-plip9938-output-filters/kupu From davisagli at codespeak.net Sun Sep 26 00:02:32 2010 From: davisagli at codespeak.net (davisagli at codespeak.net) Date: Sun, 26 Sep 2010 00:02:32 +0200 (CEST) Subject: [kupu-checkins] r77369 - in kupu/branch/plone-plip9938-output-filters/kupu: Extensions plone plone/profiles/default Message-ID: <20100925220232.19A6A282BAD@codespeak.net> Author: davisagli Date: Sun Sep 26 00:02:30 2010 New Revision: 77369 Modified: kupu/branch/plone-plip9938-output-filters/kupu/Extensions/Install.py kupu/branch/plone-plip9938-output-filters/kupu/plone/configure.zcml kupu/branch/plone-plip9938-output-filters/kupu/plone/html2captioned.py kupu/branch/plone-plip9938-output-filters/kupu/plone/plonelibrarytool.py kupu/branch/plone-plip9938-output-filters/kupu/plone/profiles/default/metadata.xml kupu/branch/plone-plip9938-output-filters/kupu/plone/util.py Log: start updating to use plone.outputfilters Modified: kupu/branch/plone-plip9938-output-filters/kupu/Extensions/Install.py ============================================================================== --- kupu/branch/plone-plip9938-output-filters/kupu/Extensions/Install.py (original) +++ kupu/branch/plone-plip9938-output-filters/kupu/Extensions/Install.py Sun Sep 26 00:02:30 2010 @@ -27,6 +27,8 @@ from Products.kupu.config import TOOLNAME, PROJECTNAME, TOOLTITLE from zExceptions import BadRequest +from plone.outputfilters.setuphandlers import install_mimetype_and_transforms + try: from Products.MimetypesRegistry import MimeTypeItem except ImportError: @@ -55,6 +57,7 @@ print >>out, "Added 'Kupu' to available editors in Plone." install_libraries(self, out) install_configlet(self, out) + uninstall_transform(self, out) install_transform(self, out) install_resources(self, out) install_customisation(self, out) @@ -197,11 +200,7 @@ pass # Get KeyError when registering duplicate configlet. def install_transform(self, out): - try: - util.install_transform(self) - util.remove_transform(self) # Transform is installed but disabled by default. - except (NameError,AttributeError): - print >>out, "Transform not installed." + install_mimetype_and_transforms(self) def install_customisation(self, out): """Default settings may be stored in a customisation policy script so @@ -244,10 +243,8 @@ return out.getvalue() def uninstall_transform(self, out): - transform_tool = getToolByName(self, 'portal_transforms') try: util.remove_transform(self) - transform_tool.manage_delObjects(['html-to-captioned', 'captioned-to-html']) except: print >>out, "Transform not removed" pass Modified: kupu/branch/plone-plip9938-output-filters/kupu/plone/configure.zcml ============================================================================== --- kupu/branch/plone-plip9938-output-filters/kupu/plone/configure.zcml (original) +++ kupu/branch/plone-plip9938-output-filters/kupu/plone/configure.zcml Sun Sep 26 00:02:30 2010 @@ -5,6 +5,9 @@ + + + - 1.4.16 + 2 + + profile-plone.outputfilters:default + Modified: kupu/branch/plone-plip9938-output-filters/kupu/plone/util.py ============================================================================== --- kupu/branch/plone-plip9938-output-filters/kupu/plone/util.py (original) +++ kupu/branch/plone-plip9938-output-filters/kupu/plone/util.py Sun Sep 26 00:02:30 2010 @@ -3,7 +3,6 @@ from App.Common import package_home from Products.CMFCore.utils import minimalpath from Products.CMFCore.DirectoryView import createDirectoryView -from Products.MimetypesRegistry import MimeTypeItem from Products.kupu import kupu_globals try: from App.class_init import InitializeClass @@ -12,6 +11,10 @@ kupu_package_dir = package_home(kupu_globals) +from plone.outputfilters.setuphandlers import unregister_mimetype +from plone.outputfilters.setuphandlers import unregister_transform +from plone.outputfilters.setuphandlers import unregister_transform_policy + # trying to get rid of some deprecation warnings in a # backwards compatible way from Products.CMFCore.utils import getToolByName @@ -83,57 +86,16 @@ MT_CAPTIONED = 'text/x-html-captioned' def install_transform(self): - """Install the uid transform and set up the policy chain to include it when going from html to safe html""" - mimetypes_tool = getToolByName(self, 'mimetypes_registry') - if not mimetypes_tool.lookup(MT_CAPTIONED): - newtype = MimeTypeItem.MimeTypeItem('HTML with captioned images', - (MT_CAPTIONED,), ('html-captioned',), 0) - mimetypes_tool.register(newtype) - - transform_tool = getToolByName(self, 'portal_transforms') - if not hasattr(transform_tool, UID_TRANSFORM): - transform_tool.manage_addTransform(UID_TRANSFORM, 'Products.kupu.plone.html2captioned') - - if not hasattr(transform_tool, INVERSE_TRANSFORM): - transform_tool.manage_addTransform(INVERSE_TRANSFORM, 'Products.PortalTransforms.transforms.identity') - # Need to commit a subtransaction here, otherwise setting the - # parameters will cause an exception when the transaction is - # finally comitted. - try: - import transaction - transaction.savepoint(optimistic=True) - except ImportError: - get_transaction().commit(1) - - inverse = transform_tool[INVERSE_TRANSFORM] - if inverse.get_parameter_value('inputs') != [MT_CAPTIONED] or inverse.get_parameter_value('output') != 'text/html': - inverse.set_parameters(inputs=[MT_CAPTIONED], output='text/html') - - # Set policy - policies = [ (mimetype, required) for (mimetype, required) in transform_tool.listPolicies() - if mimetype==MT_SAFE ] - required = [UID_TRANSFORM] - if policies: - if not UID_TRANSFORM in required: - required.append(UID_TRANSFORM) - - transform_tool.manage_delPolicies([MT_SAFE]) - transform_tool.manage_addPolicy(MT_SAFE, required) + """ Deprecated -- we now use the transforms from plone.outputfilters instead. """ + # XXX deprecation warning def remove_transform(self): - """Disable the UID transform: remove the policy but leave everything else intact.""" - transform_tool = getToolByName(self, 'portal_transforms', None) - if transform_tool is None: - return - policies = [ (mimetype, required) for (mimetype, required) in transform_tool.listPolicies() if mimetype==MT_SAFE ] - if not policies: - return - required = list(policies[0][1]) - if UID_TRANSFORM in required: - required.remove(UID_TRANSFORM) - transform_tool.manage_delPolicies([MT_SAFE]) - if required: - transform_tool.manage_addPolicy(MT_SAFE, required) + """Remove outdated transforms.""" + unregister_transform(self, UID_TRANSFORM) + unregister_transform(self, INVERSE_TRANSFORM) + unregister_mimetype(self, MT_CAPTIONED) + unregister_transform_policy(self, MT_SAFE) + try: from zope.i18nmessageid import Message From davisagli at codespeak.net Sun Sep 26 00:35:13 2010 From: davisagli at codespeak.net (davisagli at codespeak.net) Date: Sun, 26 Sep 2010 00:35:13 +0200 (CEST) Subject: [kupu-checkins] r77370 - in kupu/trunk/kupu/plone: . tests Message-ID: <20100925223513.D4BA0282BAD@codespeak.net> Author: davisagli Date: Sun Sep 26 00:35:12 2010 New Revision: 77370 Modified: kupu/trunk/kupu/plone/librarytool.py kupu/trunk/kupu/plone/tests/test_librarymanager.py kupu/trunk/kupu/plone/util.py Log: fix tests that were broken in r68485 Modified: kupu/trunk/kupu/plone/librarytool.py ============================================================================== --- kupu/trunk/kupu/plone/librarytool.py (original) +++ kupu/trunk/kupu/plone/librarytool.py Sun Sep 26 00:35:12 2010 @@ -18,6 +18,7 @@ from Products.CMFCore.Expression import Expression, createExprContext from Products.PageTemplates.Expressions import getEngine, SecureModuleImporter from Products.kupu.plone.interfaces import IKupuLibraryTool +from Products.kupu.plone.util import Message, translate from Products.CMFCore.utils import getToolByName from zope.interface import implements @@ -82,7 +83,7 @@ lib[key] = library[key](expr_context) if key == 'title': # translate title in the "kupu" domain - lib[key] = self.translate(lib[key], domain='kupu') + lib[key] = translate(Message(lib[key], domain='kupu'), self.REQUEST) libraries.append(lib) return tuple(libraries) Modified: kupu/trunk/kupu/plone/tests/test_librarymanager.py ============================================================================== --- kupu/trunk/kupu/plone/tests/test_librarymanager.py (original) +++ kupu/trunk/kupu/plone/tests/test_librarymanager.py Sun Sep 26 00:35:12 2010 @@ -45,7 +45,7 @@ def makeLibraries(self): # need to use Plone specific tool for Acquisition. Sucks. libs = PloneKupuLibraryTool() - self.portal = FakePortal() + self.portal = Acquisition.ImplicitAcquisitionWrapper(FakePortal(), self.app.REQUEST) context = FakeContextObject() libs = libs.__of__(self.portal) self.context = context.__of__(self.portal) Modified: kupu/trunk/kupu/plone/util.py ============================================================================== --- kupu/trunk/kupu/plone/util.py (original) +++ kupu/trunk/kupu/plone/util.py Sun Sep 26 00:35:12 2010 @@ -143,6 +143,8 @@ return i18n_translate(label, context=context) return label except ImportError: + def Message(msg, *args, **kw): + return msg def translate(label, context): return label From davisagli at codespeak.net Sun Sep 26 00:37:07 2010 From: davisagli at codespeak.net (davisagli at codespeak.net) Date: Sun, 26 Sep 2010 00:37:07 +0200 (CEST) Subject: [kupu-checkins] r77371 - in kupu/branch/plone-plip9938-output-filters/kupu: . plone plone/tests Message-ID: <20100925223707.2B8E5282BAD@codespeak.net> Author: davisagli Date: Sun Sep 26 00:37:05 2010 New Revision: 77371 Modified: kupu/branch/plone-plip9938-output-filters/kupu/ (props changed) kupu/branch/plone-plip9938-output-filters/kupu/plone/librarytool.py kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/test_librarymanager.py kupu/branch/plone-plip9938-output-filters/kupu/plone/util.py Log: merge test fix from trunk Modified: kupu/branch/plone-plip9938-output-filters/kupu/plone/librarytool.py ============================================================================== --- kupu/branch/plone-plip9938-output-filters/kupu/plone/librarytool.py (original) +++ kupu/branch/plone-plip9938-output-filters/kupu/plone/librarytool.py Sun Sep 26 00:37:05 2010 @@ -18,6 +18,7 @@ from Products.CMFCore.Expression import Expression, createExprContext from Products.PageTemplates.Expressions import getEngine, SecureModuleImporter from Products.kupu.plone.interfaces import IKupuLibraryTool +from Products.kupu.plone.util import Message, translate from Products.CMFCore.utils import getToolByName from zope.interface import implements @@ -82,7 +83,7 @@ lib[key] = library[key](expr_context) if key == 'title': # translate title in the "kupu" domain - lib[key] = self.translate(lib[key], domain='kupu') + lib[key] = translate(Message(lib[key], domain='kupu'), self.REQUEST) libraries.append(lib) return tuple(libraries) Modified: kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/test_librarymanager.py ============================================================================== --- kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/test_librarymanager.py (original) +++ kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/test_librarymanager.py Sun Sep 26 00:37:05 2010 @@ -45,7 +45,7 @@ def makeLibraries(self): # need to use Plone specific tool for Acquisition. Sucks. libs = PloneKupuLibraryTool() - self.portal = FakePortal() + self.portal = Acquisition.ImplicitAcquisitionWrapper(FakePortal(), self.app.REQUEST) context = FakeContextObject() libs = libs.__of__(self.portal) self.context = context.__of__(self.portal) Modified: kupu/branch/plone-plip9938-output-filters/kupu/plone/util.py ============================================================================== --- kupu/branch/plone-plip9938-output-filters/kupu/plone/util.py (original) +++ kupu/branch/plone-plip9938-output-filters/kupu/plone/util.py Sun Sep 26 00:37:05 2010 @@ -105,6 +105,8 @@ return i18n_translate(label, context=context) return label except ImportError: + def Message(msg, *args, **kw): + return msg def translate(label, context): return label From davisagli at codespeak.net Sun Sep 26 06:44:24 2010 From: davisagli at codespeak.net (davisagli at codespeak.net) Date: Sun, 26 Sep 2010 06:44:24 +0200 (CEST) Subject: [kupu-checkins] r77372 - kupu/branch/plone-plip9938-output-filters/kupu/plone/kupu_plone_layer Message-ID: <20100926044424.BAB3D282BAD@codespeak.net> Author: davisagli Date: Sun Sep 26 06:44:22 2010 New Revision: 77372 Removed: kupu/branch/plone-plip9938-output-filters/kupu/plone/kupu_plone_layer/kupu_captioned_image.pt Log: remove kupu_captioned_image so the template in plone.outputfilters is used instead Deleted: /kupu/branch/plone-plip9938-output-filters/kupu/plone/kupu_plone_layer/kupu_captioned_image.pt ============================================================================== --- /kupu/branch/plone-plip9938-output-filters/kupu/plone/kupu_plone_layer/kupu_captioned_image.pt Sun Sep 26 06:44:22 2010 +++ (empty file) @@ -1,9 +0,0 @@ -
-
[image goes here]
-
-
-
From davisagli at codespeak.net Sun Sep 26 06:49:18 2010 From: davisagli at codespeak.net (davisagli at codespeak.net) Date: Sun, 26 Sep 2010 06:49:18 +0200 (CEST) Subject: [kupu-checkins] r77373 - in kupu/branch/plone-plip9938-output-filters/kupu/plone/tests: . input output Message-ID: <20100926044918.49BA4282BAD@codespeak.net> Author: davisagli Date: Sun Sep 26 06:49:16 2010 New Revision: 77373 Removed: kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/input/ kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/output/ kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/test_html2captioned.py kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/umlauts-testdata.txt Modified: kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/kuputestcase.py Log: remove tests that got moved to plone.outputfilters Modified: kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/kuputestcase.py ============================================================================== --- kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/kuputestcase.py (original) +++ kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/kuputestcase.py Sun Sep 26 06:49:16 2010 @@ -85,7 +85,7 @@ obj.setText('Sample document text') for k, v in kwds.items(): field = obj.getField(k) - mutator = field.getMutator(obj)(v) + field.getMutator(obj)(v) obj.reindexObject() @@ -115,27 +115,13 @@ # The image needs a fixed uid for the transform tests. f.gamma._setUID('104ede98d4c7c8eaeaa3b984f7395979') - self.create('umlauts', 'Image', f) - umlauts = f.umlauts - umlauts.setImage(open(join(PREFIX,'image.jpg'),'rb').read()) - title, description = open(join(PREFIX, 'umlauts-testdata.txt')).read().strip().split(';') - umlauts.setTitle(title) - umlauts.setDescription(description) - # The image needs a fixed uid for the transform tests. - f.umlauts._setUID('215fef98e5d7c9ebebb4c984f7395979') - - f.reindexObject() - sub1 = self.create('sub1', 'Folder', f) sub1.setSubject(['aspidistra']) sub1.reindexObject() sub2 = self.create('sub2', 'Folder', f) self.create('delta', 'Folder', sub2) - portal = self.portal tool = self.portal.kupu_library_tool - types = tool.zmi_get_resourcetypes() - #tool.deleteResource([ t.name for t in types]) for k,v in RESOURCES.items(): tool.addResourceType(k, [MapType(t) for t in v]) Deleted: /kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/test_html2captioned.py ============================================================================== --- /kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/test_html2captioned.py Sun Sep 26 06:49:16 2010 +++ (empty file) @@ -1,131 +0,0 @@ -import os, sys -if __name__ == '__main__': - execfile(os.path.join(sys.path[0], 'framework.py')) - -from kuputestcase import * - -from unittest import TestCase, TestSuite, main, makeSuite -from os.path import join, abspath, dirname - -from Products.PortalTransforms.tests.test_transforms import * -try: - from Products.PortalTransforms.z3.interfaces import IDataStream -except ImportError: - IDataStream = None -from Products.PortalTransforms.tests.utils import normalize_html -from Products.kupu import kupu_globals - -PREFIX = abspath(dirname(__file__)) - -def input_file_path(file): - return join(PREFIX, 'input', file) - -def output_file_path(file): - return join(PREFIX, 'output', file) - -tests =( -('Products.kupu.plone.html2captioned', "minimal.in", "minimal.out", normalize_html, 0), -('Products.kupu.plone.html2captioned', "simple.in", "simple.out", normalize_html, 0), -('Products.kupu.plone.html2captioned', "baduid.in", "baduid.out", normalize_html, 0), -('Products.kupu.plone.html2captioned', "notquoted.in", "notquoted.out", normalize_html, 0), -('Products.kupu.plone.html2captioned', "notcaptioned.in", "notcaptioned.out", normalize_html, 0), -('Products.kupu.plone.html2captioned', "linked.in", "linked.out", normalize_html, 0), -('Products.kupu.plone.html2captioned', "umlauts.in", "umlauts.out", normalize_html, 0), -('Products.kupu.plone.html2captioned', "umlauts2.in", "umlauts2.out", normalize_html, 0), -('Products.kupu.plone.html2captioned', "imagemap.in", "imagemap.out", normalize_html, 0), - ) - -class TransformTest(KupuTestCase): - def do_convert(self, filename=None): - if filename is None and exists(self.output + '.nofilename'): - output = self.output + '.nofilename' - else: - output = self.output - input = open(self.input) - orig = input.read() - input.close() - data = datastream(self.transform.name()) - res_data = self.transform.convert(orig, data, filename=filename, context=self.portal) - if IDataStream is not None: - self.assert_(IDataStream.providedBy(res_data)) - got = res_data.getData() - try: - output = open(output) - except IOError: - import sys - print >>sys.stderr, 'No output file found.' - print >>sys.stderr, 'File %s created, check it !' % self.output - output = open(output, 'w') - output.write(got) - output.close() - self.assert_(0) - expected = output.read() - raw_got, raw_expected = got, expected - if self.normalize is not None: - expected = self.normalize(expected) - got = self.normalize(got) - output.close() - - self.assertEquals(got, expected, - 'Got:\n[%s]\n\n!=\n\nExpected:\n[%s]\n\nIN %s(%s)' % ( - got, expected, self.transform.name(), self.input)) - self.assertEquals(self.subobjects, len(res_data.getSubObjects()), - 'Subobjects:\n%s\n\n!=\n\nLength: %s\n\nIN %s(%s)' % ( - self.subobjects, len(res_data.getSubObjects()), self.transform.name(), self.input)) - - def testSame(self): - self.setup_content() - self.do_convert(filename=self.input) - - def testSameNoFilename(self): - self.setup_content() - self.do_convert() - - def __repr__(self): - return self.transform.name() - -TR_NAMES = None - -def make_tests(test_descr): - """generate tests classes from test info - - return the list of generated test classes - """ - tests = [] - for _transform, tr_input, tr_output, _normalize, _subobjects in test_descr: - # load transform if necessary - if type(_transform) is type(''): - try: - _transform = load(_transform).register() - except: - import traceback - traceback.print_exc() - continue - # - if TR_NAMES is not None and not _transform.name() in TR_NAMES: - print 'skip test for', _transform.name() - continue - - class TransformTestSubclass(TransformTest): - input = input_file_path(tr_input) - output = output_file_path(tr_output) - transform = _transform - normalize = lambda x, y: _normalize(y) - subobjects = _subobjects - - tests.append(TransformTestSubclass) - - return tests - -def test_suite(): - t = [ (_transform, - input_file_path(tr_input), - output_file_path(tr_output), - _normalize, - _subobjects) - for _transform, tr_input, tr_output, _normalize, _subobjects in tests ] - - return TestSuite([makeSuite(test) for test in make_tests(t)]) - -if __name__=='__main__': - main(defaultTest='test_suite') Deleted: /kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/umlauts-testdata.txt ============================================================================== --- /kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/umlauts-testdata.txt Sun Sep 26 06:49:16 2010 +++ (empty file) @@ -1 +0,0 @@ -Kupu Test Image ???;Test image caption ??? From davisagli at codespeak.net Mon Sep 27 01:53:04 2010 From: davisagli at codespeak.net (davisagli at codespeak.net) Date: Mon, 27 Sep 2010 01:53:04 +0200 (CEST) Subject: [kupu-checkins] r77398 - kupu/branch/plone-plip9938-output-filters/kupu/plone/kupu_plone_layer Message-ID: <20100926235304.4A12E282BAD@codespeak.net> Author: davisagli Date: Mon Sep 27 01:53:01 2010 New Revision: 77398 Removed: kupu/branch/plone-plip9938-output-filters/kupu/plone/kupu_plone_layer/resolveuid.py Log: remove resolveuid script; it's now a browser view in plone.outputfilters Deleted: /kupu/branch/plone-plip9938-output-filters/kupu/plone/kupu_plone_layer/resolveuid.py ============================================================================== --- /kupu/branch/plone-plip9938-output-filters/kupu/plone/kupu_plone_layer/resolveuid.py Mon Sep 27 01:53:01 2010 +++ (empty file) @@ -1,39 +0,0 @@ -## Script (Python) "resolveuid" -##title=Retrieve an object using its UID -##bind container=container -##bind context=context -##bind namespace= -##bind script=script -##bind subpath=traverse_subpath -##parameters= -# (reference_url is supposed to do the same thing, but is broken) -from Products.CMFCore.utils import getToolByName -from Products.PythonScripts.standard import html_quote -from AccessControl import Unauthorized - -request = context.REQUEST -response = request.RESPONSE - -try: - uuid = traverse_subpath.pop(0) -except: - raise Unauthorized, context - -reference_tool = getToolByName(context, 'reference_catalog') -obj = reference_tool.lookupObject(uuid) -if not obj: - hook = getattr(context, 'kupu_resolveuid_hook', None) - if hook: - obj = hook(uuid) - if not obj: - return response.notFoundError('''The link you followed appears to be broken''') - -if traverse_subpath: - traverse_subpath.insert(0, obj.absolute_url()) - target = '/'.join(traverse_subpath) -else: - target = obj.absolute_url() - -if request.QUERY_STRING: - target += '?' + request.QUERY_STRING -return response.redirect(target, status=301) From davisagli at codespeak.net Thu Sep 30 05:54:34 2010 From: davisagli at codespeak.net (davisagli at codespeak.net) Date: Thu, 30 Sep 2010 05:54:34 +0200 (CEST) Subject: [kupu-checkins] r77481 - in kupu/branch/plone-plip9938-output-filters/kupu: . Extensions plone plone/tests Message-ID: <20100930035434.86BFE282B9E@codespeak.net> Author: davisagli Date: Thu Sep 30 05:54:31 2010 New Revision: 77481 Added: kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/test_outputfilters.py Modified: kupu/branch/plone-plip9938-output-filters/kupu/Extensions/Install.py kupu/branch/plone-plip9938-output-filters/kupu/configure.zcml kupu/branch/plone-plip9938-output-filters/kupu/plone/configure.zcml kupu/branch/plone-plip9938-output-filters/kupu/plone/html2captioned.py kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/kuputestcase.py Log: integration test for outputfilters use; actually load the ZCML that was added a long time ago Modified: kupu/branch/plone-plip9938-output-filters/kupu/Extensions/Install.py ============================================================================== --- kupu/branch/plone-plip9938-output-filters/kupu/Extensions/Install.py (original) +++ kupu/branch/plone-plip9938-output-filters/kupu/Extensions/Install.py Thu Sep 30 05:54:31 2010 @@ -29,11 +29,6 @@ from plone.outputfilters.setuphandlers import install_mimetype_and_transforms -try: - from Products.MimetypesRegistry import MimeTypeItem -except ImportError: - pass # Plone not available - kupu_package_dir = package_home(kupu_globals) def install_plone(self, out): Modified: kupu/branch/plone-plip9938-output-filters/kupu/configure.zcml ============================================================================== --- kupu/branch/plone-plip9938-output-filters/kupu/configure.zcml (original) +++ kupu/branch/plone-plip9938-output-filters/kupu/configure.zcml Thu Sep 30 05:54:31 2010 @@ -5,4 +5,6 @@ Zope3 specific stuff --> + +
Modified: kupu/branch/plone-plip9938-output-filters/kupu/plone/configure.zcml ============================================================================== --- kupu/branch/plone-plip9938-output-filters/kupu/plone/configure.zcml (original) +++ kupu/branch/plone-plip9938-output-filters/kupu/plone/configure.zcml Thu Sep 30 05:54:31 2010 @@ -3,17 +3,22 @@ xmlns:genericsetup="http://namespaces.zope.org/genericsetup" xmlns:zcml="http://namespaces.zope.org/zcml"> - + + + + + + + + - - Modified: kupu/branch/plone-plip9938-output-filters/kupu/plone/html2captioned.py ============================================================================== --- kupu/branch/plone-plip9938-output-filters/kupu/plone/html2captioned.py (original) +++ kupu/branch/plone-plip9938-output-filters/kupu/plone/html2captioned.py Thu Sep 30 05:54:31 2010 @@ -139,7 +139,7 @@ @property def available(self): - kupu = getToolByName(self.context, 'kupu_library_tool') + kupu = getToolByName(getSite(), 'kupu_library_tool') return kupu.getLinkbyuid() @@ -148,7 +148,7 @@ @property def available(self): - kupu = getToolByName(self.context, 'kupu_library_tool') + kupu = getToolByName(getSite(), 'kupu_library_tool') return kupu.getCaptioning() Modified: kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/kuputestcase.py ============================================================================== --- kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/kuputestcase.py (original) +++ kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/kuputestcase.py Thu Sep 30 05:54:31 2010 @@ -14,10 +14,18 @@ execfile(os.path.join(sys.path[0], 'framework.py')) from Products.PloneTestCase import PloneTestCase +from Products.PloneTestCase.layer import onsetup from Products.PloneTestCase.ptc import portal_owner +from Products.Five import zcml PloneTestCase.setupPloneSite(products=['ATContentTypes', 'kupu']) + at onsetup +def setup_product(): + import Products.kupu.plone + zcml.load_config('configure.zcml', Products.kupu.plone) +setup_product() + from AccessControl.SecurityManagement import newSecurityManager try: from Products.ATContentTypes.lib import constraintypes @@ -98,22 +106,12 @@ f = self.create('folder', 'Folder') self.create('alpha', 'Document', f, subject=['aspidistra']) - alpha = f.alpha - # The dcoument needs a fixed uid for the transform tests. - alpha._setUID('828cfdd7e4ee51e223d0ae0672412633') - self.create('beta', 'Document', f, subject=['aspidistra']) - beta = f.beta - # The dcoument needs a fixed uid for the transform tests. - beta._setUID('f0249e0f3f2ff915d707e9d64a3e3621') - self.create('gamma', 'Image', f) gamma = f.gamma gamma.setImage(open(join(PREFIX,'image.jpg'),'rb').read()) - gamma.setTitle('Kupu Test Image') - gamma.setDescription('Test image caption') - # The image needs a fixed uid for the transform tests. - f.gamma._setUID('104ede98d4c7c8eaeaa3b984f7395979') + gamma.setTitle('Image') + gamma.setDescription('My caption') sub1 = self.create('sub1', 'Folder', f) sub1.setSubject(['aspidistra']) Added: kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/test_outputfilters.py ============================================================================== --- (empty file) +++ kupu/branch/plone-plip9938-output-filters/kupu/plone/tests/test_outputfilters.py Thu Sep 30 05:54:31 2010 @@ -0,0 +1,47 @@ +from Products.kupu.plone.tests.kuputestcase import KupuTestCase + +class OutputFiltersIntegrationTestCase(KupuTestCase): + + def testFilters(self): + self.setup_content() + + # Let's transform some text/html to text/x-html-safe, which should + # trigger the filters. + text = """ + + + My alt text +

+
This is line 1
+       This is line 2
+ +""" % self.portal.folder.gamma.UID() + transformed_text = self.portal.portal_transforms.convertTo( + 'text/x-html-safe', text, mimetype='text/html', context=self.portal) + self.assertEqual(""" +
+
My alt text
+
My alt text
+
+ +

+
Image
+
My caption
+
+

+
This is line 1
+       This is line 2
+ """, str(transformed_text)) + + # now turn off the settings and make sure the filters are not applied + self.kupu.configure_kupu(captioning=True, linkbyuid=True) + transformed_text_2 = self.portal.portal_transforms.convertTo( + 'text/x-html-safe', text, mimetype='text/html', context=self.portal) + self.assertNotEqual(transformed_text_2, transformed_text) + + +from unittest import TestSuite, makeSuite +def test_suite(): + suite = TestSuite() + suite.addTest(makeSuite(OutputFiltersIntegrationTestCase)) + return suite