=============================================================== loops - Linked Objects for Organization and Processing Services =============================================================== ($Id$) Let's do some basic setup >>> from zope.app.testing.setup import placefulSetUp, placefulTearDown >>> site = placefulSetUp(True) >>> from zope import component, interface and set up a simple loops site with a concept manager and some concepts (with all the type machinery, what in real life is done via standard ZCML setup): >>> from loops.organize.setup import SetupManager >>> component.provideAdapter(SetupManager, name='organize') >>> from loops.organize.tracking.setup import SetupManager >>> component.provideAdapter(SetupManager, name='organize.tracking') >>> from loops.tests.setup import TestSite >>> t = TestSite(site) >>> concepts, resources, views = t.setup() Tracking Changes and Object Access ================================== >>> loopsRoot = concepts.getLoopsRoot() >>> records = loopsRoot.getRecordManager() >>> changes = records['changes'] User management setup --------------------- In order to be able to login and store personal data we have to prepare our environment. We need some basic adapter registrations, and a pluggable authentication utility with a principal folder. >>> from loops.organize.tests import setupObjectsForTesting >>> setupData = setupObjectsForTesting(site, concepts) >>> johnC = setupData.johnC Recording changes to objects ---------------------------- >>> from loops.organize.tracking.change import recordModification >>> component.provideHandler(recordModification) >>> loopsRoot.options = ['organize.tracking:changes'] >>> tTask = concepts['task'] >>> from loops.concept import Concept >>> from loops.setup import addAndConfigureObject >>> t01 = addAndConfigureObject(concepts, Concept, 't01', conceptType=tTask, ... title='Develop change tracking') >>> len(changes) 1 Recording assignment changes ---------------------------- >>> from loops.organize.tracking.change import recordAssignment, recordDeassignment >>> component.provideHandler(recordAssignment) >>> component.provideHandler(recordDeassignment) >>> t01.assignChild(johnC) >>> len(changes) 2 Fin de partie ============= >>> placefulTearDown()