===============================================================
loops - Linked Objects for Organization and Processing Services
===============================================================

Integration of external sources.

  ($Id$)


Setting up a loops Site and Utilities
=====================================

Let's do some basic set up

  >>> from zope import component, interface
  >>> from zope.traversing.api import getName
  >>> from zope.app.testing.setup import placefulSetUp, placefulTearDown
  >>> site = placefulSetUp(True)

and build a simple loops site with a concept manager and some concepts
(with a relation registry, a catalog, and all the type machinery - what
in real life is done via standard ZCML setup or via local utility
configuration):

  >>> from loops.tests.setup import TestSite
  >>> t = TestSite(site)
  >>> concepts, resources, views = t.setup()

  >>> len(concepts) + len(resources)
  13


Accessing a Directory in the Filesystem
=======================================

Let's just reuse the settings of cybertools.integrator.

  >>> from cybertools.integrator.tests.test_filesystem import testDir
  >>> from cybertools.integrator.filesystem import ContainerFactory, FileFactory
  >>> component.provideUtility(ContainerFactory(), name='filesystem')
  >>> component.provideUtility(FileFactory(), name='filesystem')

  >>> from loops.integrator.content.base import ExternalAccess
  >>> component.provideAdapter(ExternalAccess)

  >>> from loops.setup import addAndConfigureObject
  >>> from loops.concept import Concept
  >>> from loops.integrator.content.interfaces import IExternalAccess
  >>> typeConcept = concepts.getTypeConcept()
  >>> tExtAccess = addAndConfigureObject(concepts, Concept, 'extaccess',
  ...                   conceptType=typeConcept, typeInterface=IExternalAccess)

  >>> xa01 = addAndConfigureObject(concepts, Concept, 'xa01',
  ...                   conceptType=tExtAccess,
  ...                   providerName='filesystem', baseAddress=testDir)

  >>> from loops.common import adapted
  >>> xa01_ad =adapted(xa01)

  >>> directory = xa01_ad()
  >>> sorted(directory)
  ['index.html', 'sub']


Traversing Content Trees
========================


Fin de partie
=============

  >>> placefulTearDown()
