[Checkins] SVN: hurry.resource/trunk/ Test passes without zope.interface

Vincent Fretin vincent.fretin at gmail.com
Fri Jul 23 12:16:37 EDT 2010


Log message for revision 114962:
  Test passes without zope.interface

Changed:
  U   hurry.resource/trunk/buildout.cfg
  U   hurry.resource/trunk/src/hurry/resource/README.txt
  U   hurry.resource/trunk/src/hurry/resource/core.py
  U   hurry.resource/trunk/src/hurry/resource/interfaces.py

-=-
Modified: hurry.resource/trunk/buildout.cfg
===================================================================
--- hurry.resource/trunk/buildout.cfg	2010-07-23 14:39:01 UTC (rev 114961)
+++ hurry.resource/trunk/buildout.cfg	2010-07-23 16:16:37 UTC (rev 114962)
@@ -1,6 +1,6 @@
 [buildout]
 develop = .
-parts = test releaser
+parts = test test-wo-zca releaser
 versions = versions
 unzip = true
 
@@ -11,6 +11,17 @@
 eggs = hurry.resource [test]
 defaults = ['--tests-pattern', '^f?tests$', '-v']
 
+# This is needed to test without zope.interface
+# We use py.test
+# We can't use zope.testing because it depends on zope.interface
+# Test should be run in a clean environment with:
+# bin/py.test --doctest-glob "*.txt" -v src/
+[test-wo-zca]
+recipe = zc.recipe.egg
+eggs =
+  py
+  hurry.resource [test]
+
 [releaser]
 recipe = zc.recipe.egg
 eggs = zest.releaser

Modified: hurry.resource/trunk/src/hurry/resource/README.txt
===================================================================
--- hurry.resource/trunk/src/hurry/resource/README.txt	2010-07-23 14:39:01 UTC (rev 114961)
+++ hurry.resource/trunk/src/hurry/resource/README.txt	2010-07-23 16:16:37 UTC (rev 114962)
@@ -1,6 +1,7 @@
 hurry.resource
 **************
 
+
 Introduction
 ============
 
@@ -70,7 +71,7 @@
 
 Let's now see what resources are needed by this inclusion::
 
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'b.css' in library 'foo'>, 
    <ResourceInclusion 'a.js' in library 'foo'>, 
    <ResourceInclusion 'c.js' in library 'foo'>]
@@ -90,7 +91,7 @@
 
   >>> needed = NeededInclusions()
   >>> needed.need(group)
-  >>> group.inclusions()
+  >>> group.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'a.js' in library 'foo'>, 
    <ResourceInclusion 'b.css' in library 'foo'>]
 
@@ -98,7 +99,7 @@
 inclusions directly::
 
   >>> more_stuff = ResourceInclusion(foo, 'more_stuff.js', depends=[group])
-  >>> more_stuff.inclusions()
+  >>> more_stuff.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'a.js' in library 'foo'>, 
    <ResourceInclusion 'b.css' in library 'foo'>,
    <ResourceInclusion 'more_stuff.js' in library 'foo'>]
@@ -176,7 +177,7 @@
 
 The resource inclusion will now indeed be needed::
 
-  >>> get_current_needed_inclusions().inclusions()
+  >>> get_current_needed_inclusions().inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'b.css' in library 'foo'>, 
    <ResourceInclusion 'a.js' in library 'foo'>, 
    <ResourceInclusion 'c.js' in library 'foo'>]
@@ -238,7 +239,7 @@
 We need ``y1`` again::
 
   >>> needed.need(y1)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'b.css' in library 'foo'>, 
    <ResourceInclusion 'a.js' in library 'foo'>, 
    <ResourceInclusion 'c.js' in library 'foo'>]
@@ -248,7 +249,7 @@
 in the needed resources::
 
   >>> needed.need(y1)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'b.css' in library 'foo'>, 
    <ResourceInclusion 'a.js' in library 'foo'>, 
    <ResourceInclusion 'c.js' in library 'foo'>]
@@ -257,12 +258,12 @@
 already required ``x1`` and ``x2``::
 
   >>> needed.need(x1)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'b.css' in library 'foo'>, 
    <ResourceInclusion 'a.js' in library 'foo'>, 
    <ResourceInclusion 'c.js' in library 'foo'>]
   >>> needed.need(x2)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'b.css' in library 'foo'>, 
    <ResourceInclusion 'a.js' in library 'foo'>, 
    <ResourceInclusion 'c.js' in library 'foo'>]
@@ -274,7 +275,7 @@
   >>> needed.need(x1)
   >>> needed.need(x2)
   >>> needed.need(y1)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'b.css' in library 'foo'>,
    <ResourceInclusion 'a.js' in library 'foo'>, 
    <ResourceInclusion 'c.js' in library 'foo'>]
@@ -287,12 +288,12 @@
   >>> a3 = ResourceInclusion(foo, 'a3.js', depends=[a2])
   >>> a4 = ResourceInclusion(foo, 'a4.js', depends=[a1])
   >>> needed.need(a3)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'a1.js' in library 'foo'>,
    <ResourceInclusion 'a2.js' in library 'foo'>,
    <ResourceInclusion 'a3.js' in library 'foo'>]
   >>> needed.need(a4)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'a1.js' in library 'foo'>,
    <ResourceInclusion 'a2.js' in library 'foo'>,
    <ResourceInclusion 'a3.js' in library 'foo'>,
@@ -304,7 +305,7 @@
   >>> needed = NeededInclusions()
   >>> needed.need(a4)
   >>> needed.need(a3)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'a1.js' in library 'foo'>,
    <ResourceInclusion 'a4.js' in library 'foo'>,
    <ResourceInclusion 'a2.js' in library 'foo'>,
@@ -316,7 +317,7 @@
   >>> a5 = ResourceInclusion(foo, 'a5.js', depends=[a4, a3])
   >>> needed = NeededInclusions()
   >>> needed.need(a5)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'a1.js' in library 'foo'>,
    <ResourceInclusion 'a4.js' in library 'foo'>,
    <ResourceInclusion 'a2.js' in library 'foo'>,
@@ -330,7 +331,7 @@
   >>> needed = NeededInclusions()
   >>> needed.need(a3)
   >>> needed.need(a5)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'a1.js' in library 'foo'>, 
    <ResourceInclusion 'a2.js' in library 'foo'>, 
    <ResourceInclusion 'a3.js' in library 'foo'>, 
@@ -353,14 +354,14 @@
 
 By default, we get ``k.js``::
 
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'k.js' in library 'foo'>]
 
 We can however also get the resource for mode ``debug`` and get
 ``k-debug.js``::
 
   >>> needed.mode('debug')
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'k-debug.js' in library 'foo'>]
 
 Modes can also be specified fully with a resource inclusion, which allows
@@ -373,14 +374,14 @@
 
 By default we get ``k2.js``::
 
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'k2.js' in library 'foo'>]
 
 We can however also get the resource for mode ``debug`` and get
 ``k2-debug.js``::
 
   >>> needed.mode('debug')
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'k2-debug.js' in library 'foo'>]
 
 Note that modes are assumed to be identical in dependency structure;
@@ -392,7 +393,7 @@
   >>> needed = NeededInclusions()
   >>> needed.mode('minified')
   >>> needed.need(k1)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'k.js' in library 'foo'>]
 
 ``hurry.resource`` suggests resource libraries follow the following
@@ -437,7 +438,7 @@
 Let's look at the resources needed by default::
 
   >>> c = get_current_needed_inclusions()
-  >>> c.inclusions()
+  >>> c.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'l1.js' in library 'foo'>]
 
 Let's now change the mode using the convenience
@@ -448,7 +449,7 @@
 
 When we request the resources now, we get them in the ``debug`` mode::
 
-  >>> c.inclusions()
+  >>> c.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'l1-debug.js' in library 'foo'>]
 
 "Rollups"
@@ -474,7 +475,7 @@
   >>> needed = NeededInclusions()
   >>> needed.need(b1)
   >>> needed.need(b2)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'b1.js' in library 'foo'>, <ResourceInclusion 'b2.js' in library 'foo'>]
 
 Let's enable rollups::
@@ -492,7 +493,7 @@
 
   >>> needed.need(b1)
   >>> needed.need(b2)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'giant.js' in library 'foo'>]
 
 The system will by default only consolidate exactly. That is, if only a single
@@ -501,7 +502,7 @@
   >>> needed = NeededInclusions()
   >>> needed.rollup()
   >>> needed.need(b1)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'b1.js' in library 'foo'>]
 
 Let's look at this with a larger consolidation of 3 resources::
@@ -516,7 +517,7 @@
   >>> needed = NeededInclusions()
   >>> needed.rollup()
   >>> needed.need(c1)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'c1.css' in library 'foo'>]
 
 Neither will it roll up two resources::
@@ -525,7 +526,7 @@
   >>> needed.rollup()
   >>> needed.need(c1)
   >>> needed.need(c2)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'c1.css' in library 'foo'>,
    <ResourceInclusion 'c2.css' in library 'foo'>]
   
@@ -536,7 +537,7 @@
   >>> needed.need(c1)
   >>> needed.need(c2)
   >>> needed.need(c3)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'giantc.css' in library 'foo'>]
 
 The default behavior is to play it safe: we cannot be certain that we
@@ -566,7 +567,7 @@
   >>> needed.rollup()
   >>> needed.need(d1)
   >>> needed.need(d2)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'giantd.js' in library 'foo'>]
 
 In fact even if we only need a single resource the eager superseder will
@@ -575,7 +576,7 @@
   >>> needed = NeededInclusions()
   >>> needed.rollup()
   >>> needed.need(d1)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'giantd.js' in library 'foo'>]
 
 If there are two potential eager superseders, the biggest one will
@@ -588,7 +589,7 @@
   >>> needed.rollup()
   >>> needed.need(d1)
   >>> needed.need(d2)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'giantd-bigger.js' in library 'foo'>]
 
 If there is a potential non-eager superseder and an eager one, the eager one
@@ -602,7 +603,7 @@
   >>> needed.need(d2)
   >>> needed.need(d3)
   >>> needed.need(d4)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'giantd-bigger.js' in library 'foo'>]
 
 A resource can be part of multiple rollups. In this case the rollup
@@ -622,7 +623,7 @@
   >>> needed.need(e1)
   >>> needed.need(e2)
   >>> needed.need(e3)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'giante-three.js' in library 'foo'>]
 
 Consolidation also works with modes::
@@ -636,10 +637,10 @@
   >>> needed.rollup()
   >>> needed.need(f1)
   >>> needed.need(f2)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'giantf.js' in library 'foo'>]
   >>> needed.mode('debug')
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'giantf-debug.js' in library 'foo'>]
 
 What if the rolled up resources have no mode but the superseding resource
@@ -654,10 +655,10 @@
   >>> needed.rollup()
   >>> needed.need(g1)
   >>> needed.need(g2)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'giantg.js' in library 'foo'>]
   >>> needed.mode('debug')
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'giantg.js' in library 'foo'>]
 
 What if the rolled up resources have a mode but the superseding resource
@@ -670,14 +671,14 @@
   >>> needed.rollup()
   >>> needed.need(h1)
   >>> needed.need(h2)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'gianth.js' in library 'foo'>]
 
 Since there is no superseder for the debug mode, we will get the two 
 resources, not rolled up::
 
   >>> needed.mode('debug')
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'h1-debug.js' in library 'foo'>,
    <ResourceInclusion 'h2-debug.js' in library 'foo'>]
 
@@ -688,7 +689,7 @@
 
   >>> needed = NeededInclusions()
   >>> needed.need(y1)
-  >>> needed.inclusions()
+  >>> needed.inclusions() #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'b.css' in library 'foo'>, 
    <ResourceInclusion 'a.js' in library 'foo'>, 
    <ResourceInclusion 'c.js' in library 'foo'>]
@@ -1084,7 +1085,7 @@
 Let's make a list of resource inclusions not sorted by dependency::
 
   >>> i = [a5, a3, a1, a2, a4]
-  >>> sort_inclusions_topological(i)
+  >>> sort_inclusions_topological(i) #doctest: +NORMALIZE_WHITESPACE
   [<ResourceInclusion 'a1.js' in library 'foo'>, 
    <ResourceInclusion 'a4.js' in library 'foo'>, 
    <ResourceInclusion 'a2.js' in library 'foo'>, 
@@ -1114,7 +1115,7 @@
   >>> a6 = ResourceInclusion(foo, 'nothing.unknown')
 
   >>> from hurry.resource.core import render_inclusions
-  >>> render_inclusions([a6])
+  >>> render_inclusions([a6]) #doctest: +NORMALIZE_WHITESPACE +ELLIPSIS
   Traceback (most recent call last):
   ...
   UnknownResourceExtension: Unknown resource extension .unknown for resource

Modified: hurry.resource/trunk/src/hurry/resource/core.py
===================================================================
--- hurry.resource/trunk/src/hurry/resource/core.py	2010-07-23 14:39:01 UTC (rev 114961)
+++ hurry.resource/trunk/src/hurry/resource/core.py	2010-07-23 16:16:37 UTC (rev 114962)
@@ -3,10 +3,12 @@
 
 try:
     from zope.interface import implements
+    ZCA = True
 except ImportError:
     # fallback in case zope.interface isn't present
     def implements(iface):
         pass
+    ZCA = False
     
 from hurry.resource import interfaces
 
@@ -153,8 +155,8 @@
             for inclusion in inclusions]
 
 def normalize_inclusion(library, inclusion):
-    # XXX we don't want dependency on zope.interface but
-    # it'd be better to say IInclusion.providedBy
+    if ZCA and interfaces.IInclusion.providedBy(inclusion):
+        return inclusion
     if isinstance(inclusion, InclusionBase):
         return inclusion
     assert isinstance(inclusion, basestring)

Modified: hurry.resource/trunk/src/hurry/resource/interfaces.py
===================================================================
--- hurry.resource/trunk/src/hurry/resource/interfaces.py	2010-07-23 14:39:01 UTC (rev 114961)
+++ hurry.resource/trunk/src/hurry/resource/interfaces.py	2010-07-23 16:16:37 UTC (rev 114962)
@@ -5,7 +5,7 @@
     class Interface(object):
         pass
     class Attribute(object):
-        def __init__(s):
+        def __init__(self, s):
             pass
 
 class ILibrary(Interface):



More information about the checkins mailing list