[Zope3-checkins] CVS: Zope3/src/zope/app/container/tests - test_size.py:1.1
Steve Alexander
steve@cat-box.net
Fri, 27 Dec 2002 13:22:59 -0500
Update of /cvs-repository/Zope3/src/zope/app/container/tests
In directory cvs.zope.org:/tmp/cvs-serv5454/src/zope/app/container/tests
Added Files:
test_size.py
Log Message:
units should be singular.
added a sized adapter for containers that presents the number of items
contained.
If you have a kind of container for which it is expensive to get the
number of items contained, then you should make an ISized for that
container.
=== Added File Zope3/src/zope/app/container/tests/test_size.py ===
##############################################################################
#
# 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.0 (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.
#
##############################################################################
import unittest
from zope.app.interfaces.size import ISized
from zope.app.interfaces.container import IContainer
class DummyContainer:
__implements__ = IContainer
def __init__(self, numitems):
self._numitems = numitems
def __len__(self):
return self._numitems
class Test(unittest.TestCase):
def testImplementsISized(self):
from zope.app.container.size import ContainerSized
sized = ContainerSized(DummyContainer(23))
self.assert_(ISized.isImplementedBy(sized))
def testEmptyContainer(self):
from zope.app.container.size import ContainerSized
obj = DummyContainer(0)
sized = ContainerSized(obj)
self.assertEqual(sized.sizeForSorting(), ('item', 0))
self.assertEqual(sized.sizeForDisplay(), u'0 items')
def testOneItem(self):
from zope.app.container.size import ContainerSized
obj = DummyContainer(1)
sized = ContainerSized(obj)
self.assertEqual(sized.sizeForSorting(), ('item', 1))
self.assertEqual(sized.sizeForDisplay(), u'1 item')
def testSeveralItems(self):
from zope.app.container.size import ContainerSized
obj = DummyContainer(2)
sized = ContainerSized(obj)
self.assertEqual(sized.sizeForSorting(), ('item', 2))
self.assertEqual(sized.sizeForDisplay(), u'2 items')
def test_suite():
loader = unittest.TestLoader()
return loader.loadTestsFromTestCase(Test)
if __name__=='__main__':
unittest.TextTestRunner().run(test_suite())