diff --git a/tests/doctests.py b/README.txt similarity index 100% rename from tests/doctests.py rename to README.txt diff --git a/constraint.py b/constraint.py deleted file mode 100644 index d0382af..0000000 --- a/constraint.py +++ /dev/null @@ -1,79 +0,0 @@ -# -# Copyright (c) 2004 Helmut Merz helmutm@cy55.de -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# - -""" -Definition of the ResourceConstraint class. - -$Id$ -""" - -from zope.interface import implements - -from interfaces import IResourceConstraint - - -class ResourceConstraint(object): - - implements(IResourceConstraint) - - explanation = u'' - constraintType = 'require' - referenceType = 'explicit' - referenceKey = None - - - def __init__(self): - self.referenceValues = [] - - - def isResourceAllowed(self, resource, task=None): - if self.referenceType == 'parent': - for ref in self.referenceValues: - m = getattr(ref, self.referenceKey) - if resource in m(): - return True - elif self.referenceType == 'explicit': - return resource in self.referenceValues - elif self.referenceType == 'checkmethod': - m = getattr(resource, self.referenceKey, None) - if m: - return m() - elif self.referenceType == 'selectmethod': - allowed = self.getAllowedResources(task=task) - return allowed and resource in allowed or False - return False - - - def getAllowedResources(self, candidates=None, task=None): - if self.referenceType == 'parent': - result = [] - for ref in self.referenceValues: - m = getattr(ref, self.referenceKey) - result.extend(m()) - return tuple(result) - elif self.referenceType == 'explicit': - return tuple(self.referenceValues) - elif self.referenceType == 'selectmethod': - m = getattr(self, self.referenceKey) - return m(candidates, task) - else: - if candidates is None: - return None - else: - return tuple([ r for r in candidates if self.isResourceAllowed(r, task) ]) - diff --git a/tests/test_resource.py b/test_resource.py similarity index 100% rename from tests/test_resource.py rename to test_resource.py diff --git a/tests/test_task.py b/test_task.py similarity index 100% rename from tests/test_task.py rename to test_task.py diff --git a/tests/__init__.py b/tests/__init__.py deleted file mode 100644 index 4bc90fb..0000000 --- a/tests/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -""" -$Id$ -""" - diff --git a/tests/test_constraint.py b/tests/test_constraint.py deleted file mode 100755 index 5f6e465..0000000 --- a/tests/test_constraint.py +++ /dev/null @@ -1,93 +0,0 @@ -# $Id$ - -import unittest -#from zope.testing.doctestunit import DocTestSuite -from zope.interface.verify import verifyClass -from zope.app.container.interfaces import IContained -from zope.app.folder import Folder - -from loops.task import Task -from loops.resource import Resource -from loops.constraint import ResourceConstraint -from loops.interfaces import IResourceConstraint - -class Test(unittest.TestCase): - "Test methods of the ResourceConstraint class." - - def setUp(self): - #placelessSetUp() - self.f1 = Folder() - self.f1.__name__ = u'f1' - self.r1 = Resource() - self.f1['rsc1'] = self.r1 - self.t1 = Task() - self.f1['tsk1'] = self.t1 - self.rc1 = ResourceConstraint() - - def tearDown(self): - pass - - # the tests... - - def testInterface(self): - self.failUnless(IResourceConstraint.providedBy(self.rc1), - 'Interface IResourceConstraint is not implemented by class ResourceConstraint.') - verifyClass(IResourceConstraint, ResourceConstraint) - - def testRequireExplicit(self): - rc1 = self.rc1 - r1 = self.r1 - self.assertEqual(False, rc1.isResourceAllowed(r1)) - self.assertEqual((), rc1.getAllowedResources()) - rc1.referenceValues = ([r1]) - self.assertEqual(True, rc1.isResourceAllowed(r1)) - self.assertEqual((r1,), rc1.getAllowedResources()) - - def testRequireParent(self): - rc1 = self.rc1 - r1 = self.r1 - t2 = Task() - t2.allocateResource(r1) - rc1.referenceType = 'parent' - rc1.referenceKey = 'getAllocatedResources' - rc1.referenceValues = ([t2]) - self.assertEqual(True, rc1.isResourceAllowed(r1)) - self.assertEqual((r1,), rc1.getAllowedResources()) - rc1.referenceType = 'parent' - rc1.referenceKey = 'getAllocatedResources' - - def testRequireCheckmethod(self): - rc1 = self.rc1 - rc1.referenceType = 'checkmethod' - rc1.referenceKey = 'isAllowedForTesting' - r1 = self.r1 - t1 = self.t1 - self.failIf(rc1.isResourceAllowed(r1)) - Resource.isAllowedForTesting = lambda self: True - self.failUnless(rc1.isResourceAllowed(r1)) - Resource.isAllowedForTesting = lambda self: False - self.failIf(rc1.isResourceAllowed(r1, t1)) - - def testRequireSelectMethod(self): - rc1 = self.rc1 - rc1.referenceType = 'selectmethod' - rc1.referenceKey = 'selectResources' - r1 = self.r1 - t1 = self.t1 - def method(self, candidates, task): - if task is None: return None - return (r1,) - ResourceConstraint.selectResources = method - self.assertEqual((r1,), rc1.getAllowedResources(task=t1)) - self.failUnless(rc1.isResourceAllowed(r1, task=t1)) - - - -def test_suite(): - return unittest.TestSuite(( -# DocTestSuite('loops.tests.doctests'), - unittest.makeSuite(Test), - )) - -if __name__ == '__main__': - unittest.main(defaultTest='test_suite')