From jvloothuis at codespeak.net Wed Nov 1 04:09:10 2006
From: jvloothuis at codespeak.net (jvloothuis at codespeak.net)
Date: Wed, 1 Nov 2006 04:09:10 +0100 (CET)
Subject: [Kukit-checkins] r33990 - in kukit/azax/trunk: . plugins/core tests
Message-ID: <20061101030910.D1EC010060@code0.codespeak.net>
Author: jvloothuis
Date: Wed Nov 1 04:08:53 2006
New Revision: 33990
Modified:
kukit/azax/trunk/azaxview.py
kukit/azax/trunk/events.py
kukit/azax/trunk/interfaces.py
kukit/azax/trunk/plugins/core/commands.py
kukit/azax/trunk/tests/azaxview.txt
kukit/azax/trunk/tests/test_azaxview.py
Log:
Made azax views sites with site managers to intercept all events and relay them as Azax events
Modified: kukit/azax/trunk/azaxview.py
==============================================================================
--- kukit/azax/trunk/azaxview.py (original)
+++ kukit/azax/trunk/azaxview.py Wed Nov 1 04:08:53 2006
@@ -36,19 +36,54 @@
except ImportError:
from zope.app.publisher.browser import BrowserView
-from interfaces import IAzaxEvent
-
-from zope.interface import implements, Interface
-from interfaces import IAzaxView
from commands import AzaxCommands
-import zope.component as capi
+from events import AzaxEvent
+from interfaces import IAzaxEvent, IAzaxView
from pluginregistry.commandset import getRegisteredCommandSet
+from zope import app, component, interface
+from zope.app.component.hooks import setSite, setHooks
+from zope.app.component.interfaces import ISite
+from zope.app.component.site import clearSite
+from zope.component.globalregistry import BaseGlobalComponents
+from zope.component.interfaces import IComponentLookup
+from zope.event import notify
+from zope.interface import implements, Interface
+from zope.publisher.browser import BrowserView
-from zope import component
-import zope.event
-from events import AzaxEvent
+class SiteView(BrowserView):
+ """A browser view that is its own site
+ """
+
+ def __init__(self, context, request):
+ super(SiteView, self).__init__(context, request)
+
+ next_sitemanager = component.getSiteManager()
+
+ self._sitemanager = BaseGlobalComponents('siteview')
+ interface.alsoProvides(self, ISite)
+
+ self._sitemanager.__bases__ = (next_sitemanager, )
+
+ # register object event handler
+ self._sitemanager.registerHandler(self._eventRedispatcher)
+ setHooks()
+ setSite(self)
+
+ def getSiteManager(self):
+ return self._sitemanager
+
+ def setSiteManager(self, sm):
+ raise XXX
+
+ @component.adapter(Interface)
+ def _eventRedispatcher(self, event):
+ if not IAzaxEvent.providedBy(event):
+ notify(AzaxEvent(self, event))
+
+ def render(self):
+ clearSite()
-class AzaxBaseView(BrowserView):
+class AzaxBaseView(SiteView):
""" Base azax view
this allows setting up the content of the response, and then
@@ -58,7 +93,7 @@
implements(IAzaxView)
def __init__(self, context, request):
- BrowserView.__init__(self, context, request)
+ super(AzaxBaseView, self).__init__(context, request)
self.commands = AzaxCommands()
def _set_context(self, context):
@@ -72,7 +107,9 @@
def render(self):
'''All methods must use this to return their command set
'''
- return self.commands.render(self.request)
+ commands = self.commands.render(self.request)
+ super(AzaxBaseView, self).render()
+ return commands
def cancelRedirect(self):
if self.request.RESPONSE.getStatus() == 302:
@@ -84,9 +121,9 @@
def handle(self, *args):
for event in args: # first fire all normal stuff
- zope.event.notify(event)
+ notify(event)
for event in args: # now do the azax bits
- component.handle(AzaxEvent(self), event)
+ component.handle(AzaxEvent(self, event))
def getCommandSet(self, name):
commandset = getRegisteredCommandSet(name)
Modified: kukit/azax/trunk/events.py
==============================================================================
--- kukit/azax/trunk/events.py (original)
+++ kukit/azax/trunk/events.py Wed Nov 1 04:08:53 2006
@@ -4,5 +4,6 @@
class AzaxEvent(object):
implements(IAzaxEvent)
- def __init__(self, view):
+ def __init__(self, view, event):
self.view = view
+ self.event = event
Modified: kukit/azax/trunk/interfaces.py
==============================================================================
--- kukit/azax/trunk/interfaces.py (original)
+++ kukit/azax/trunk/interfaces.py Wed Nov 1 04:08:53 2006
@@ -112,4 +112,5 @@
This will normally be accompanied by another event."""
view = Attribute(u"The Azax view")
+ event = Attribute(u"The orginal event")
Modified: kukit/azax/trunk/plugins/core/commands.py
==============================================================================
--- kukit/azax/trunk/plugins/core/commands.py (original)
+++ kukit/azax/trunk/plugins/core/commands.py Wed Nov 1 04:08:53 2006
@@ -16,7 +16,6 @@
from zope.interface import implements
-
class KSSCoreCommands(AzaxViewAdapter):
__allow_access_to_unprotected_subobjects__ = 1
implements(IKSSCoreCommands)
Modified: kukit/azax/trunk/tests/azaxview.txt
==============================================================================
--- kukit/azax/trunk/tests/azaxview.txt (original)
+++ kukit/azax/trunk/tests/azaxview.txt Wed Nov 1 04:08:53 2006
@@ -20,6 +20,11 @@
>>> from zope import component
>>> from zope.lifecycleevent import ObjectModifiedEvent
>>> from zope.lifecycleevent.interfaces import IObjectModifiedEvent
+ >>> from zope.event import notify
+ >>> from zope.app.component.interfaces import ISite
+
+ >>> from zope.app.folder import folder
+ >>> myfolder = folder.rootFolder()
Now we will write our custom.
@@ -30,7 +35,7 @@
... return self.render()
>>> request = DebugTestRequest()
- >>> view = SampleView(None, request)
+ >>> view = SampleView(myfolder, request)
>>> view.add_page("some title")
[]
@@ -38,8 +43,9 @@
register a handler. This handler will catch the object event and add some Azax
commands.
- >>> @component.adapter(IAzaxEvent, IObjectModifiedEvent)
- ... def stuff_happend(azax_event, orig_event):
+ >>> @component.adapter(IAzaxEvent)
+ ... def stuff_happend(azax_event):
+ ... orig_event = azax_event.event
... azax_event.view.getCommandSet('core').replaceInnerHTML(
... 'div.class', orig_event.object)
>>> component.provideHandler(stuff_happend)
@@ -49,3 +55,22 @@
>>> view.add_page("some title")[0]['params']['html']
u'some title'
+The example above used our convenience method to generate events. You normally
+do this for all mutations you make yourself. Not all events are generated this
+way though. In case of a workflow transition events may be fired as well. Azax
+views account for this automatically. You don't need to do anything special.
+
+We will demonstrate this using a simple view. This view will generate the
+modified event through normal component api instead of our handle method.
+
+ >>> class AnotherView(AzaxBaseView):
+ ... def add_page(self, title):
+ ... # normally you would change the zope database here
+ ... notify(ObjectModifiedEvent(title))
+ ... return self.render()
+
+This should now still invoke our handler.
+
+ >>> view = AnotherView(myfolder, request)
+ >>> view.add_page("another title")[0]['params']['html']
+ u'another title'
Modified: kukit/azax/trunk/tests/test_azaxview.py
==============================================================================
--- kukit/azax/trunk/tests/test_azaxview.py (original)
+++ kukit/azax/trunk/tests/test_azaxview.py Wed Nov 1 04:08:53 2006
@@ -37,9 +37,19 @@
from Products.azax.tests.base import IDebugRequest
from Products.azax.tests.commandinspector import CommandInspectorView
from zope import component
+from Products.Five import zcml
+import Products.Five
+from zope.app.component.hooks import setSite, getSite, setHooks
def setUpDoctTest(test=None):
PlacelessSetup().setUp()
+
+ zcml.load_config("meta.zcml", Products.Five)
+ zcml.load_config("permissions.zcml", Products.Five)
+ zcml.load_config("configure.zcml", Products.Five.component)
+
+ zcml.load_config("configure.zcml", Products.Five.site)
+
commandview = component.adapter(
IAzaxCommands, IDebugRequest)(CommandInspectorView)
component.provideAdapter(commandview)
From jvloothuis at codespeak.net Wed Nov 1 05:13:46 2006
From: jvloothuis at codespeak.net (jvloothuis at codespeak.net)
Date: Wed, 1 Nov 2006 05:13:46 +0100 (CET)
Subject: [Kukit-checkins] r33991 - in kukit/azax/trunk: . tests
Message-ID: <20061101041346.0429B10053@code0.codespeak.net>
Author: jvloothuis
Date: Wed Nov 1 05:13:42 2006
New Revision: 33991
Added:
kukit/azax/trunk/siteview.txt
kukit/azax/trunk/tests/test_siteview.py
Log:
Added unit tests for site view
Added: kukit/azax/trunk/siteview.txt
==============================================================================
--- (empty file)
+++ kukit/azax/trunk/siteview.txt Wed Nov 1 05:13:42 2006
@@ -0,0 +1,70 @@
+=========
+Site view
+=========
+
+All Azax views are not only a browser view but a site as well. A site is Zope
+used as a local component registry. You can hookup adapters etc. in such a
+place. Azax views are made sites to intercept all incomming events.
+
+By doing so the view is able to hookup it's own event redispatcher. This is a
+normal event handler which generates the specific Azax events. These events
+contain a reference to the view itself. By doing so event handlers can modify
+the response body.
+
+This behaviour is needed for making event driven changes to a page. For
+instance when you change a title in a document you also want the menu reloaded.
+By using events for this we can achieve a degree of decoupling.
+
+The main class which implements views as a site is `SiteView`.
+
+ >>> from Products.azax.azaxview import SiteView
+
+When created this view will make it's manager the default site manager.
+
+ >>> from zope import component
+ >>> old_sitemanager = component.getSiteManager()
+ >>> view = SiteView(None, None)
+ >>> old_sitemanager is component.getSiteManager()
+ False
+ >>> view.getSiteManager() is component.getSiteManager()
+ True
+
+It also immediatly registers its special event handler. Like mentioned earlier
+this will dispatch IAzaxEvent's.
+
+ >>> from zope.component.eventtesting import getEvents, clearEvents
+ >>> from Products.azax.interfaces import IAzaxEvent
+ >>> from zope.lifecycleevent import ObjectModifiedEvent
+ >>> from zope.event import notify
+
+ >>> clearEvents()
+ >>> notify(ObjectModifiedEvent(None))
+
+Two events are fired by this.
+
+ >>> len(getEvents())
+ 2
+
+The original event and the special IAzaxEvent.
+
+ >>> from zope.lifecycleevent.interfaces import IObjectModifiedEvent
+ >>> original_event = getEvents()[0]
+ >>> IObjectModifiedEvent.providedBy(original_event)
+ True
+
+ >>> azax_event = getEvents()[1]
+ >>> IAzaxEvent.providedBy(azax_event)
+ True
+
+The Azax event has reference to the view and the original event.
+
+ >>> azax_event.event is original_event
+ True
+ >>> azax_event.view is view
+ True
+
+When the view is rendered it unregisters itself as a site.
+
+ >>> view.render()
+ >>> view.getSiteManager() is component.getSiteManager()
+ False
Added: kukit/azax/trunk/tests/test_siteview.py
==============================================================================
--- (empty file)
+++ kukit/azax/trunk/tests/test_siteview.py Wed Nov 1 05:13:42 2006
@@ -0,0 +1,39 @@
+from base import AzaxViewTestCase,FakeContent, TestRequest, DebugTestRequest
+from Products.azax import AzaxUnicodeError
+from Products.azax.events import AzaxEvent
+from Products.azax.interfaces import IAzaxCommands, IAzaxEvent
+from Products.azax.interfaces import IAzaxView
+from Products.azax.pluginregistry.action import Action
+from Products.azax.pluginregistry.commandset import CommandSet
+from Products.azax.pluginregistry.interfaces import IAction, ICommandSet
+from Products.azax.pluginregistry.plugin import registerPlugin
+from Products.azax.plugins.core.commands import KSSCoreCommands
+from Products.azax.plugins.core.interfaces import IKSSCoreCommands
+from Products.azax.tests.base import IDebugRequest
+from Products.azax.tests.commandinspector import CommandInspectorView
+from Products.Five import zcml
+from zope import component
+from zope.component import eventtesting
+from zope.testing import doctest
+from zope.testing.cleanup import CleanUp as PlacelessSetup
+import Products.Five
+import unittest, os
+
+def setUpDoctTest(test=None):
+ PlacelessSetup().setUp()
+ eventtesting.setUp()
+
+ zcml.load_config("meta.zcml", Products.Five)
+ zcml.load_config("permissions.zcml", Products.Five)
+ zcml.load_config("configure.zcml", Products.Five.component)
+
+ zcml.load_config("configure.zcml", Products.Five.site)
+
+def tearDownDoctTest(test=None):
+ PlacelessSetup().tearDown()
+
+def test_suite():
+ suite = doctest.DocFileSuite('../siteview.txt',
+ setUp=setUpDoctTest,
+ tearDown=tearDownDoctTest)
+ return unittest.TestSuite(suite)
From jvloothuis at codespeak.net Wed Nov 1 05:14:36 2006
From: jvloothuis at codespeak.net (jvloothuis at codespeak.net)
Date: Wed, 1 Nov 2006 05:14:36 +0100 (CET)
Subject: [Kukit-checkins] r33992 - kukit/azax/trunk/tests
Message-ID: <20061101041436.22F4410053@code0.codespeak.net>
Author: jvloothuis
Date: Wed Nov 1 05:14:34 2006
New Revision: 33992
Removed:
kukit/azax/trunk/tests/azaxview.txt
Log:
Removed silly text file
Deleted: /kukit/azax/trunk/tests/azaxview.txt
==============================================================================
--- /kukit/azax/trunk/tests/azaxview.txt Wed Nov 1 05:14:34 2006
+++ (empty file)
@@ -1,76 +0,0 @@
-=====================
-Azax views and events
-=====================
-
-When we make a change using Ajax calls we would like to update the browser
-page. This can be done by sending browser commands. Some part of the page may
-need to be update based on modifications.
-
-We don't want to handle all these modifications in our own code. An example of
-such a modification change would be changing the title. This should also update
-the navigation portlet.
-
-To make this work azax views do something special. We will explain this by
-creating an example. The following will setup our enviroment and show that
-normal operation works.
-
- >>> from Products.azax.azaxview import AzaxBaseView
- >>> from Products.azax.interfaces import IAzaxEvent
- >>> from Products.azax.tests.base import DebugTestRequest
- >>> from zope import component
- >>> from zope.lifecycleevent import ObjectModifiedEvent
- >>> from zope.lifecycleevent.interfaces import IObjectModifiedEvent
- >>> from zope.event import notify
- >>> from zope.app.component.interfaces import ISite
-
- >>> from zope.app.folder import folder
- >>> myfolder = folder.rootFolder()
-
-Now we will write our custom.
-
- >>> class SampleView(AzaxBaseView):
- ... def add_page(self, title):
- ... # normally you would change the zope database here
- ... self.handle(ObjectModifiedEvent(title))
- ... return self.render()
-
- >>> request = DebugTestRequest()
- >>> view = SampleView(myfolder, request)
- >>> view.add_page("some title")
- []
-
-Now that we have shown that this will not generate any Azax commands we will
-register a handler. This handler will catch the object event and add some Azax
-commands.
-
- >>> @component.adapter(IAzaxEvent)
- ... def stuff_happend(azax_event):
- ... orig_event = azax_event.event
- ... azax_event.view.getCommandSet('core').replaceInnerHTML(
- ... 'div.class', orig_event.object)
- >>> component.provideHandler(stuff_happend)
-
-When we call the renderer now it should have some more data in it.
-
- >>> view.add_page("some title")[0]['params']['html']
- u'some title'
-
-The example above used our convenience method to generate events. You normally
-do this for all mutations you make yourself. Not all events are generated this
-way though. In case of a workflow transition events may be fired as well. Azax
-views account for this automatically. You don't need to do anything special.
-
-We will demonstrate this using a simple view. This view will generate the
-modified event through normal component api instead of our handle method.
-
- >>> class AnotherView(AzaxBaseView):
- ... def add_page(self, title):
- ... # normally you would change the zope database here
- ... notify(ObjectModifiedEvent(title))
- ... return self.render()
-
-This should now still invoke our handler.
-
- >>> view = AnotherView(myfolder, request)
- >>> view.add_page("another title")[0]['params']['html']
- u'another title'
From jvloothuis at codespeak.net Wed Nov 1 05:15:29 2006
From: jvloothuis at codespeak.net (jvloothuis at codespeak.net)
Date: Wed, 1 Nov 2006 05:15:29 +0100 (CET)
Subject: [Kukit-checkins] r33993 - kukit/azax/trunk
Message-ID: <20061101041529.73DA410053@code0.codespeak.net>
Author: jvloothuis
Date: Wed Nov 1 05:15:27 2006
New Revision: 33993
Removed:
kukit/azax/trunk/azaxview.txt
Log:
Removed silly text file
Deleted: /kukit/azax/trunk/azaxview.txt
==============================================================================
--- /kukit/azax/trunk/azaxview.txt Wed Nov 1 05:15:27 2006
+++ (empty file)
@@ -1,4 +0,0 @@
-Testing bla sdffadsfa
-
- >>> True
- False
From jvloothuis at codespeak.net Wed Nov 1 05:20:30 2006
From: jvloothuis at codespeak.net (jvloothuis at codespeak.net)
Date: Wed, 1 Nov 2006 05:20:30 +0100 (CET)
Subject: [Kukit-checkins] r33994 - in kukit/azax/trunk: . tests
Message-ID: <20061101042030.3C19110053@code0.codespeak.net>
Author: jvloothuis
Date: Wed Nov 1 05:20:26 2006
New Revision: 33994
Added:
kukit/azax/trunk/azaxview.txt
Modified:
kukit/azax/trunk/siteview.txt
kukit/azax/trunk/tests/test_azaxview.py
Log:
Readded azax view tests and changed fileformats to unix
Added: kukit/azax/trunk/azaxview.txt
==============================================================================
--- (empty file)
+++ kukit/azax/trunk/azaxview.txt Wed Nov 1 05:20:26 2006
@@ -0,0 +1,78 @@
+=====================
+Azax views and events
+=====================
+
+When we make a change using Ajax calls we would like to update the browser
+page. This can be done by sending browser commands. Some part of the page may
+need to be update based on modifications.
+
+We don't want to handle all these modifications in our own code. An example of
+such a modification change would be changing the title. This should also update
+
+the navigation portlet.
+
+To make this work azax views do something special. We will explain this by
+creating an example. The following will setup our enviroment and show that
+normal operation works.
+
+ >>> from Products.azax.azaxview import AzaxBaseView
+ >>> from Products.azax.interfaces import IAzaxEvent
+ >>> from Products.azax.tests.base import DebugTestRequest
+ >>> from zope import component
+ >>> from zope.lifecycleevent import ObjectModifiedEvent
+ >>> from zope.lifecycleevent.interfaces import IObjectModifiedEvent
+ >>> from zope.event import notify
+ >>> from zope.app.component.interfaces import ISite
+
+ >>> from zope.app.folder import folder
+ >>> myfolder = folder.rootFolder()
+
+Now we will write our custom.
+
+ >>> class SampleView(AzaxBaseView):
+ ... def add_page(self, title):
+ ... # normally you would change the zope database here
+ ... self.handle(ObjectModifiedEvent(title))
+ ... return self.render()
+
+ >>> request = DebugTestRequest()
+ >>> view = SampleView(myfolder, request)
+ >>> view.add_page("some title")
+ []
+
+Now that we have shown that this will not generate any Azax commands we will
+register a handler. This handler will catch the object event and add some Azax
+commands.
+
+ >>> @component.adapter(IAzaxEvent)
+ ... def stuff_happend(azax_event):
+ ... orig_event = azax_event.event
+ ... azax_event.view.getCommandSet('core').replaceInnerHTML(
+ ... 'div.class', orig_event.object)
+ >>> component.provideHandler(stuff_happend)
+
+When we call the renderer now it should have some more data in it.
+
+ >>> view.add_page("some title")[0]['params']['html']
+ u'some title'
+
+The example above used our convenience method to generate events. You normally
+do this for all mutations you make yourself. Not all events are generated this
+way though. In case of a workflow transition events may be fired as well. Azax
+views account for this automatically. You don't need to do anything special.
+
+We will demonstrate this using a simple view. This view will generate the
+modified event through normal component api instead of our handle method.
+
+ >>> class AnotherView(AzaxBaseView):
+ ... def add_page(self, title):
+ ... # normally you would change the zope database here
+ ... notify(ObjectModifiedEvent(title))
+ ... return self.render()
+
+This should now still invoke our handler.
+
+ >>> view = AnotherView(myfolder, request)
+ >>> view.add_page("another title")[0]['params']['html']
+ u'another title'
+
Modified: kukit/azax/trunk/siteview.txt
==============================================================================
--- kukit/azax/trunk/siteview.txt (original)
+++ kukit/azax/trunk/siteview.txt Wed Nov 1 05:20:26 2006
@@ -1,70 +1,70 @@
-=========
-Site view
-=========
-
-All Azax views are not only a browser view but a site as well. A site is Zope
-used as a local component registry. You can hookup adapters etc. in such a
-place. Azax views are made sites to intercept all incomming events.
-
-By doing so the view is able to hookup it's own event redispatcher. This is a
-normal event handler which generates the specific Azax events. These events
-contain a reference to the view itself. By doing so event handlers can modify
-the response body.
-
-This behaviour is needed for making event driven changes to a page. For
-instance when you change a title in a document you also want the menu reloaded.
-By using events for this we can achieve a degree of decoupling.
-
-The main class which implements views as a site is `SiteView`.
-
- >>> from Products.azax.azaxview import SiteView
-
-When created this view will make it's manager the default site manager.
-
- >>> from zope import component
- >>> old_sitemanager = component.getSiteManager()
- >>> view = SiteView(None, None)
- >>> old_sitemanager is component.getSiteManager()
- False
- >>> view.getSiteManager() is component.getSiteManager()
- True
-
-It also immediatly registers its special event handler. Like mentioned earlier
-this will dispatch IAzaxEvent's.
-
- >>> from zope.component.eventtesting import getEvents, clearEvents
- >>> from Products.azax.interfaces import IAzaxEvent
- >>> from zope.lifecycleevent import ObjectModifiedEvent
- >>> from zope.event import notify
-
- >>> clearEvents()
- >>> notify(ObjectModifiedEvent(None))
-
-Two events are fired by this.
-
- >>> len(getEvents())
- 2
-
-The original event and the special IAzaxEvent.
-
- >>> from zope.lifecycleevent.interfaces import IObjectModifiedEvent
- >>> original_event = getEvents()[0]
- >>> IObjectModifiedEvent.providedBy(original_event)
- True
-
- >>> azax_event = getEvents()[1]
- >>> IAzaxEvent.providedBy(azax_event)
- True
-
-The Azax event has reference to the view and the original event.
-
- >>> azax_event.event is original_event
- True
- >>> azax_event.view is view
- True
-
-When the view is rendered it unregisters itself as a site.
-
- >>> view.render()
- >>> view.getSiteManager() is component.getSiteManager()
- False
+=========
+Site view
+=========
+
+All Azax views are not only a browser view but a site as well. A site is Zope
+used as a local component registry. You can hookup adapters etc. in such a
+place. Azax views are made sites to intercept all incomming events.
+
+By doing so the view is able to hookup it's own event redispatcher. This is a
+normal event handler which generates the specific Azax events. These events
+contain a reference to the view itself. By doing so event handlers can modify
+the response body.
+
+This behaviour is needed for making event driven changes to a page. For
+instance when you change a title in a document you also want the menu reloaded.
+By using events for this we can achieve a degree of decoupling.
+
+The main class which implements views as a site is `SiteView`.
+
+ >>> from Products.azax.azaxview import SiteView
+
+When created this view will make it's manager the default site manager.
+
+ >>> from zope import component
+ >>> old_sitemanager = component.getSiteManager()
+ >>> view = SiteView(None, None)
+ >>> old_sitemanager is component.getSiteManager()
+ False
+ >>> view.getSiteManager() is component.getSiteManager()
+ True
+
+It also immediatly registers its special event handler. Like mentioned earlier
+this will dispatch IAzaxEvent's.
+
+ >>> from zope.component.eventtesting import getEvents, clearEvents
+ >>> from Products.azax.interfaces import IAzaxEvent
+ >>> from zope.lifecycleevent import ObjectModifiedEvent
+ >>> from zope.event import notify
+
+ >>> clearEvents()
+ >>> notify(ObjectModifiedEvent(None))
+
+Two events are fired by this.
+
+ >>> len(getEvents())
+ 2
+
+The original event and the special IAzaxEvent.
+
+ >>> from zope.lifecycleevent.interfaces import IObjectModifiedEvent
+ >>> original_event = getEvents()[0]
+ >>> IObjectModifiedEvent.providedBy(original_event)
+ True
+
+ >>> azax_event = getEvents()[1]
+ >>> IAzaxEvent.providedBy(azax_event)
+ True
+
+The Azax event has reference to the view and the original event.
+
+ >>> azax_event.event is original_event
+ True
+ >>> azax_event.view is view
+ True
+
+When the view is rendered it unregisters itself as a site.
+
+ >>> view.render()
+ >>> view.getSiteManager() is component.getSiteManager()
+ False
Modified: kukit/azax/trunk/tests/test_azaxview.py
==============================================================================
--- kukit/azax/trunk/tests/test_azaxview.py (original)
+++ kukit/azax/trunk/tests/test_azaxview.py Wed Nov 1 05:20:26 2006
@@ -190,7 +190,7 @@
suites.append(unittest.makeSuite(TestAzaxView))
suites.append(unittest.makeSuite(FTestAzaxView))
suites.append(doctest.DocTestSuite('Products.azax.azaxview'))
- suites.append(doctest.DocFileSuite('azaxview.txt',
+ suites.append(doctest.DocFileSuite('../azaxview.txt',
setUp=setUpDoctTest,
tearDown=tearDownDoctTest))
return unittest.TestSuite(suites)
From jvloothuis at codespeak.net Sun Nov 5 21:52:26 2006
From: jvloothuis at codespeak.net (jvloothuis at codespeak.net)
Date: Sun, 5 Nov 2006 21:52:26 +0100 (CET)
Subject: [Kukit-checkins] r34254 - kukit/azax/trunk
Message-ID: <20061105205226.AF13B1007D@code0.codespeak.net>
Author: jvloothuis
Date: Sun Nov 5 21:52:21 2006
New Revision: 34254
Modified:
kukit/azax/trunk/azaxview.py
Log:
Maded azaxview work with Plone Azax
Modified: kukit/azax/trunk/azaxview.py
==============================================================================
--- kukit/azax/trunk/azaxview.py (original)
+++ kukit/azax/trunk/azaxview.py Sun Nov 5 21:52:21 2006
@@ -42,13 +42,31 @@
from pluginregistry.commandset import getRegisteredCommandSet
from zope import app, component, interface
from zope.app.component.hooks import setSite, setHooks
-from zope.app.component.interfaces import ISite
+from zope.app.component.interfaces import ISite, ILocalSiteManager
from zope.app.component.site import clearSite
from zope.component.globalregistry import BaseGlobalComponents
from zope.component.interfaces import IComponentLookup
from zope.event import notify
from zope.interface import implements, Interface
from zope.publisher.browser import BrowserView
+from zope.component.persistentregistry import PersistentAdapterRegistry
+from zope.app.component.site import _findNextSiteManager
+from zope.component.interfaces import ComponentLookupError
+
+class ViewSiteManager(BaseGlobalComponents):
+
+ def _init_registries(self):
+ self.adapters = PersistentAdapterRegistry()
+ self.utilities = PersistentAdapterRegistry()
+
+ def queryUtility(self, *args, **kwargs):
+ try:
+ utility = super(ViewSiteManager, self).queryUtility(*args, **kwargs)
+ except ComponentLookupError:
+ return self.__bases__[0].queryUtility(*args, **kwargs)
+ if utility is None:
+ return self.__bases__[0].queryUtility(*args, **kwargs)
+ return utility
class SiteView(BrowserView):
"""A browser view that is its own site
@@ -59,7 +77,7 @@
next_sitemanager = component.getSiteManager()
- self._sitemanager = BaseGlobalComponents('siteview')
+ self._sitemanager = ViewSiteManager('siteview')
interface.alsoProvides(self, ISite)
self._sitemanager.__bases__ = (next_sitemanager, )
From jvloothuis at codespeak.net Mon Nov 6 07:49:09 2006
From: jvloothuis at codespeak.net (jvloothuis at codespeak.net)
Date: Mon, 6 Nov 2006 07:49:09 +0100 (CET)
Subject: [Kukit-checkins] r34255 - kukit/azax/trunk
Message-ID: <20061106064909.602E91007C@code0.codespeak.net>
Author: jvloothuis
Date: Mon Nov 6 07:49:06 2006
New Revision: 34255
Modified:
kukit/azax/trunk/azaxview.py
Log:
Minor cleanup to view code
Modified: kukit/azax/trunk/azaxview.py
==============================================================================
--- kukit/azax/trunk/azaxview.py (original)
+++ kukit/azax/trunk/azaxview.py Mon Nov 6 07:49:06 2006
@@ -60,10 +60,7 @@
self.utilities = PersistentAdapterRegistry()
def queryUtility(self, *args, **kwargs):
- try:
- utility = super(ViewSiteManager, self).queryUtility(*args, **kwargs)
- except ComponentLookupError:
- return self.__bases__[0].queryUtility(*args, **kwargs)
+ utility = super(ViewSiteManager, self).queryUtility(*args, **kwargs)
if utility is None:
return self.__bases__[0].queryUtility(*args, **kwargs)
return utility
@@ -91,7 +88,7 @@
return self._sitemanager
def setSiteManager(self, sm):
- raise XXX
+ raise NotImplementedError('You can only get the site manager')
@component.adapter(Interface)
def _eventRedispatcher(self, event):
From jvloothuis at codespeak.net Wed Nov 8 15:06:35 2006
From: jvloothuis at codespeak.net (jvloothuis at codespeak.net)
Date: Wed, 8 Nov 2006 15:06:35 +0100 (CET)
Subject: [Kukit-checkins] r34370 - kukit/azax/trunk
Message-ID: <20061108140635.9FD0E10078@code0.codespeak.net>
Author: jvloothuis
Date: Wed Nov 8 15:06:34 2006
New Revision: 34370
Modified:
kukit/azax/trunk/azaxview.py
Log:
Removed unneeded method override on the view site manager
Modified: kukit/azax/trunk/azaxview.py
==============================================================================
--- kukit/azax/trunk/azaxview.py (original)
+++ kukit/azax/trunk/azaxview.py Wed Nov 8 15:06:34 2006
@@ -59,12 +59,6 @@
self.adapters = PersistentAdapterRegistry()
self.utilities = PersistentAdapterRegistry()
- def queryUtility(self, *args, **kwargs):
- utility = super(ViewSiteManager, self).queryUtility(*args, **kwargs)
- if utility is None:
- return self.__bases__[0].queryUtility(*args, **kwargs)
- return utility
-
class SiteView(BrowserView):
"""A browser view that is its own site
"""
From gotcha at codespeak.net Thu Nov 9 18:00:11 2006
From: gotcha at codespeak.net (gotcha at codespeak.net)
Date: Thu, 9 Nov 2006 18:00:11 +0100 (CET)
Subject: [Kukit-checkins] r34428 - kukit/kukit.js/trunk/kukit
Message-ID: <20061109170011.906F21009F@code0.codespeak.net>
Author: gotcha
Date: Thu Nov 9 18:00:09 2006
New Revision: 34428
Modified:
kukit/kukit.js/trunk/kukit/utils.js
Log:
add logging in Firebug
Modified: kukit/kukit.js/trunk/kukit/utils.js
==============================================================================
--- kukit/kukit.js/trunk/kukit/utils.js (original)
+++ kukit/kukit.js/trunk/kukit/utils.js Thu Nov 9 18:00:09 2006
@@ -26,20 +26,39 @@
var kukit = {};
}
-/* check whether the logging stuff of MochiKit is available */
+/* check whether the logging stuff of Firebug is available */
try {
- MochiKit.Logging.log('Initializing kukit');
- kukit.log = MochiKit.Logging.log;
- kukit.logError = MochiKit.Logging.logError;
- kukit.logDebug = MochiKit.Logging.logDebug;
- kukit.logFatal = MochiKit.Logging.logFatal;
- kukit.logWarning = MochiKit.Logging.logWarning;
+ console.log('Initializing kukit');
+ /* following call is needed to generate exception in Safari */
+ console.assertEquals('kukit', 'kukit');
+ kukit.hasFirebug = true;
} catch(e) {
- kukit.log = function(str){};
- kukit.logError = kukit.log;
- kukit.logDebug = kukit.log;
- kukit.logFatal = kukit.log;
- kukit.logWarning = kukit.log;
+ kukit.hasFirebug = false;
+ }
+
+if (kukit.hasFirebug) {
+ kukit.log = console.log;
+ kukit.logDebug = console.debug;
+ kukit.logFatal = console.error;
+ kukit.logError = console.error;
+ kukit.logWarning = console.warn;
+}
+else {
+/* check whether the logging stuff of MochiKit is available */
+ try {
+ MochiKit.Logging.log('Initializing kukit');
+ kukit.log = MochiKit.Logging.log;
+ kukit.logError = MochiKit.Logging.logError;
+ kukit.logDebug = MochiKit.Logging.logDebug;
+ kukit.logFatal = MochiKit.Logging.logFatal;
+ kukit.logWarning = MochiKit.Logging.logWarning;
+ } catch(e) {
+ kukit.log = function(str){};
+ kukit.logError = kukit.log;
+ kukit.logDebug = kukit.log;
+ kukit.logFatal = kukit.log;
+ kukit.logWarning = kukit.log;
+ }
}
/* utilities */
From reebalazs at codespeak.net Sun Nov 12 12:40:24 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 12 Nov 2006 12:40:24 +0100 (CET)
Subject: [Kukit-checkins] r34529 - kukit/azax/trunk
Message-ID: <20061112114024.99E5E1015E@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 12 12:40:22 2006
New Revision: 34529
Modified:
kukit/azax/trunk/interfaces.py
Log:
Import IObjectModifiedEvent from zope < 2.10
Modified: kukit/azax/trunk/interfaces.py
==============================================================================
--- kukit/azax/trunk/interfaces.py (original)
+++ kukit/azax/trunk/interfaces.py Sun Nov 12 12:40:22 2006
@@ -19,7 +19,11 @@
#
from zope.interface import Interface, Attribute
-from zope.lifecycleevent.interfaces import IObjectModifiedEvent
+try:
+ # 2.10
+ from zope.lifecycleevent.interfaces import IObjectModifiedEvent
+except ImportError:
+ from zope.app.event.objectevent import IObjectModifiedEvent
class IAzaxCommands(Interface):
'Azax commands'
From jvloothuis at codespeak.net Sun Nov 12 17:46:02 2006
From: jvloothuis at codespeak.net (jvloothuis at codespeak.net)
Date: Sun, 12 Nov 2006 17:46:02 +0100 (CET)
Subject: [Kukit-checkins] r34532 - kukit/azax/trunk/plugins/core
Message-ID: <20061112164602.D30DC1015B@code0.codespeak.net>
Author: jvloothuis
Date: Sun Nov 12 17:46:00 2006
New Revision: 34532
Modified:
kukit/azax/trunk/plugins/core/commands.py
Log:
Removed duplicate `copyChildNodesTo`
Modified: kukit/azax/trunk/plugins/core/commands.py
==============================================================================
--- kukit/azax/trunk/plugins/core/commands.py (original)
+++ kukit/azax/trunk/plugins/core/commands.py Sun Nov 12 17:46:00 2006
@@ -112,11 +112,6 @@
command = self.commands.addCommand('copyChildNodesTo', selector)
data = command.addParam('html_id', id)
- def copyChildNodesTo(self, selector, id):
- """ see interfaces.py """
- command = self.commands.addCommand('copyChildNodesTo', selector)
- data = command.addParam('html_id', id)
-
def setStateVar(self, varname, value):
""" see interfaces.py """
command = self.commands.addCommand('setStateVar')
From jvloothuis at codespeak.net Sun Nov 12 18:26:40 2006
From: jvloothuis at codespeak.net (jvloothuis at codespeak.net)
Date: Sun, 12 Nov 2006 18:26:40 +0100 (CET)
Subject: [Kukit-checkins] r34533 - kukit/azax/trunk/plugins/core
Message-ID: <20061112172640.322C21015D@code0.codespeak.net>
Author: jvloothuis
Date: Sun Nov 12 18:26:39 2006
New Revision: 34533
Modified:
kukit/azax/trunk/plugins/core/interfaces.py
Log:
Made the interface more complete, this makes the core plugins better documented
Modified: kukit/azax/trunk/plugins/core/interfaces.py
==============================================================================
--- kukit/azax/trunk/plugins/core/interfaces.py (original)
+++ kukit/azax/trunk/plugins/core/interfaces.py Sun Nov 12 18:26:39 2006
@@ -1,4 +1,71 @@
from zope.interface import Interface
class IKSSCoreCommands(Interface):
- '''all core commands'''
+ """The core commands"""
+
+ def getSelector(type, selector):
+ """Return a specific type of selector
+
+ The type can be `css` or `htmlid`. The selector is the value for the
+ selector."""
+
+ def getCssSelector(selector):
+ """Return a CSS selector with selector as the value"""
+
+ def getHtmlIdSelector(selector):
+ """Return a HTML id selector with selector as the value"""
+
+ def replaceInnerHTML(selector, new_value):
+ """Replace the contents of a node (selector) with the new_value"""
+
+ def replaceHTML(selector, new_value):
+ """Replace the node itself with new_value
+
+ Node selection is done using the selector argument."""
+
+ def setAttribute(selector, name, value):
+ """Set an attribute on node(s) specified by the selector"""
+
+ def setStyle(selector, name, value):
+ """Set the style attribute of nodes specified by the selector"""
+
+ def insertHTMLAfter(selector, new_value):
+ """Insert some HTML after the node indicated by selector"""
+
+ def insertHTMLAsFirstChild(selector, new_value):
+ """Insert some HTML as the first childnode specified by selector"""
+
+ def insertHTMLBefore(selector, new_value):
+ """Insert some HTML before the node specified by selector"""
+
+ def clearChildNodes(selector):
+ """Remove all the child nodes from the node specified by selector"""
+
+ def deleteNode(selector):
+ """Remove the node itself specified by selector"""
+
+ def deleteNodeAfter(selector):
+ """Remove the node after the node specified by selector"""
+
+ def deleteNodeBefore(selector):
+ """Remove the node before the node specified by selector"""
+
+ def copyChildNodesFrom(selector, id):
+ """Copy the child nodes from the node specified by id to the selector node
+
+ The copy operation will clear out all childnodes of selector."""
+
+ def copyChildNodesTo(selector, id):
+ """Copy the child nodes from the selector node to the node specified by id
+
+ The copy operation will clear out all childnodes of selector."""
+
+ def moveNodeAfter(selector, id):
+ """Move the node indicated by selector to a sibling after id"""
+
+ def setStateVar(varname, value):
+ """Set a client side kukit variable"""
+
+ def triggerEvent(name, **kw):
+ """Trigger an event on the client """
+ # TODO: explain a bit better what this does
From gotcha at codespeak.net Tue Nov 14 23:16:22 2006
From: gotcha at codespeak.net (gotcha at codespeak.net)
Date: Tue, 14 Nov 2006 23:16:22 +0100 (CET)
Subject: [Kukit-checkins] r34612 - in kukit/azaxdemo/trunk: . tests
tests/selenium
Message-ID: <20061114221622.547C11008D@code0.codespeak.net>
Author: gotcha
Date: Tue Nov 14 23:16:19 2006
New Revision: 34612
Added:
kukit/azaxdemo/trunk/tests/selenium/
kukit/azaxdemo/trunk/tests/selenium/azax_instant_edit.html
kukit/azaxdemo/trunk/tests/selenium/cancel_submit.html
kukit/azaxdemo/trunk/tests/selenium/demo1.html
kukit/azaxdemo/trunk/tests/selenium/demo1.py
kukit/azaxdemo/trunk/tests/selenium/suite.html
kukit/azaxdemo/trunk/tests/selenium/three_autopupdate.html
kukit/azaxdemo/trunk/tests/selenium/two_select_revisited.html
kukit/azaxdemo/trunk/tests/selenium/two_selects.html
Removed:
kukit/azaxdemo/trunk/tests/azaxdemo.sel
Modified:
kukit/azaxdemo/trunk/azaxview.py
Log:
first selenium tests
Modified: kukit/azaxdemo/trunk/azaxview.py
==============================================================================
--- kukit/azaxdemo/trunk/azaxview.py (original)
+++ kukit/azaxdemo/trunk/azaxview.py Tue Nov 14 23:16:19 2006
@@ -24,14 +24,10 @@
except ImportError:
from Products.azax import AzaxBaseView, force_unicode
-import datetime, time
-
-from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile
+import datetime
class AzaxView(AzaxBaseView):
- #header_macros = ViewPageTemplateFile('browser/header_macros.pt')
-
def clearDivContent(self):
""" clear div content """
self.getCommandSet('core').clearChildNodes('div#demo')
@@ -56,7 +52,7 @@
def getDivContent(self):
""" returns div content """
self.getCommandSet('core').replaceInnerHTML('div#demo', '
it worked
')
- self.getCommandSet('core').replaceInnerHTML('div#demo', 'it worked again
')
+ self.getCommandSet('core').replaceInnerHTML('div#demo', 'it worked again
')
return self.render()
def getCorrespondingSelect(self, value):
Deleted: /kukit/azaxdemo/trunk/tests/azaxdemo.sel
==============================================================================
--- /kukit/azaxdemo/trunk/tests/azaxdemo.sel Tue Nov 14 23:16:19 2006
+++ (empty file)
@@ -1,143 +0,0 @@
-
-
-
-azaxdemo
-
-
-
-
-| azaxdemo |
-
-
- | assertTitle |
- |
- |
-
-
- | clickAndWait |
- link=Change tag content |
- |
-
-
- | assertTitle |
- |
- |
-
-
- | click |
- change |
- |
-
-
- | assertTextPresent |
- it worked again |
- |
-
-
- | click |
- clear |
- |
-
-
- | click |
- link=All demos |
- |
-
-
- | assertTitle |
- |
- |
-
-
- | clickAndWait |
- link=Two selects |
- |
-
-
- | assertTitle |
- |
- |
-
-
- | select |
- first |
- label=animals |
-
-
- | assertValue |
- second |
- dog |
-
-
- | select |
- first |
- label=machines |
-
-
- | assertValue |
- second |
- computer |
-
-
- | click |
- link=All demos |
- |
-
-
- | assertTitle |
- |
- |
-
-
- | clickAndWait |
- link=Three autoupdate |
- |
-
-
- | assertTitle |
- |
- |
-
-
- | click |
- start-update |
- |
-
-
- | click |
- link=All demos |
- |
-
-
- | assertTitle |
- |
- |
-
-
- | clickAndWait |
- link=Cancel Submit Click |
- |
-
-
- | assertTitle |
- |
- |
-
-
- | type |
- text_save |
- aaa |
-
-
- | click |
- submit |
- |
-
-
- | assertTextPresent |
- Async saved aaa |
- |
-
-
-
-
Added: kukit/azaxdemo/trunk/tests/selenium/azax_instant_edit.html
==============================================================================
--- (empty file)
+++ kukit/azaxdemo/trunk/tests/selenium/azax_instant_edit.html Tue Nov 14 23:16:19 2006
@@ -0,0 +1,69 @@
+
+
+
+azax_instant_edit
+
+
+
+
+| azax_instant_edit |
+
+
+ | open |
+ /demo/azax_instant_edit.html |
+ |
+
+
+ | assertTextPresent |
+ click me! |
+ |
+
+
+ | assertText |
+ text |
+ click me! |
+
+
+ | click |
+ text |
+ |
+
+
+ | waitForValue |
+ value |
+ click me! |
+
+
+ | assertValue |
+ value |
+ click me! |
+
+
+ | type |
+ value |
+ change |
+
+
+ | click |
+ save |
+ |
+
+
+ | waitForTextPresent |
+ change |
+ |
+
+
+ | assertTextPresent |
+ change |
+ |
+
+
+ | assertTextNotPresent |
+ click me! |
+ |
+
+
+
+
+
Added: kukit/azaxdemo/trunk/tests/selenium/cancel_submit.html
==============================================================================
--- (empty file)
+++ kukit/azaxdemo/trunk/tests/selenium/cancel_submit.html Tue Nov 14 23:16:19 2006
@@ -0,0 +1,44 @@
+
+
+
+cancel_submit
+
+
+
+
+| cancel_submit |
+
+
+ | open |
+ /demo/cancel_submit.html |
+ |
+
+
+ | assertValue |
+ text_save |
+ |
+
+
+ | type |
+ text_save |
+ abc |
+
+
+ | click |
+ submit |
+ |
+
+
+ | waitForText |
+ async |
+ Async saved abc |
+
+
+ | assertText |
+ async |
+ Async saved abc |
+
+
+
+
+
Added: kukit/azaxdemo/trunk/tests/selenium/demo1.html
==============================================================================
--- (empty file)
+++ kukit/azaxdemo/trunk/tests/selenium/demo1.html Tue Nov 14 23:16:19 2006
@@ -0,0 +1,184 @@
+
+
+
+demo1
+
+
+
+
+| demo1 |
+
+
+ | open |
+ /demo/demo1.html |
+ |
+
+
+ | assertText |
+ demo |
+ Azax |
+
+
+ | assertText |
+ copy |
+ copy here |
+
+
+ | click |
+ change |
+ |
+
+
+ | waitForElementPresent |
+ workedagain |
+ |
+
+
+ | assertElementPresent |
+ workedagain |
+ |
+
+
+ | assertText |
+ demo |
+ it worked again |
+
+
+ | click |
+ clear |
+ |
+
+
+ | waitForElementNotPresent |
+ workedagain |
+ |
+
+
+ | assertNotText |
+ demo |
+ it worked again |
+
+
+ | click |
+ copyFrom |
+ |
+
+
+ | waitForNotText |
+ copy |
+ copy here |
+
+
+ | assertNotText |
+ copy |
+ copy here |
+
+
+ | assertElementNotPresent |
+ workedagain |
+ |
+
+
+ | click |
+ change |
+ |
+
+
+ | waitForElementPresent |
+ workedagain |
+ |
+
+
+ | assertElementPresent |
+ workedagain |
+ |
+
+
+ | assertNotText |
+ copy |
+ it worked again |
+
+
+ | click |
+ copyFrom |
+ |
+
+
+ | waitForText |
+ copy |
+ it worked again |
+
+
+ | assertText |
+ copy |
+ it worked again |
+
+
+ | click |
+ clear |
+ |
+
+
+ | waitForNotText |
+ demo |
+ it worked again |
+
+
+ | assertNotText |
+ demo |
+ it worked again |
+
+
+ | click |
+ copyTo |
+ |
+
+
+ | waitForText |
+ demo |
+ it worked again |
+
+
+ | assertText |
+ demo |
+ it worked again |
+
+
+ | click |
+ clear |
+ |
+
+
+ | waitForNotText |
+ demo |
+ it worked again |
+
+
+ | assertNotText |
+ demo |
+ it worked again |
+
+
+ | click |
+ moveTo |
+ |
+
+
+ | waitForText |
+ demo |
+ it worked again |
+
+
+ | assertText |
+ demo |
+ it worked again |
+
+
+ | assertNotText |
+ copy |
+ it worked again |
+
+
+
+
+
Added: kukit/azaxdemo/trunk/tests/selenium/demo1.py
==============================================================================
--- (empty file)
+++ kukit/azaxdemo/trunk/tests/selenium/demo1.py Tue Nov 14 23:16:19 2006
@@ -0,0 +1,97 @@
+from selenium import selenium
+import unittest, time, re
+
+class demo1(unittest.TestCase):
+ def setUp(self):
+ self.verificationErrors = []
+ self.selenium = selenium("localhost", 4444, "*firefox", "http://localhost:4444")
+ self.selenium.start()
+
+ def test_demo1(self):
+ sel = self.selenium
+ sel.open("/demo/demo1.html")
+ self.assertEqual("Azax", sel.get_text("demo"))
+ self.assertEqual("copy here", sel.get_text("copy"))
+ sel.click("change")
+ for i in range(60):
+ try:
+ if sel.is_element_present("workedagain"): break
+ except: pass
+ time.sleep(1)
+ else: self.fail("time out")
+ self.failUnless(sel.is_element_present("workedagain"))
+ self.assertEqual("it worked again", sel.get_text("demo"))
+ sel.click("clear")
+ for i in range(60):
+ try:
+ if not sel.is_element_present("workedagain"): break
+ except: pass
+ time.sleep(1)
+ else: self.fail("time out")
+ self.assertNotEqual("it worked again", sel.get_text("demo"))
+ sel.click("copyFrom")
+ for i in range(60):
+ try:
+ if "copy here" != sel.get_text("copy"): break
+ except: pass
+ time.sleep(1)
+ else: self.fail("time out")
+ self.assertNotEqual("copy here", sel.get_text("copy"))
+ self.failIf(sel.is_element_present("workedagain"))
+ sel.click("change")
+ for i in range(60):
+ try:
+ if sel.is_element_present("workedagain"): break
+ except: pass
+ time.sleep(1)
+ else: self.fail("time out")
+ self.failUnless(sel.is_element_present("workedagain"))
+ self.assertNotEqual("it worked again", sel.get_text("copy"))
+ sel.click("copyFrom")
+ for i in range(60):
+ try:
+ if "it worked again" == sel.get_text("copy"): break
+ except: pass
+ time.sleep(1)
+ else: self.fail("time out")
+ self.assertEqual("it worked again", sel.get_text("copy"))
+ sel.click("clear")
+ for i in range(60):
+ try:
+ if "it worked again" != sel.get_text("demo"): break
+ except: pass
+ time.sleep(1)
+ else: self.fail("time out")
+ self.assertNotEqual("it worked again", sel.get_text("demo"))
+ sel.click("copyTo")
+ for i in range(60):
+ try:
+ if "it worked again" == sel.get_text("demo"): break
+ except: pass
+ time.sleep(1)
+ else: self.fail("time out")
+ self.assertEqual("it worked again", sel.get_text("demo"))
+ sel.click("clear")
+ for i in range(60):
+ try:
+ if "it worked again" != sel.get_text("demo"): break
+ except: pass
+ time.sleep(1)
+ else: self.fail("time out")
+ self.assertNotEqual("it worked again", sel.get_text("demo"))
+ sel.click("moveTo")
+ for i in range(60):
+ try:
+ if "it worked again" == sel.get_text("demo"): break
+ except: pass
+ time.sleep(1)
+ else: self.fail("time out")
+ self.assertEqual("it worked again", sel.get_text("demo"))
+ self.assertNotEqual("it worked again", sel.get_text("copy"))
+
+ def tearDown(self):
+ self.selenium.stop()
+ self.assertEqual([], self.verificationErrors)
+
+if __name__ == "__main__":
+ unittest.main()
Added: kukit/azaxdemo/trunk/tests/selenium/suite.html
==============================================================================
--- (empty file)
+++ kukit/azaxdemo/trunk/tests/selenium/suite.html Tue Nov 14 23:16:19 2006
@@ -0,0 +1,14 @@
+
+
+
+
+
Added: kukit/azaxdemo/trunk/tests/selenium/three_autopupdate.html
==============================================================================
--- (empty file)
+++ kukit/azaxdemo/trunk/tests/selenium/three_autopupdate.html Tue Nov 14 23:16:19 2006
@@ -0,0 +1,69 @@
+
+
+
+three_autopupdate
+
+
+
+
+| three_autopupdate |
+
+
+ | open |
+ /demo/three_autoupdate.html |
+ |
+
+
+ | assertText |
+ update-wrapper |
+ |
+
+
+ | click |
+ start-update |
+ |
+
+
+ | waitForElementPresent |
+ update-area |
+ |
+
+
+ | assertElementPresent |
+ update-area |
+ |
+
+
+ | assertText |
+ update-area |
+ |
+
+
+ | storeText |
+ update-area |
+ updateText |
+
+
+ | assertText |
+ update-area |
+ ${updateText} |
+
+
+ | pause |
+ 3000 |
+ |
+
+
+ | assertNotText |
+ update-area |
+ ${updateText} |
+
+
+ |
+ |
+ |
+
+
+
+
+
Added: kukit/azaxdemo/trunk/tests/selenium/two_select_revisited.html
==============================================================================
--- (empty file)
+++ kukit/azaxdemo/trunk/tests/selenium/two_select_revisited.html Tue Nov 14 23:16:19 2006
@@ -0,0 +1,139 @@
+
+
+
+two_select_revisited
+
+
+
+
+| two_select_revisited |
+
+
+ | open |
+ /demo/two_select_revisited.html |
+ |
+
+
+ | assertText |
+ first-master |
+ animals machines |
+
+
+ | assertText |
+ first-slave |
+ |
+
+
+ | select |
+ first-master |
+ label=animals |
+
+
+ | waitForText |
+ first-slave |
+ dog cat cow |
+
+
+ | assertText |
+ first-slave |
+ dog cat cow |
+
+
+ | select |
+ first-master |
+ label=machines |
+
+
+ | waitForText |
+ first-slave |
+ computer car airplane |
+
+
+ | assertText |
+ first-slave |
+ computer car airplane |
+
+
+ | assertText |
+ second-master |
+ animals machines |
+
+
+ | assertText |
+ second-slave |
+ |
+
+
+ | select |
+ second-master |
+ label=animals |
+
+
+ | waitForText |
+ second-slave |
+ dog cat cow |
+
+
+ | assertText |
+ second-slave |
+ dog cat cow |
+
+
+ | select |
+ second-master |
+ label=machines |
+
+
+ | waitForText |
+ second-slave |
+ computer car airplane |
+
+
+ | assertText |
+ second-slave |
+ computer car airplane |
+
+
+ | assertText |
+ third-master |
+ animals machines |
+
+
+ | assertText |
+ third-slave |
+ |
+
+
+ | select |
+ third-master |
+ label=animals |
+
+
+ | waitForText |
+ third-slave |
+ dog cat cow |
+
+
+ | assertText |
+ third-slave |
+ dog cat cow |
+
+
+ | select |
+ third-master |
+ label=machines |
+
+
+ | waitForText |
+ third-slave |
+ computer car airplane |
+
+
+ | assertText |
+ third-slave |
+ computer car airplane |
+
+
+
+
+
Added: kukit/azaxdemo/trunk/tests/selenium/two_selects.html
==============================================================================
--- (empty file)
+++ kukit/azaxdemo/trunk/tests/selenium/two_selects.html Tue Nov 14 23:16:19 2006
@@ -0,0 +1,59 @@
+
+
+
+two_selects
+
+
+
+
+| two_selects |
+
+
+ | open |
+ /demo/two_selects.html |
+ |
+
+
+ | assertText |
+ first |
+ animals machines |
+
+
+ | assertText |
+ second |
+ |
+
+
+ | select |
+ first |
+ label=animals |
+
+
+ | waitForText |
+ second |
+ dog cat cow |
+
+
+ | assertText |
+ second |
+ dog cat cow |
+
+
+ | select |
+ first |
+ label=machines |
+
+
+ | waitForText |
+ second |
+ computer car airplane |
+
+
+ | assertText |
+ second |
+ computer car airplane |
+
+
+
+
+
From reebalazs at codespeak.net Fri Nov 17 07:55:08 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Fri, 17 Nov 2006 07:55:08 +0100 (CET)
Subject: [Kukit-checkins] r34701 - kukit/kukit.js/trunk/kukit
Message-ID: <20061117065508.811BB10098@code0.codespeak.net>
Author: reebalazs
Date: Fri Nov 17 07:55:05 2006
New Revision: 34701
Modified:
kukit/kukit.js/trunk/kukit/kukit.js
Log:
Removing extra slash from base url (non-critical)
Modified: kukit/kukit.js/trunk/kukit/kukit.js
==============================================================================
--- kukit/kukit.js/trunk/kukit/kukit.js (original)
+++ kukit/kukit.js/trunk/kukit/kukit.js Fri Nov 17 07:55:05 2006
@@ -68,6 +68,11 @@
kukit.base = pieces.join('/');
} else {
kukit.base = nodes[0].href;
+ // take off trailing slash
+ var baselen = kukit.base.length;
+ if (baselen > 0 && kukit.base.substring(baselen - 1) == '/') {
+ kukit.base = kukit.base.substring(0, baselen - 1);
+ }
}
};
From reebalazs at codespeak.net Sun Nov 19 12:44:28 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 19 Nov 2006 12:44:28 +0100 (CET)
Subject: [Kukit-checkins] r34751 - kukit/azax/trunk
Message-ID: <20061119114428.B5253100B5@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 19 12:44:25 2006
New Revision: 34751
Modified:
kukit/azax/trunk/azaxview.py
Log:
Add helper for getting commandset. to adapter as well
Modified: kukit/azax/trunk/azaxview.py
==============================================================================
--- kukit/azax/trunk/azaxview.py (original)
+++ kukit/azax/trunk/azaxview.py Sun Nov 19 12:44:25 2006
@@ -147,4 +147,6 @@
self.context = self.view.context
self.request = self.view.request
self.commands = self.view.commands
-
+
+ def getCommandSet(self, name):
+ return self.view.getCommandSet(name)
From reebalazs at codespeak.net Wed Nov 22 17:04:06 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Wed, 22 Nov 2006 17:04:06 +0100 (CET)
Subject: [Kukit-checkins] r34863 - kukit/azaxdemo/trunk/tests
Message-ID: <20061122160406.7356410064@code0.codespeak.net>
Author: reebalazs
Date: Wed Nov 22 17:04:04 2006
New Revision: 34863
Modified:
kukit/azaxdemo/trunk/tests/test_azaxview.py
Log:
Fix failing test, result of selenium changes
Modified: kukit/azaxdemo/trunk/tests/test_azaxview.py
==============================================================================
--- kukit/azaxdemo/trunk/tests/test_azaxview.py (original)
+++ kukit/azaxdemo/trunk/tests/test_azaxview.py Wed Nov 22 17:04:04 2006
@@ -61,7 +61,7 @@
'html': u'it worked
'
}, 'name': 'replaceInnerHTML', 'selector': 'div#demo'},
{'selectorType': '', 'params': {
- 'html': u'it worked again
'
+ 'html': u'it worked again
'
}, 'name': 'replaceInnerHTML', 'selector': 'div#demo'},
])
From reebalazs at codespeak.net Sun Nov 26 09:33:52 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 09:33:52 +0100 (CET)
Subject: [Kukit-checkins] r34977 - kukit/kss
Message-ID: <20061126083352.2D9031007B@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 09:33:49 2006
New Revision: 34977
Added:
kukit/kss/
Log:
Reorganizing
From reebalazs at codespeak.net Sun Nov 26 09:34:46 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 09:34:46 +0100 (CET)
Subject: [Kukit-checkins] r34978 - kukit/kss/branch
Message-ID: <20061126083446.6E50B1007B@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 09:34:44 2006
New Revision: 34978
Added:
kukit/kss/branch/
Log:
Reorganizing
From reebalazs at codespeak.net Sun Nov 26 09:34:52 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 09:34:52 +0100 (CET)
Subject: [Kukit-checkins] r34979 - kukit/kss/tag
Message-ID: <20061126083452.D54D01007B@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 09:34:50 2006
New Revision: 34979
Added:
kukit/kss/tag/
Log:
Reorganizing
From reebalazs at codespeak.net Sun Nov 26 09:34:56 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 09:34:56 +0100 (CET)
Subject: [Kukit-checkins] r34980 - kukit/kss/trunk
Message-ID: <20061126083456.9A5A81007E@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 09:34:54 2006
New Revision: 34980
Added:
kukit/kss/trunk/
Log:
Reorganizing
From reebalazs at codespeak.net Sun Nov 26 09:43:43 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 09:43:43 +0100 (CET)
Subject: [Kukit-checkins] r34981 - kukit/kss.core
Message-ID: <20061126084343.44DD21007B@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 09:43:41 2006
New Revision: 34981
Added:
kukit/kss.core/
Log:
Reorganizing
From reebalazs at codespeak.net Sun Nov 26 09:44:52 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 09:44:52 +0100 (CET)
Subject: [Kukit-checkins] r34982 - kukit/kss.core/tag
Message-ID: <20061126084452.0C9501007B@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 09:44:50 2006
New Revision: 34982
Added:
kukit/kss.core/tag/
Log:
Reorganizing
From reebalazs at codespeak.net Sun Nov 26 09:44:56 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 09:44:56 +0100 (CET)
Subject: [Kukit-checkins] r34983 - kukit/kss.core/branch
Message-ID: <20061126084456.1DB1B1007E@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 09:44:55 2006
New Revision: 34983
Added:
kukit/kss.core/branch/
Log:
Reorganizing
From reebalazs at codespeak.net Sun Nov 26 09:45:06 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 09:45:06 +0100 (CET)
Subject: [Kukit-checkins] r34984 - kukit/kss.demo
Message-ID: <20061126084506.CD5DC1007B@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 09:45:05 2006
New Revision: 34984
Added:
kukit/kss.demo/
Log:
Reorganizing
From reebalazs at codespeak.net Sun Nov 26 09:45:10 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 09:45:10 +0100 (CET)
Subject: [Kukit-checkins] r34985 - kukit/kss.demo/tag
Message-ID: <20061126084510.97A291007E@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 09:45:09 2006
New Revision: 34985
Added:
kukit/kss.demo/tag/
Log:
Reorganizing
From reebalazs at codespeak.net Sun Nov 26 09:45:14 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 09:45:14 +0100 (CET)
Subject: [Kukit-checkins] r34986 - kukit/kss.demo/branch
Message-ID: <20061126084514.66E6B1007B@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 09:45:13 2006
New Revision: 34986
Added:
kukit/kss.demo/branch/
Log:
Reorganizing
From reebalazs at codespeak.net Sun Nov 26 09:46:22 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 09:46:22 +0100 (CET)
Subject: [Kukit-checkins] r34987 - kukit/kss.core/trunk
Message-ID: <20061126084622.312FD1007B@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 09:46:20 2006
New Revision: 34987
Added:
kukit/kss.core/trunk/
- copied from r34986, kukit/azax/trunk/
Log:
Reorganizing
From reebalazs at codespeak.net Sun Nov 26 09:46:39 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 09:46:39 +0100 (CET)
Subject: [Kukit-checkins] r34988 - kukit/kss.demo/trunk
Message-ID: <20061126084639.162461007B@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 09:46:38 2006
New Revision: 34988
Added:
kukit/kss.demo/trunk/
- copied from r34987, kukit/azaxdemo/trunk/
Log:
Reorganizing
From reebalazs at codespeak.net Sun Nov 26 09:48:06 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 09:48:06 +0100 (CET)
Subject: [Kukit-checkins] r34989 - kukit/kukit.js/trunk/tests
Message-ID: <20061126084806.365E51007B@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 09:48:04 2006
New Revision: 34989
Modified:
kukit/kukit.js/trunk/tests/runner.html
Log:
tiny name change
Modified: kukit/kukit.js/trunk/tests/runner.html
==============================================================================
--- kukit/kukit.js/trunk/tests/runner.html (original)
+++ kukit/kukit.js/trunk/tests/runner.html Sun Nov 26 09:48:04 2006
@@ -68,7 +68,7 @@
This page is the entry to the ECMAScript Unit Tests.
-
+
Tests are running from the filesystem.
From reebalazs at codespeak.net Sun Nov 26 10:05:19 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 10:05:19 +0100 (CET)
Subject: [Kukit-checkins] r34990 - in kukit/kss.core/trunk: . pluginregistry
pluginregistry/deprecated pluginregistry/json plugins/core
plugins/effects tests
Message-ID: <20061126090519.BDBEB1007B@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 10:05:01 2006
New Revision: 34990
Added:
kukit/kss.core/trunk/kss.core-configure.zcml
kukit/kss.core/trunk/kss.core-meta.zcml
kukit/kss.core/trunk/pluginregistry/deprecated/
kukit/kss.core/trunk/pluginregistry/deprecated/__init__.py
kukit/kss.core/trunk/pluginregistry/deprecated/configure.py
kukit/kss.core/trunk/pluginregistry/deprecated/directives.py
kukit/kss.core/trunk/pluginregistry/deprecated/meta.zcml
Removed:
kukit/kss.core/trunk/azax-configure.zcml
kukit/kss.core/trunk/azax-meta.zcml
Modified:
kukit/kss.core/trunk/ (props changed)
kukit/kss.core/trunk/EXTERNALS.TXT
kukit/kss.core/trunk/INSTALL.txt
kukit/kss.core/trunk/TODO.txt
kukit/kss.core/trunk/__init__.py
kukit/kss.core/trunk/azaxview.py
kukit/kss.core/trunk/azaxview.txt
kukit/kss.core/trunk/configure.zcml
kukit/kss.core/trunk/deprecated.py
kukit/kss.core/trunk/meta.zcml
kukit/kss.core/trunk/pluginregistry/configure.py
kukit/kss.core/trunk/pluginregistry/directives.py
kukit/kss.core/trunk/pluginregistry/json/configure.zcml
kukit/kss.core/trunk/pluginregistry/json/utils.py
kukit/kss.core/trunk/pluginregistry/meta.zcml
kukit/kss.core/trunk/plugins/core/__init__.py
kukit/kss.core/trunk/plugins/core/commands.py
kukit/kss.core/trunk/plugins/core/configure.zcml
kukit/kss.core/trunk/plugins/effects/__init__.py
kukit/kss.core/trunk/plugins/effects/commands.py
kukit/kss.core/trunk/plugins/effects/configure.zcml
kukit/kss.core/trunk/siteview.txt
kukit/kss.core/trunk/tests/base.py
kukit/kss.core/trunk/tests/commandinspector.py
kukit/kss.core/trunk/tests/configure-unittest.zcml
kukit/kss.core/trunk/tests/ecmaview.py
kukit/kss.core/trunk/tests/test_azaxview.py
kukit/kss.core/trunk/tests/test_siteview.py
Log:
Reorganization and name space changes
Modified: kukit/kss.core/trunk/EXTERNALS.TXT
==============================================================================
--- kukit/kss.core/trunk/EXTERNALS.TXT (original)
+++ kukit/kss.core/trunk/EXTERNALS.TXT Sun Nov 26 10:05:01 2006
@@ -1,9 +1,8 @@
#
# results of svn propget svn:externals
-# http://codespeak.net/svn/kukit/azax/trunk
+# http://codespeak.net/svn/kukit/kss.core/trunk
#
# You can update your working dir by:
# svn propset svn:externals -F EXTERNALS.TXT .
#
kukit http://codespeak.net/svn/kukit/kukit.js/trunk
-configfeature http://codespeak.net/svn/z3/jsonserver/branch/merge/configfeature
Modified: kukit/kss.core/trunk/INSTALL.txt
==============================================================================
--- kukit/kss.core/trunk/INSTALL.txt (original)
+++ kukit/kss.core/trunk/INSTALL.txt Sun Nov 26 10:05:01 2006
@@ -1,63 +1,40 @@
-$Id$
INSTALLATION NOTES
==================
-1 - Prerequisites
-2 - lxml installation
-3 - Zope X3 installation
-4 - Products setup
-5 - Zope 3 <-> Zope 2 path setup
-6 - How to use azax
+*KSS* stands for *Kinetic Style Sheets*.
-----------
+This is KSS for Zope, containing server side support
+for Zope 2 and Zope 3.
1- Prerequisites
+----------------
-To install azax you will need:
+To install kss you will need:
-- a working Zope 2.7.x + CPS 3.3.4 or greater
-- ZopeX3-3.0.0 : http://www.zope.org/Products/ZopeX3
-- Five 1.0.1 or greater : http://codespeak.net/z3/five/
-- lxml 0.7 : http://codespeak.net/lxml
+- a working Zope (2.8 or higher, or Zope 3 supported)
-2 - lxml installation
+- kss.core itself (which version, is dependent on the version
+ of Zope you use. Look for version numbers and release notes...)
+
+2 - Products setup
+------------------
-Install the python package lxml on your python installation, ie the one
-Zope 2.7 actually use with the usual command::
+- Put kss.core in $INSTANCE/lib/python (it should be under kss/core/,
+ with an empty __init__.py in the kss namespace module root)
- $ python setup.py install
+- Copy the slugs kss.core-configure.zcml and kss.core-meta.zcml
+ into the directory $INSTANCE/etc/package-includes.
-3 - Zope X3 installation
+ * This is _not needed_ if you use KSS for Plone.
-(not needed if you have Zope 2.8 or later as it includes Zope X3)
+ * If you use Zope2.8, the etc/package-includes directories
+ are not created by default, you have to create them yourself.
-Please install ZopeX3-3.0.0 on your system (usually in /opt/ZopeX3-3.0.0) with
-the python version you use for Zope2.7 and CPS, e.g.::
-
- $ ./configure --prefix /opt/ZopeX3-3.0.0 --with-python /usr/bin/python
- $ make
- $ make install
- $ make check
-
-4 - Products setup
-
-Put Five, azax in your $INSTANCE/Products
-
-(not needed if you have Zope 2.8 or later as it includes Five)
-
-5 - Zope 3 <-> Zope 2 path setup
-
-(not needed if you have Zope 2.8 or later as it Zope X3 is correctly setup)
-
-Edit your $INSTANCE/etc/zope.conf to add the following path declarations::
-
- path /opt/ZopeX3-3.0.0/lib/python
- path $INSTANCE/Products/azax
-
-6 - How to use azax
-
-Copy the product azaxdemo that's inside demos in your instance,
-and look at its own README.txt
+3 - How to use kss
+------------------
+Copy the product kss.demo that's inside demos in your instance,
+into the directory $INSTANCE/lib/python, and look at its own README.txt
+(it should be under kss/demo)
Modified: kukit/kss.core/trunk/TODO.txt
==============================================================================
--- kukit/kss.core/trunk/TODO.txt (original)
+++ kukit/kss.core/trunk/TODO.txt Sun Nov 26 10:05:01 2006
@@ -1,14 +1,2 @@
-* rename AzaxResponse to KukitResponse
-* look to TextIndexNG3 howto have it compatible with Z3, Z2 and Plone
-* rename the commands to better match the DOM API
-* try to fix the namespace problems - see https://svn.z3lab.org/z3lab/azax/branches/gotcha-namespaces
-
-
-
- 2005-11-16 21:24:05.484000
-
-
-
-* add more demos, we need radio buttons, addAfter and much more. There are bugs
- in IE which we have to test and document.
+
+
Modified: kukit/kss.core/trunk/__init__.py
==============================================================================
--- kukit/kss.core/trunk/__init__.py (original)
+++ kukit/kss.core/trunk/__init__.py Sun Nov 26 10:05:01 2006
@@ -43,14 +43,3 @@
#
allow_class(AzaxBaseView)
-# alias myself to global namespace, in case I am in Products
-# this allows to run on Zope2, while configuration can
-# import the product as "azax", without Products
-try:
- import sys
- if not 'azax' in sys.modules:
- # only 1st import is aliased.
- pass #sys.modules['azax'] = sys.modules[globals()['__name__']]
-except ImportError:
- pass
-
Deleted: /kukit/kss.core/trunk/azax-configure.zcml
==============================================================================
--- /kukit/kss.core/trunk/azax-configure.zcml Sun Nov 26 10:05:01 2006
+++ (empty file)
@@ -1,5 +0,0 @@
-
-
-
-
-
Deleted: /kukit/kss.core/trunk/azax-meta.zcml
==============================================================================
--- /kukit/kss.core/trunk/azax-meta.zcml Sun Nov 26 10:05:01 2006
+++ (empty file)
@@ -1,5 +0,0 @@
-
-
-
-
-
Modified: kukit/kss.core/trunk/azaxview.py
==============================================================================
--- kukit/kss.core/trunk/azaxview.py (original)
+++ kukit/kss.core/trunk/azaxview.py Sun Nov 26 10:05:01 2006
@@ -93,7 +93,7 @@
clearSite()
class AzaxBaseView(SiteView):
- """ Base azax view
+ """ Base kss view
this allows setting up the content of the response, and then
generate it out.
@@ -131,7 +131,7 @@
def handle(self, *args):
for event in args: # first fire all normal stuff
notify(event)
- for event in args: # now do the azax bits
+ for event in args: # now do the kss bits
component.handle(AzaxEvent(self, event))
def getCommandSet(self, name):
Modified: kukit/kss.core/trunk/azaxview.txt
==============================================================================
--- kukit/kss.core/trunk/azaxview.txt (original)
+++ kukit/kss.core/trunk/azaxview.txt Sun Nov 26 10:05:01 2006
@@ -15,9 +15,9 @@
creating an example. The following will setup our enviroment and show that
normal operation works.
- >>> from Products.azax.azaxview import AzaxBaseView
- >>> from Products.azax.interfaces import IAzaxEvent
- >>> from Products.azax.tests.base import DebugTestRequest
+ >>> from kss.core.azaxview import AzaxBaseView
+ >>> from kss.core.interfaces import IAzaxEvent
+ >>> from kss.core.tests.base import DebugTestRequest
>>> from zope import component
>>> from zope.lifecycleevent import ObjectModifiedEvent
>>> from zope.lifecycleevent.interfaces import IObjectModifiedEvent
Modified: kukit/kss.core/trunk/configure.zcml
==============================================================================
--- kukit/kss.core/trunk/configure.zcml (original)
+++ kukit/kss.core/trunk/configure.zcml Sun Nov 26 10:05:01 2006
@@ -36,26 +36,11 @@
/>
-
+
-
-
-
-
-
-
-
-
-
-
Modified: kukit/kss.core/trunk/deprecated.py
==============================================================================
--- kukit/kss.core/trunk/deprecated.py (original)
+++ kukit/kss.core/trunk/deprecated.py Sun Nov 26 10:05:01 2006
@@ -18,10 +18,25 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
#
-import warnings
+import warnings, textwrap
+
def deprecated(method, message):
def deprecated_method(self, *args, **kw):
warnings.warn(message, DeprecationWarning, 2)
return method(self, *args, **kw)
return deprecated_method
+def deprecated_directive(method, directive, message):
+ def deprecated_method(_context, *args, **kw):
+ warnings.warn(message, DeprecationWarning, 2)
+ warnings.warn(textwrap.dedent('''\
+
+
+ %s
+ The directive %s is deprecated and will be removed any time,
+ %s
+ '''
+ % (_context.info, directive, message)),
+ DeprecationWarning, 2)
+ return method(_context, *args, **kw)
+ return deprecated_method
Added: kukit/kss.core/trunk/kss.core-configure.zcml
==============================================================================
--- (empty file)
+++ kukit/kss.core/trunk/kss.core-configure.zcml Sun Nov 26 10:05:01 2006
@@ -0,0 +1,3 @@
+
+
+
Added: kukit/kss.core/trunk/kss.core-meta.zcml
==============================================================================
--- (empty file)
+++ kukit/kss.core/trunk/kss.core-meta.zcml Sun Nov 26 10:05:01 2006
@@ -0,0 +1,3 @@
+
+
+
Modified: kukit/kss.core/trunk/meta.zcml
==============================================================================
--- kukit/kss.core/trunk/meta.zcml (original)
+++ kukit/kss.core/trunk/meta.zcml Sun Nov 26 10:05:01 2006
@@ -1,7 +1,7 @@
-
+
Modified: kukit/kss.core/trunk/pluginregistry/configure.py
==============================================================================
--- kukit/kss.core/trunk/pluginregistry/configure.py (original)
+++ kukit/kss.core/trunk/pluginregistry/configure.py Sun Nov 26 10:05:01 2006
@@ -12,30 +12,6 @@
#class AzaxConfigurationError(Exception):
# pass
-# XXX This will go away.
-def registerCommand(_context, name, jsfile=None):
- 'Directive that registers a command'
-
- import warnings, textwrap
- warnings.warn(textwrap.dedent('''\
-
- %s
-
- The directive azax:registerCommand is deprecated and will be removed,
- use azax:registerAction with command_factory="selector" or "global".'''
- % _context.info),
- DeprecationWarning)
-
- # check to see if the file exists
- if jsfile is not None:
- file(jsfile, 'rb').close()
-
- _context.action(
- discriminator = ('registerAzaxCommand', name, jsfile),
- callable = registerPlugin,
- args = (Command, ICommand, name, jsfile),
- )
-
def registerEventType(_context, name, jsfile=None):
'Directive that registers an event type'
@@ -44,7 +20,7 @@
file(jsfile, 'rb').close()
_context.action(
- discriminator = ('registerAzaxEventType', name, jsfile),
+ discriminator = ('registerKssEventType', name, jsfile),
callable = registerPlugin,
args = (EventType, IEventType, name, jsfile),
)
@@ -58,7 +34,7 @@
file(jsfile, 'rb').close()
_context.action(
- discriminator = ('registerAzaxAction', name, jsfile),
+ discriminator = ('registerKssAction', name, jsfile),
callable = registerPlugin,
args = (Action, IAction, name, jsfile, command_factory, params_mandatory, params_optional, deprecated),
)
@@ -71,7 +47,7 @@
file(jsfile, 'rb').close()
_context.action(
- discriminator = ('registerAzaxSelectorType', name, jsfile),
+ discriminator = ('registerKssSelectorType', name, jsfile),
callable = registerPlugin,
args = (SelectorType, ISelectorType, name, jsfile),
)
@@ -80,7 +56,7 @@
'Directive that registers a command set'
_context.action(
- discriminator = ('registerAzaxSelectorType', name),
+ discriminator = ('registerKssCommandSet', name),
callable = registerPlugin,
args = (CommandSet, ICommandSet, name, provides),
)
Added: kukit/kss.core/trunk/pluginregistry/deprecated/__init__.py
==============================================================================
--- (empty file)
+++ kukit/kss.core/trunk/pluginregistry/deprecated/__init__.py Sun Nov 26 10:05:01 2006
@@ -0,0 +1,4 @@
+'''\
+Module init
+'''
+
Added: kukit/kss.core/trunk/pluginregistry/deprecated/configure.py
==============================================================================
--- (empty file)
+++ kukit/kss.core/trunk/pluginregistry/deprecated/configure.py Sun Nov 26 10:05:01 2006
@@ -0,0 +1,26 @@
+
+import os.path
+from kss.core.pluginregistry.interfaces import ICommand
+from kss.core.pluginregistry.command import Command
+from kss.core.pluginregistry.plugin import registerPlugin
+from kss.core.deprecated import deprecated_directive
+from kss.core.pluginregistry import configure as _configure
+
+def registerCommand(_context, name, jsfile=None):
+ 'Directive that registers a command'
+ # check to see if the file exists
+ if jsfile is not None:
+ file(jsfile, 'rb').close()
+
+ _context.action(
+ discriminator = ('registerKssCommand', name, jsfile),
+ callable = registerPlugin,
+ args = (Command, ICommand, name, jsfile),
+ )
+registerCommand = deprecated_directive(registerCommand, 'azax:registerCommand',
+ 'use kss:registerAction with command_factory="selector" or "global"')
+
+registerEventType = deprecated_directive(_configure.registerEventType, 'azax:registerEventType', 'use kss:registerEventType instead')
+registerAction = deprecated_directive(_configure.registerAction, 'azax:registerAction', 'use kss:registerAction instead')
+registerSelectorType = deprecated_directive(_configure.registerSelectorType, 'azax:registerSelectorType', 'use kss:registerSelectorType instead')
+registerCommandSet = deprecated_directive(_configure.registerCommandSet, 'azax:registerCommandSet', 'use kss:registerCommandSet instead')
Added: kukit/kss.core/trunk/pluginregistry/deprecated/directives.py
==============================================================================
--- (empty file)
+++ kukit/kss.core/trunk/pluginregistry/deprecated/directives.py Sun Nov 26 10:05:01 2006
@@ -0,0 +1,23 @@
+from zope.interface import Interface
+from zope.schema import TextLine, Choice
+from zope.configuration.fields import Path, Tokens, PythonIdentifier, \
+ GlobalInterface
+
+class IRegisterCommandDirective(Interface):
+ 'Register an AZAX command plugin'
+
+ name = TextLine(
+ title=u"Name",
+ description=u"The name of the command plugin.",
+ required=True,
+ )
+
+ jsfile = Path(
+ title=u"Javascript file",
+ description=u"The path of the javascript file that defines the plugin",
+ required=False,
+ )
+
+from kss.core.pluginregistry.directives import IRegisterEventTypeDirective, \
+ IRegisterActionDirective, IRegisterSelectorTypeDirective, \
+ IRegisterCommandSetDirective
Added: kukit/kss.core/trunk/pluginregistry/deprecated/meta.zcml
==============================================================================
--- (empty file)
+++ kukit/kss.core/trunk/pluginregistry/deprecated/meta.zcml Sun Nov 26 10:05:01 2006
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Modified: kukit/kss.core/trunk/pluginregistry/directives.py
==============================================================================
--- kukit/kss.core/trunk/pluginregistry/directives.py (original)
+++ kukit/kss.core/trunk/pluginregistry/directives.py Sun Nov 26 10:05:01 2006
@@ -3,24 +3,8 @@
from zope.configuration.fields import Path, Tokens, PythonIdentifier, \
GlobalInterface
-# XXX this will go away
-class IRegisterCommandDirective(Interface):
- 'Register an AZAX command plugin'
-
- name = TextLine(
- title=u"Name",
- description=u"The name of the command plugin.",
- required=True,
- )
-
- jsfile = Path(
- title=u"Javascript file",
- description=u"The path of the javascript file that defines the plugin",
- required=False,
- )
-
class IRegisterEventTypeDirective(Interface):
- 'Register an AZAX event type'
+ 'Register a KSS event type'
name = TextLine(
title=u"Name",
@@ -35,7 +19,7 @@
)
class IRegisterActionDirective(Interface):
- 'Register an AZAX action'
+ 'Register a KSS action'
name = TextLine(
title=u"Name",
@@ -77,7 +61,7 @@
)
class IRegisterSelectorTypeDirective(Interface):
- 'Register an AZAX selector type'
+ 'Register a KSS selector type'
name = TextLine(
title=u"Name",
@@ -92,7 +76,7 @@
)
class IRegisterCommandSetDirective(Interface):
- 'Register an AZAX command set'
+ 'Register a KSS command set'
name = TextLine(
title=u"Name",
Modified: kukit/kss.core/trunk/pluginregistry/json/configure.zcml
==============================================================================
--- kukit/kss.core/trunk/pluginregistry/json/configure.zcml (original)
+++ kukit/kss.core/trunk/pluginregistry/json/configure.zcml Sun Nov 26 10:05:01 2006
@@ -11,95 +11,45 @@
ensures that this zcml will always execute.
XXX But this should actually be done via
features / conditionals from here.
-
- XXX in addition we don't know if azax is under Products
- or not, so we provide both possibilities
-->
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Modified: kukit/kss.core/trunk/pluginregistry/json/utils.py
==============================================================================
--- kukit/kss.core/trunk/pluginregistry/json/utils.py (original)
+++ kukit/kss.core/trunk/pluginregistry/json/utils.py Sun Nov 26 10:05:01 2006
@@ -8,7 +8,7 @@
from zope.publisher.browser import TestRequest
from interfaces import IJSONStreamWriteable
-logger = logging.getLogger('azax')
+logger = logging.getLogger('kss.core')
def getJsonAddonFiles():
'Gets the addon javascript files for json'
Modified: kukit/kss.core/trunk/pluginregistry/meta.zcml
==============================================================================
--- kukit/kss.core/trunk/pluginregistry/meta.zcml (original)
+++ kukit/kss.core/trunk/pluginregistry/meta.zcml Sun Nov 26 10:05:01 2006
@@ -4,15 +4,11 @@
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- />
-
-
-
-
-
-
-
-
Modified: kukit/kss.core/trunk/plugins/effects/__init__.py
==============================================================================
--- kukit/kss.core/trunk/plugins/effects/__init__.py (original)
+++ kukit/kss.core/trunk/plugins/effects/__init__.py Sun Nov 26 10:05:01 2006
@@ -2,11 +2,3 @@
Module init
'''
-try:
- import Products.Five
-except ImportError:
- pass
-else:
- # Allow to build commands from restricted code
- from AccessControl import allow_module
- allow_module('Products.azax.plugins.effects.interfaces')
Modified: kukit/kss.core/trunk/plugins/effects/commands.py
==============================================================================
--- kukit/kss.core/trunk/plugins/effects/commands.py (original)
+++ kukit/kss.core/trunk/plugins/effects/commands.py Sun Nov 26 10:05:01 2006
@@ -1,11 +1,5 @@
from interfaces import IScriptaculousEffectsCommands
-
-
-try:
- from azax.azaxview import AzaxViewAdapter
-except ImportError:
- from Products.azax.azaxview import AzaxViewAdapter
-
+from kss.core.azaxview import AzaxViewAdapter
class ScriptaculousEffectsCommands(AzaxViewAdapter):
__allow_access_to_unprotected_subobjects__ = 1
Modified: kukit/kss.core/trunk/plugins/effects/configure.zcml
==============================================================================
--- kukit/kss.core/trunk/plugins/effects/configure.zcml (original)
+++ kukit/kss.core/trunk/plugins/effects/configure.zcml Sun Nov 26 10:05:01 2006
@@ -1,25 +1,15 @@
-
-
-
+
-
-
-
-
-
-
@@ -58,7 +48,7 @@
-
-
Modified: kukit/kss.core/trunk/siteview.txt
==============================================================================
--- kukit/kss.core/trunk/siteview.txt (original)
+++ kukit/kss.core/trunk/siteview.txt Sun Nov 26 10:05:01 2006
@@ -17,7 +17,7 @@
The main class which implements views as a site is `SiteView`.
- >>> from Products.azax.azaxview import SiteView
+ >>> from kss.core.azaxview import SiteView
When created this view will make it's manager the default site manager.
@@ -33,7 +33,7 @@
this will dispatch IAzaxEvent's.
>>> from zope.component.eventtesting import getEvents, clearEvents
- >>> from Products.azax.interfaces import IAzaxEvent
+ >>> from kss.core.interfaces import IAzaxEvent
>>> from zope.lifecycleevent import ObjectModifiedEvent
>>> from zope.event import notify
Modified: kukit/kss.core/trunk/tests/base.py
==============================================================================
--- kukit/kss.core/trunk/tests/base.py (original)
+++ kukit/kss.core/trunk/tests/base.py Sun Nov 26 10:05:01 2006
@@ -20,14 +20,14 @@
# 02111-1307, USA.
#
from Testing.ZopeTestCase import ZopeTestCase
-from Products.azax import AzaxBaseView
-from Products.azax import config
-from ZPublisher.HTTPRequest import HTTPRequest
-from cStringIO import StringIO
-from Globals import InitializeClass
+import kss.core
+from kss.core import AzaxBaseView
+#from kss.core import config
+#from ZPublisher.HTTPRequest import HTTPRequest
+#from cStringIO import StringIO
+#from Globals import InitializeClass
from OFS.SimpleItem import SimpleItem
from textwrap import dedent
-
from zope.publisher.browser import TestRequest
from zope.publisher.interfaces.browser import IBrowserRequest
from zope.interface import Interface, implements
@@ -88,8 +88,7 @@
pass
# XXX TODO fix this?? --- never run yet on Z3
from zope.configuration.xmlconfig import XMLConfig
- import azax
- XMLConfig('tests/configure-unittes.zcml', azax)()
+ XMLConfig('tests/configure-unittes.zcml', kss.core)()
else:
from Products.Five.zcml import load_string, load_config
load_config('meta.zcml', package=Products.Five)
@@ -120,9 +119,9 @@
except IOError:
# Zope 2.10 / Five 1.3.6 does not have it
pass
- load_config('meta.zcml', package=Products.azax)
- load_config('configure.zcml', package=Products.azax)
- load_config('configure-unittest.zcml', package=Products.azax.tests)
+ load_config('meta.zcml', package=kss.core)
+ load_config('configure.zcml', package=kss.core)
+ load_config('configure-unittest.zcml', package=kss.core.tests)
def beforeTearDown(self):
placelesssetup.tearDown()
Modified: kukit/kss.core/trunk/tests/commandinspector.py
==============================================================================
--- kukit/kss.core/trunk/tests/commandinspector.py (original)
+++ kukit/kss.core/trunk/tests/commandinspector.py Sun Nov 26 10:05:01 2006
@@ -19,7 +19,7 @@
from zope.interface import Interface, implements
from zope.app import zapi
-from Products.azax.interfaces import IAzaxCommandView
+from kss.core.interfaces import IAzaxCommandView
class CommandInspectorView(object):
'''Inspector view of a command.
Modified: kukit/kss.core/trunk/tests/configure-unittest.zcml
==============================================================================
--- kukit/kss.core/trunk/tests/configure-unittest.zcml (original)
+++ kukit/kss.core/trunk/tests/configure-unittest.zcml Sun Nov 26 10:05:01 2006
@@ -6,27 +6,12 @@
-
-
-
-
-
-
-
-
-
-
-
+
Modified: kukit/kss.core/trunk/tests/ecmaview.py
==============================================================================
--- kukit/kss.core/trunk/tests/ecmaview.py (original)
+++ kukit/kss.core/trunk/tests/ecmaview.py Sun Nov 26 10:05:01 2006
@@ -34,10 +34,7 @@
# plus these are not "entirely clean" as far as caching is concerned...
# Instead, use the resources implemented from concatresource:
# this is version free and has properly implemented cache control.
-try:
- from azax.pluginregistry._concatresource.resource import ConcatResourceFactory
-except ImportError:
- from Products.azax.pluginregistry._concatresource.resource import ConcatResourceFactory
+from kss.core.pluginregistry._concatresource.resource import ConcatResourceFactory
_marker = object()
@@ -82,7 +79,7 @@
This provides the tests run with the compiled kukit.js
resource, in the same way as they would be run
- in production with azax.
+ in production with kss.
'''
implements(IBrowserPublisher)
Modified: kukit/kss.core/trunk/tests/test_azaxview.py
==============================================================================
--- kukit/kss.core/trunk/tests/test_azaxview.py (original)
+++ kukit/kss.core/trunk/tests/test_azaxview.py Sun Nov 26 10:05:01 2006
@@ -22,24 +22,24 @@
import unittest, os
from textwrap import dedent
from zope.testing import doctest
-from base import AzaxViewTestCase,FakeContent, TestRequest, DebugTestRequest
-from Products.azax import AzaxUnicodeError
-from Products.azax.plugins.core.interfaces import IKSSCoreCommands
+from base import AzaxViewTestCase, FakeContent, TestRequest, DebugTestRequest
+from kss.core import AzaxUnicodeError
+from kss.core.plugins.core.interfaces import IKSSCoreCommands
from zope.testing.cleanup import CleanUp as PlacelessSetup
-from Products.azax.events import AzaxEvent
-from Products.azax.interfaces import IAzaxView
-from Products.azax.pluginregistry.interfaces import IAction, ICommandSet
-from Products.azax.interfaces import IAzaxCommands, IAzaxEvent
-from Products.azax.pluginregistry.action import Action
-from Products.azax.pluginregistry.plugin import registerPlugin
-from Products.azax.pluginregistry.commandset import CommandSet
-from Products.azax.plugins.core.commands import KSSCoreCommands
-from Products.azax.tests.base import IDebugRequest
-from Products.azax.tests.commandinspector import CommandInspectorView
+#from kss.core.events import AzaxEvent
+from kss.core.interfaces import IAzaxView
+from kss.core.pluginregistry.interfaces import IAction, ICommandSet
+from kss.core.interfaces import IAzaxCommands #, IAzaxEvent
+from kss.core.pluginregistry.action import Action
+from kss.core.pluginregistry.plugin import registerPlugin
+from kss.core.pluginregistry.commandset import CommandSet
+from kss.core.plugins.core.commands import KSSCoreCommands
+from kss.core.tests.base import IDebugRequest
+from kss.core.tests.commandinspector import CommandInspectorView
from zope import component
from Products.Five import zcml
import Products.Five
-from zope.app.component.hooks import setSite, getSite, setHooks
+#from zope.app.component.hooks import setSite, getSite, setHooks
def setUpDoctTest(test=None):
PlacelessSetup().setUp()
@@ -189,7 +189,7 @@
suites = []
suites.append(unittest.makeSuite(TestAzaxView))
suites.append(unittest.makeSuite(FTestAzaxView))
- suites.append(doctest.DocTestSuite('Products.azax.azaxview'))
+ suites.append(doctest.DocTestSuite('kss.core.azaxview'))
suites.append(doctest.DocFileSuite('../azaxview.txt',
setUp=setUpDoctTest,
tearDown=tearDownDoctTest))
Modified: kukit/kss.core/trunk/tests/test_siteview.py
==============================================================================
--- kukit/kss.core/trunk/tests/test_siteview.py (original)
+++ kukit/kss.core/trunk/tests/test_siteview.py Sun Nov 26 10:05:01 2006
@@ -1,23 +1,23 @@
-from base import AzaxViewTestCase,FakeContent, TestRequest, DebugTestRequest
-from Products.azax import AzaxUnicodeError
-from Products.azax.events import AzaxEvent
-from Products.azax.interfaces import IAzaxCommands, IAzaxEvent
-from Products.azax.interfaces import IAzaxView
-from Products.azax.pluginregistry.action import Action
-from Products.azax.pluginregistry.commandset import CommandSet
-from Products.azax.pluginregistry.interfaces import IAction, ICommandSet
-from Products.azax.pluginregistry.plugin import registerPlugin
-from Products.azax.plugins.core.commands import KSSCoreCommands
-from Products.azax.plugins.core.interfaces import IKSSCoreCommands
-from Products.azax.tests.base import IDebugRequest
-from Products.azax.tests.commandinspector import CommandInspectorView
+#from base import AzaxViewTestCase, FakeContent, TestRequest, DebugTestRequest
+#from kss.core import AzaxUnicodeError
+#from kss.core.events import AzaxEvent
+#from kss.core.interfaces import IAzaxCommands, IAzaxEvent
+#from kss.core.interfaces import IAzaxView
+#from kss.core.pluginregistry.action import Action
+#from kss.core.pluginregistry.commandset import CommandSet
+#from kss.core.pluginregistry.interfaces import IAction, ICommandSet
+#from kss.core.pluginregistry.plugin import registerPlugin
+#from kss.core.plugins.core.commands import KSSCoreCommands
+#from kss.core.plugins.core.interfaces import IKSSCoreCommands
+#from kss.core.tests.base import IDebugRequest
+#from kss.core.tests.commandinspector import CommandInspectorView
from Products.Five import zcml
from zope import component
from zope.component import eventtesting
from zope.testing import doctest
from zope.testing.cleanup import CleanUp as PlacelessSetup
import Products.Five
-import unittest, os
+import unittest #, os
def setUpDoctTest(test=None):
PlacelessSetup().setUp()
From reebalazs at codespeak.net Sun Nov 26 10:05:36 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 10:05:36 +0100 (CET)
Subject: [Kukit-checkins] r34991 - in kukit/kss.demo/trunk: . browser tests
Message-ID: <20061126090536.77F021007E@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 10:05:32 2006
New Revision: 34991
Added:
kukit/kss.demo/trunk/kss.demo-configure.zcml
kukit/kss.demo/trunk/kss.demo-meta.zcml
Removed:
kukit/kss.demo/trunk/azaxdemo-configure.zcml
kukit/kss.demo/trunk/azaxdemo-meta.zcml
Modified:
kukit/kss.demo/trunk/INSTALL.txt
kukit/kss.demo/trunk/azaxview.py
kukit/kss.demo/trunk/browser/azax_demo.pt
kukit/kss.demo/trunk/browser/azax_demo_index.pt
kukit/kss.demo/trunk/configure.zcml
kukit/kss.demo/trunk/simplecontent.py
kukit/kss.demo/trunk/tests/test_azaxview.py
Log:
Reorganization and name space changes
Modified: kukit/kss.demo/trunk/INSTALL.txt
==============================================================================
--- kukit/kss.demo/trunk/INSTALL.txt (original)
+++ kukit/kss.demo/trunk/INSTALL.txt Sun Nov 26 10:05:32 2006
@@ -1,10 +1,18 @@
-$Id$
INSTALLATION NOTES
==================
-1/ Drop azaxdemo into your product dir
-2/ In the zmi, add a "Azax Simple content" anywhere
- let's call it "test"
-3/ Get into "test" page, you should have a menu with available demos
+1. Drop kss.demo into your $INSTANCE/lib/python dir (it must be in the subdir
+ kss/demo/, and the kss base directory must hold an empty __init__.py file).
+
+2. Copy slugs kss.demo-configure.zcml and kss.demo-meta.zcml into
+ $INSTANCE/etc/package-includes directory.
+
+ * On Zope 2.8, the package-includes directory is not created by
+ default, so you also have to create it.
+
+3. In the zmi, add a "Kss Simple content" anywhere
+ let's call it "kssdemo"
+
+4. Get into "test" page, you should have a menu with available demos
Deleted: /kukit/kss.demo/trunk/azaxdemo-configure.zcml
==============================================================================
--- /kukit/kss.demo/trunk/azaxdemo-configure.zcml Sun Nov 26 10:05:32 2006
+++ (empty file)
@@ -1,5 +0,0 @@
-
-
-
-
-
Deleted: /kukit/kss.demo/trunk/azaxdemo-meta.zcml
==============================================================================
--- /kukit/kss.demo/trunk/azaxdemo-meta.zcml Sun Nov 26 10:05:32 2006
+++ (empty file)
@@ -1,5 +0,0 @@
-
-
-
-
-
Modified: kukit/kss.demo/trunk/azaxview.py
==============================================================================
--- kukit/kss.demo/trunk/azaxview.py (original)
+++ kukit/kss.demo/trunk/azaxview.py Sun Nov 26 10:05:32 2006
@@ -19,11 +19,7 @@
# 02111-1307, USA.
#
-try:
- from azax import AzaxBaseView, force_unicode
-except ImportError:
- from Products.azax import AzaxBaseView, force_unicode
-
+from kss.core import AzaxBaseView, force_unicode
import datetime
class AzaxView(AzaxBaseView):
Modified: kukit/kss.demo/trunk/browser/azax_demo.pt
==============================================================================
--- kukit/kss.demo/trunk/browser/azax_demo.pt (original)
+++ kukit/kss.demo/trunk/browser/azax_demo.pt Sun Nov 26 10:05:32 2006
@@ -12,7 +12,7 @@
Change tag content
Top div
- Azax
+ KSS
-
@@ -62,12 +62,12 @@
Javascript Styling
This page defines a link in the header which rel attribute points
- to a .kukit server file :
+ to a .kss resource file on the server :
- see the kukit file here.
+ see the kss file here.
- This .kukit file declares CSS selectors associated with events and server URLs called when the event occur.
+ This .kss file declares CSS selectors associated with events and server URLs called when the event occur.
A javascript engine processes the XML content : it inserts javascript
events in the DOM.
Modified: kukit/kss.demo/trunk/browser/azax_demo_index.pt
==============================================================================
--- kukit/kss.demo/trunk/browser/azax_demo_index.pt (original)
+++ kukit/kss.demo/trunk/browser/azax_demo_index.pt Sun Nov 26 10:05:32 2006
@@ -1,7 +1,7 @@
- Azax demos
+ KSS demos
- Change tag content
- Two selects
Modified: kukit/kss.demo/trunk/configure.zcml
==============================================================================
--- kukit/kss.demo/trunk/configure.zcml (original)
+++ kukit/kss.demo/trunk/configure.zcml Sun Nov 26 10:05:32 2006
@@ -1,7 +1,7 @@
@@ -41,7 +41,24 @@
name="index.html"
permission="zope.View"
/>
-
+
+
+
+
+
@@ -53,8 +70,8 @@
/>
@@ -68,7 +85,7 @@
/>
@@ -326,7 +343,7 @@
permission="zope.View"
/>
-
Added: kukit/kss.demo/trunk/kss.demo-configure.zcml
==============================================================================
--- (empty file)
+++ kukit/kss.demo/trunk/kss.demo-configure.zcml Sun Nov 26 10:05:32 2006
@@ -0,0 +1,3 @@
+
+
+
Added: kukit/kss.demo/trunk/kss.demo-meta.zcml
==============================================================================
--- (empty file)
+++ kukit/kss.demo/trunk/kss.demo-meta.zcml Sun Nov 26 10:05:32 2006
@@ -0,0 +1,3 @@
+
+
+
Modified: kukit/kss.demo/trunk/simplecontent.py
==============================================================================
--- kukit/kss.demo/trunk/simplecontent.py (original)
+++ kukit/kss.demo/trunk/simplecontent.py Sun Nov 26 10:05:32 2006
@@ -33,7 +33,7 @@
class SimpleContent(SimpleItem):
implements(ISimpleContent)
- meta_type = 'AzaxDemo SimpleContent'
+ meta_type = 'KssDemo SimpleContent'
security = ClassSecurityInfo()
manage_options = (
Modified: kukit/kss.demo/trunk/tests/test_azaxview.py
==============================================================================
--- kukit/kss.demo/trunk/tests/test_azaxview.py (original)
+++ kukit/kss.demo/trunk/tests/test_azaxview.py Sun Nov 26 10:05:32 2006
@@ -21,18 +21,18 @@
import unittest, os
from zope.testing import doctest
from Testing.ZopeTestCase import ZopeTestCase
-from Products.azax.tests.base import AzaxViewTestCase, FakeContent, \
- TestRequest, DebugTestRequest
-from Products.azaxdemo.azaxview import AzaxView
+from kss.core.tests.base import AzaxViewTestCase, FakeContent, \
+ TestRequest, DebugTestRequest
+from kss.demo.azaxview import AzaxView
from Products.Five.zcml import load_string, load_config
-import Products.azaxdemo
+import kss.demo
class AzaxDemoTestCase(AzaxViewTestCase):
def afterSetUp(self):
AzaxViewTestCase.afterSetUp(self)
- load_config('meta.zcml', package=Products.azaxdemo)
- load_config('configure.zcml', package=Products.azaxdemo)
+ load_config('meta.zcml', package=kss.demo)
+ load_config('configure.zcml', package=kss.demo)
# fake content
# XXX This is a holy mess. Go go macro adapters!
fakecontent = FakeContent()
@@ -68,5 +68,5 @@
def test_suite():
return unittest.TestSuite((
unittest.makeSuite(AzaxDemoTestCase),
- doctest.DocTestSuite('Products.azaxdemo.azaxview'),
+ doctest.DocTestSuite('kss.demo.azaxview'),
))
From reebalazs at codespeak.net Sun Nov 26 10:05:51 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 10:05:51 +0100 (CET)
Subject: [Kukit-checkins] r34992 - kukit/kss/trunk
Message-ID: <20061126090551.9E45A1007E@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 10:05:50 2006
New Revision: 34992
Modified:
kukit/kss/trunk/ (props changed)
Log:
Reorganization and name space changes
From reebalazs at codespeak.net Sun Nov 26 10:06:09 2006
From: reebalazs at codespeak.net (reebalazs at codespeak.net)
Date: Sun, 26 Nov 2006 10:06:09 +0100 (CET)
Subject: [Kukit-checkins] r34993 - kukit/kss/trunk
Message-ID: <20061126090609.E31DC1007B@code0.codespeak.net>
Author: reebalazs
Date: Sun Nov 26 10:06:08 2006
New Revision: 34993
Added:
kukit/kss/trunk/EXTERNALS.TXT
kukit/kss/trunk/README
kukit/kss/trunk/__init__.py
Log:
Reorganization and name space changes
Added: kukit/kss/trunk/EXTERNALS.TXT
==============================================================================
--- (empty file)
+++ kukit/kss/trunk/EXTERNALS.TXT Sun Nov 26 10:06:08 2006
@@ -0,0 +1,9 @@
+#
+# results of svn propget svn:externals
+# http://codespeak.net/svn/kukit/kss/trunk
+#
+# You can update your working dir by:
+# svn propset svn:externals -F EXTERNALS.TXT .
+#
+core http://codespeak.net/svn/kukit/kss.core/trunk
+demo http://codespeak.net/svn/kukit/kss.demo/trunk
Added: kukit/kss/trunk/README
==============================================================================
--- (empty file)
+++ kukit/kss/trunk/README Sun Nov 26 10:06:08 2006
@@ -0,0 +1,2 @@
+This is the root package of the kss namespace. It holds packages
+of the kss framework.
Added: kukit/kss/trunk/__init__.py
==============================================================================
--- (empty file)
+++ kukit/kss/trunk/__init__.py Sun Nov 26 10:06:08 2006
@@ -0,0 +1,4 @@
+'''\
+Module init
+'''
+