[Checkins] SVN: Sandbox/nadako/zope.app.publisher/ The zope.publisher-related ZCML configuration and ModifiableBrowserLanguages adapter were moved into zope.publisher.

Dan Korostelev nadako at gmail.com
Mon Aug 24 11:05:44 EDT 2009


Log message for revision 103156:
  The zope.publisher-related ZCML configuration and ModifiableBrowserLanguages adapter were moved into zope.publisher.

Changed:
  U   Sandbox/nadako/zope.app.publisher/CHANGES.txt
  U   Sandbox/nadako/zope.app.publisher/buildout.cfg
  U   Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/__init__.py
  U   Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/configure.zcml
  D   Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/tests/test_browserlanguages.py
  U   Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/configure.zcml
  U   Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/http.zcml

-=-
Modified: Sandbox/nadako/zope.app.publisher/CHANGES.txt
===================================================================
--- Sandbox/nadako/zope.app.publisher/CHANGES.txt	2009-08-24 15:03:12 UTC (rev 103155)
+++ Sandbox/nadako/zope.app.publisher/CHANGES.txt	2009-08-24 15:05:44 UTC (rev 103156)
@@ -19,6 +19,11 @@
 Backward-compatibility imports are provided, so there should not be much impact
 for those who uses old imports.
 
+The CacheableBrowserLanguages and ModifiableBrowserLanguages adapters were
+moved into ``zope.publisher`` package, as well as ZCML class configuration
+for zope.publisher classes.
+
+
 3.8.4 (2009-07-23)
 ==================
 

Modified: Sandbox/nadako/zope.app.publisher/buildout.cfg
===================================================================
--- Sandbox/nadako/zope.app.publisher/buildout.cfg	2009-08-24 15:03:12 UTC (rev 103155)
+++ Sandbox/nadako/zope.app.publisher/buildout.cfg	2009-08-24 15:05:44 UTC (rev 103156)
@@ -1,9 +1,10 @@
 [buildout]
 develop = .
+  ../zope.publisher
   ../zope.browserresource
   ../zope.ptresource
   ../zope.browsermenu
-parts = test coverage-test coverage-report
+parts = test coverage-test coverage-report pydev
 
 [test]
 recipe = zc.recipe.testrunner
@@ -19,3 +20,7 @@
 eggs = z3c.coverage
 scripts = coverage=coverage-report
 arguments = ('coverage', 'coverage/report')
+
+[pydev]
+recipe = pb.recipes.pydev
+eggs = zope.app.publisher

Modified: Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/__init__.py
===================================================================
--- Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/__init__.py	2009-08-24 15:03:12 UTC (rev 103155)
+++ Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/__init__.py	2009-08-24 15:05:44 UTC (rev 103156)
@@ -15,56 +15,11 @@
 
 $Id$
 """
-
-from zope.interface import implements
+# BBB imports
 from zope.publisher.browser import BrowserLanguages
-from zope.i18n.interfaces import IUserPreferredLanguages
-from zope.i18n.interfaces import IModifiableUserPreferredLanguages
-
-from zope.publisher.defaultview import IDefaultViewNameAPI #BBB import
-from zope.publisher.defaultview import getDefaultViewName #BBB import
-from zope.publisher.defaultview import queryDefaultViewName #BBB import
-
-
-class NotCompatibleAdapterError(Exception):
-    """Adapter not compatible with
-       zope.i18n.interfaces.IModifiableBrowserLanguages has been used.
-    """
-
-key = "zope.app.publisher.browser.IUserPreferredLanguages"
-
-class CacheableBrowserLanguages(BrowserLanguages):
-
-    implements(IUserPreferredLanguages)
-
-    def getPreferredLanguages(self):
-        languages_data = self._getLanguagesData()
-        if "overridden" in languages_data:
-            return languages_data["overridden"]
-        elif "cached" not in languages_data:
-            languages_data["cached"] = super(
-                CacheableBrowserLanguages, self).getPreferredLanguages()
-        return languages_data["cached"]
-
-    def _getLanguagesData(self):
-        annotations = self.request.annotations
-        languages_data = annotations.get(key)
-        if languages_data is None:
-            annotations[key] = languages_data = {}
-        return languages_data
-
-class ModifiableBrowserLanguages(CacheableBrowserLanguages):
-
-    implements(IModifiableUserPreferredLanguages)
-
-    def setPreferredLanguages(self, languages):
-        languages_data = self.request.annotations.get(key)
-        if languages_data is None:
-            # Better way to create a compatible with
-            # IModifiableUserPreferredLanguages adapter is to use
-            # CacheableBrowserLanguages as base class or as example.
-            raise NotCompatibleAdapterError("Adapter not compatible with "
-                "zope.i18n.interfaces.IModifiableBrowserLanguages "
-                "has been used.")
-        languages_data["overridden"] = languages
-        self.request.setupLocale()
+from zope.publisher.browser import CacheableBrowserLanguages
+from zope.publisher.browser import ModifiableBrowserLanguages
+from zope.publisher.browser import NotCompatibleAdapterError
+from zope.publisher.defaultview import IDefaultViewNameAPI
+from zope.publisher.defaultview import getDefaultViewName
+from zope.publisher.defaultview import queryDefaultViewName

Modified: Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/configure.zcml
===================================================================
--- Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/configure.zcml	2009-08-24 15:03:12 UTC (rev 103155)
+++ Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/configure.zcml	2009-08-24 15:05:44 UTC (rev 103156)
@@ -7,37 +7,11 @@
   <include package="zope.ptresource" />
   <include package="zope.browsermenu" />
 
-<adapter
-    factory=".ModifiableBrowserLanguages"
-    for="zope.publisher.interfaces.http.IHTTPRequest"
-    provides="zope.i18n.interfaces.IModifiableUserPreferredLanguages"
-    />
-
 <utility
     name="Browser Skins"
     component=".vocabulary.BrowserSkinsVocabulary"
     />
 
-<class class="zope.publisher.browser.BrowserRequest">
-  <allow
-    interface="zope.publisher.interfaces.browser.IBrowserApplicationRequest"
-    attributes="response locale __str__"
-    />
-</class>
-
-<class class="zope.publisher.browser.TestRequest">
-  <allow
-    interface="zope.publisher.interfaces.browser.IBrowserApplicationRequest"
-    attributes="response"
-    />
-</class>
-
-<class class="zope.publisher.browser.BrowserResponse">
-  <allow
-    interface="zope.publisher.interfaces.http.IHTTPResponse"
-    />
-</class>
-
 <!-- Management view selector -->
 <!-- Get first accessible item from zmi_views menu -->
 <browser:page

Deleted: Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/tests/test_browserlanguages.py
===================================================================
--- Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/tests/test_browserlanguages.py	2009-08-24 15:03:12 UTC (rev 103155)
+++ Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/tests/test_browserlanguages.py	2009-08-24 15:05:44 UTC (rev 103156)
@@ -1,82 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Test Modifiable Browser Languages detector
-
-$Id$
-"""
-import unittest
-
-import zope.component
-from zope.interface import directlyProvides
-from zope.publisher.browser import BrowserLanguages
-from zope.publisher.tests.test_browserlanguages import TestRequest
-from zope.publisher.tests.test_browserlanguages import BrowserLanguagesTest
-from zope.annotation.interfaces import IAttributeAnnotatable
-from zope.annotation.attribute import AttributeAnnotations
-
-from zope.app.testing.placelesssetup import PlacelessSetup
-from zope.app.publisher.browser import CacheableBrowserLanguages
-from zope.app.publisher.browser import ModifiableBrowserLanguages
-from zope.app.publisher.browser import NotCompatibleAdapterError
-
-
-class CacheableBrowserLanguagesTests(PlacelessSetup, BrowserLanguagesTest):
-
-    def setUp(self):
-        super(CacheableBrowserLanguagesTests, self).setUp()
-        zope.component.provideAdapter(AttributeAnnotations)
-
-    def factory(self, request):
-        directlyProvides(request, IAttributeAnnotatable)
-        return CacheableBrowserLanguages(request)
-
-    def test_cached_languages(self):
-        eq = self.failUnlessEqual
-        request = TestRequest("da, en, pt")
-        browser_languages = self.factory(request)
-        eq(list(browser_languages.getPreferredLanguages()), ["da", "en", "pt"])
-        request["HTTP_ACCEPT_LANGUAGE"] = "ru, en"
-        eq(list(browser_languages.getPreferredLanguages()), ["da", "en", "pt"])
-
-class ModifiableBrowserLanguagesTests(CacheableBrowserLanguagesTests):
-
-    def factory(self, request):
-        directlyProvides(request, IAttributeAnnotatable)
-        return ModifiableBrowserLanguages(request)
-
-    def test_setPreferredLanguages(self):
-        eq = self.failUnlessEqual
-        request = TestRequest("da, en, pt")
-        browser_languages = self.factory(request)
-        eq(list(browser_languages.getPreferredLanguages()), ["da", "en", "pt"])
-        browser_languages.setPreferredLanguages(["ru", "en"])
-        self.failUnless(request.localized)
-        eq(list(browser_languages.getPreferredLanguages()), ["ru", "en"])
-
-    def test_conflicting_adapters(self):
-        request = TestRequest("da, en, pt")
-        not_compatible_browser_languages = BrowserLanguages(request)
-        browser_languages = self.factory(request)
-        self.assertRaises(NotCompatibleAdapterError,
-            browser_languages.setPreferredLanguages, ["ru", "en"])
-
-
-def test_suite():
-    suite = unittest.TestSuite()
-    suite.addTest(unittest.makeSuite(CacheableBrowserLanguagesTests))
-    suite.addTest(unittest.makeSuite(ModifiableBrowserLanguagesTests))
-    return suite
-
-if __name__=='__main__':
-    unittest.TextTestRunner().run(test_suite())

Modified: Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/configure.zcml
===================================================================
--- Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/configure.zcml	2009-08-24 15:03:12 UTC (rev 103155)
+++ Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/configure.zcml	2009-08-24 15:05:44 UTC (rev 103156)
@@ -3,9 +3,9 @@
     xmlns:apidoc="http://namespaces.zope.org/apidoc"
     >
 
+  <include package="zope.publisher" />
   <include package=".browser" />
   <include package=".xmlrpc" />
-  <include file="http.zcml" />
 
 
 </configure>

Modified: Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/http.zcml
===================================================================
--- Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/http.zcml	2009-08-24 15:03:12 UTC (rev 103155)
+++ Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/http.zcml	2009-08-24 15:05:44 UTC (rev 103156)
@@ -2,19 +2,6 @@
    xmlns="http://namespaces.zope.org/zope"
    package="zope.publisher.http">
 
-  <class class="zope.publisher.http.HTTPRequest">
-    <require
-        permission="zope.View"
-        interface="zope.publisher.interfaces.http.IHTTPApplicationRequest"/>
-  </class>
+  <!-- The contents of this file was moved into zope.publisher's configure.zcml -->
 
-  <class class="zope.publisher.http.URLGetter">
-    <allow
-        attributes="get __getitem__ __str__" />
-  </class>
-
-  <class class="zope.publisher.http.DirectResult">
-    <allow interface="zope.publisher.http.IResult" />
-  </class>
-
 </configure>



More information about the Checkins mailing list