loops/expert/testsetup.py
helmutm 8660f12f5e added options attribute to query, e.g. for controlling autoassignment; work in progress: loops.expert - starting to implement filters
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@2422 fd906abe-77d9-0310-91a1-e0d9ade77398
2008-02-29 09:57:41 +00:00

107 lines
4.1 KiB
Python

"""
Set up a loops site for testing.
$Id$
"""
from zope import component
from zope.app.catalog.interfaces import ICatalog
from cybertools.typology.interfaces import IType
from loops import util
from loops.concept import Concept
from loops.resource import Resource
from loops.knowledge.interfaces import IPerson
from loops.knowledge.knowledge import Person
from loops.knowledge.setup import SetupManager as KnowledgeSetupManager
from loops.setup import SetupManager, addObject
from loops.tests.setup import TestSite as BaseTestSite
from loops.type import ConceptType, ResourceType, TypeConcept
class TestSite(BaseTestSite):
def __init__(self, site):
self.site = site
def setup(self):
super(TestSite, self).setup()
site = self.site
loopsRoot = site['loops']
component.provideAdapter(Person, provides=IPerson)
component.provideAdapter(KnowledgeSetupManager, name='knowledge')
setup = SetupManager(loopsRoot)
concepts, resources, views = setup.setup()
tType = concepts.getTypeConcept()
tDomain = concepts['domain']
tTextDocument = concepts['textdocument']
tPerson = concepts['person']
tCountry = addObject(concepts, Concept, 'country', title=u'Country',
type=tType)
tCustomer = addObject(concepts, Concept, 'customer', title=u'Customer',
type=tType)
tState = addObject(concepts, Concept, 'state', title=u'State',
type=tType)
tDocumentType = addObject(concepts, Concept, 'documenttype',
title=u'Document Type', type=tType)
dGeneral = addObject(concepts, Concept, 'general',
title=u'General Domain', type=tDomain)
dProjects = addObject(concepts, Concept, 'projects',
title=u'Project Domain', type=tDomain)
tCountry.assignParent(dGeneral)
tState.assignParent(dGeneral)
tCustomer.assignParent(dProjects)
tDocumentType.assignParent(dProjects)
countryDe = addObject(concepts, Concept, 'country_de',
title=u'Germany', type=tCountry)
countryUs = addObject(concepts, Concept, 'country_us',
title=u'USA', type=tCountry)
cust1 = addObject(concepts, Concept, 'cust1',
title=u'Customer 1', type=tCustomer)
cust2 = addObject(concepts, Concept, 'cust2',
title=u'Customer 2', type=tCustomer)
cust3 = addObject(concepts, Concept, 'cust3',
title=u'Customer 3', type=tCustomer)
cust1.assignParent(countryDe)
cust2.assignParent(countryDe)
cust3.assignParent(countryUs)
stateNew = addObject(concepts, Concept, 'new',
title=u'New', type=tState)
stateReleased = addObject(concepts, Concept, 'released',
title=u'Released', type=tState)
stateObsolete = addObject(concepts, Concept, 'obsolete',
title=u'Obsolete', type=tState)
dtStudy = addObject(concepts, Concept, 'dt_study',
title=u'Study', type=tDocumentType)
dtNote = addObject(concepts, Concept, 'dt_note',
title=u'Note', type=tDocumentType)
jim = addObject(concepts, Concept, 'jim', title=u'Jim', type=tPerson)
jim.assignChild(cust1)
d001 = resources['d001.txt']
d001.assignConcept(cust1)
d001.assignConcept(stateReleased)
d001.assignConcept(dtNote)
d002 = resources['d002.txt']
d002.assignConcept(cust3)
d002.assignConcept(stateNew)
d002.assignConcept(dtNote)
d003 = resources['d003.txt']
d003.assignConcept(cust1)
d003.assignConcept(stateNew)
d003.assignConcept(dtStudy)
catalog = component.getUtility(ICatalog)
for c in concepts.values():
catalog.index_doc(int(util.getUidForObject(c)), c)
for r in resources.values():
catalog.index_doc(int(util.getUidForObject(r)), r)
return concepts, resources, views