Commit a863a357 authored by Tres Seaver's avatar Tres Seaver

100% unit test coverage.

parent f5b67bd6
......@@ -5,6 +5,8 @@ CHANGES
4.0.0 (unreleased)
------------------
- 100% unit test coverage.
- Added Sphinx documentation: moved doctest examples to API reference.
- Added 'setup.py docs' alias (installs ``Sphinx`` and dependencies).
......
......@@ -13,10 +13,67 @@
##############################################################################
"""Test Harness
"""
from doctest import DocTestSuite
import unittest
class DecoratorSpecificationDescriptorTests(unittest.TestCase):
def _getTargetClass(self):
from zope.proxy.decorator import DecoratorSpecificationDescriptor
return DecoratorSpecificationDescriptor
def _makeOne(self):
return self._getTargetClass()()
def test___get___w_class(self):
from zope.interface import Interface
from zope.interface import provider
class IFoo(Interface):
pass
@provider(IFoo)
class Foo(object):
pass
dsd = self._makeOne()
self.assertEqual(list(dsd.__get__(None, Foo)), [IFoo])
def test___get___w_inst_no_proxy(self):
from zope.interface import Interface
from zope.interface import implementer
class IFoo(Interface):
pass
@implementer(IFoo)
class Foo(object):
pass
dsd = self._makeOne()
self.assertEqual(list(dsd.__get__(Foo(), None)), [IFoo])
def test___get___w_inst_w_proxy(self):
from zope.interface import Interface
from zope.interface import implementer
from zope.proxy import ProxyBase
class IFoo(Interface):
pass
@implementer(IFoo)
class Foo(object):
pass
foo = Foo()
p_foo = ProxyBase(foo)
dsd = self._makeOne()
self.assertEqual(list(dsd.__get__(p_foo, None)), [IFoo])
def test___set___not_allowed(self):
from zope.interface import Interface
from zope.interface import implementer
class IFoo(Interface):
pass
@implementer(IFoo)
class Foo(object):
pass
foo = Foo()
dsd = self._makeOne()
self.assertRaises(TypeError, dsd.__set__, foo, object())
def test_suite():
suite = DocTestSuite()
suite.addTest(DocTestSuite('zope.proxy.decorator'))
return suite
return unittest.TestSuite((
))
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment