source: main/waeup.sirp/trunk/src/waeup/sirp/app.txt @ 5354

Last change on this file since 5354 was 5140, checked in by uli, 15 years ago

Update all unit tests that use the ZCA to run inside the new unit test layer.

File size: 1.9 KB
RevLine 
[4920]1:mod:`waeup.sirp.app` -- central components for a WAeUP portal
2**************************************************************
[3933]3
[5140]4.. :doctest:
5.. :layer: waeup.sirp.testing.WAeUPSIRPUnitTestLayer
[3933]6
[4920]7.. module:: waeup.sirp.app
[3933]8
[4273]9.. class:: University
10
11  The main WAeUP application object is given with
12  :class:`University`. It provides the main containers as faculties,
13  hostels, etc.
14
15  .. attribute:: name
16
17     A string. The name of a university.
18
19  .. attribute:: faculties
20
21     An arbitrary object containing "faculties". In the case of
22     `University` it is a container of type
[4920]23     `waeup.sirp.interfaces.IFacultyContainer`.
[4273]24
25
[3933]26Creating `University` instances
27===============================
28
[4273]29As :class:`University` instances make use of the Zope Component
30Architecture (ZCA), we have to setup the basic component registries,
31before we can create instances. We do this by simply grokking the
32whole :mod:`waeup` package. This way all interfaces, utilities and adapters
33defined in the package are looked up and registered with the global
[5140]34registries (this is done by the testlayer automatically).
[3933]35
[4273]36Now we can import the :class:`University` class and create an
37instance:
[3933]38
[4920]39    >>> from waeup.sirp.app import University
[3933]40    >>> myuniversity = University()
41    >>> myuniversity
[4920]42    <waeup.sirp.app.University object at 0x...>
[3933]43
44Instances of `University` comply with the interface
[4920]45`waeup.sirp.interfaces.IUniversity`:
[3933]46
47    >>> from zope.interface.verify import verifyClass
[4920]48    >>> from waeup.sirp.interfaces import IUniversity
[3933]49    >>> verifyClass(IUniversity, University)
50    True
51
[4273]52A freshly created instance provides the attributes promised by the
53interface:
[3933]54
[4920]55    >>> from waeup.sirp.app import University
[3933]56    >>> myuniversity = University()
57    >>> myuniversity.name
58    u'Sample University'
59
[4748]60    >>> myuniversity['faculties']
[4920]61    <waeup.sirp.university.facultycontainer.FacultyContainer object at 0x...>
Note: See TracBrowser for help on using the repository browser.