summaryrefslogtreecommitdiff
path: root/src/zope/interface/declarations.py
diff options
context:
space:
mode:
authorWolfgang Schnerring <wosc@wosc.de>2009-12-08 08:29:06 +0000
committerWolfgang Schnerring <wosc@wosc.de>2009-12-08 08:29:06 +0000
commitb32c2b903da738387a5b29b3f5049362cdc8dec2 (patch)
tree6607151c45f20e8a38113abb284e884e83003a9e /src/zope/interface/declarations.py
parent20af1ea9ef24a918389cdbfd5e4392caef44fe93 (diff)
downloadzope-interface-b32c2b903da738387a5b29b3f5049362cdc8dec2.tar.gz
Fix an edge case: make providedBy() work when a class has '__provides__' in
its __slots__ (see http://thread.gmane.org/gmane.comp.web.zope.devel/22490)
Diffstat (limited to 'src/zope/interface/declarations.py')
-rw-r--r--src/zope/interface/declarations.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/zope/interface/declarations.py b/src/zope/interface/declarations.py
index 3bc28a7..44a40e2 100644
--- a/src/zope/interface/declarations.py
+++ b/src/zope/interface/declarations.py
@@ -31,6 +31,7 @@ __docformat__ = 'restructuredtext'
import sys
import weakref
from zope.interface.interface import InterfaceClass, Specification
+from zope.interface.interface import SpecificationBase
from ro import mergeOrderings, ro
import exceptions
from types import ClassType, ModuleType
@@ -1248,7 +1249,8 @@ def getObjectSpecification(ob):
provides = getattr(ob, '__provides__', None)
if provides is not None:
- return provides
+ if isinstance(provides, SpecificationBase):
+ return provides
try:
cls = ob.__class__