~bjornt/launchpad/architect-vision

« back to all changes in this revision

Viewing changes to lib/canonical/launchpad/doc/webservice-marshallers.txt

  • Committer: Bjorn Tillenius
  • Date: 2010-05-12 12:52:09 UTC
  • mfrom: (10599.1.251 launchpad)
  • Revision ID: bjorn@canonical.com-20100512125209-pip7jav1a7xq52d8
Merge RF.

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
 
32
32
    >>> from canonical.launchpad.interfaces import IPerson
33
33
    >>> from zope.component import getMultiAdapter
 
34
    >>> from zope.schema import Choice
34
35
    >>> from lazr.restful.fields import ReferenceChoice
35
36
    >>> from lazr.restful.interfaces import IFieldMarshaller
36
37
    >>> from lazr.restful import EntryResource
84
85
    >>> marshaller.representation_name
85
86
    'some_person_link'
86
87
 
 
88
If you export a Choice that uses an SQLObjectVocabularyBase then you
 
89
get an error, as you should be using a ReferenceChoice instead to
 
90
ensure that the resulting wadl matches lazr.restful conventions.
 
91
 
 
92
    >>> field = Choice(
 
93
    ...    __name__='some_person', vocabulary='ValidPersonOrTeam')
 
94
    >>> field = field.bind(None)
 
95
    >>> getMultiAdapter((field, request), IFieldMarshaller)
 
96
    ... # doctest: +NORMALIZE_WHITESPACE
 
97
    Traceback (most recent call last):
 
98
    ...
 
99
    AssertionError: You exported some_person as an IChoice based on an
 
100
    SQLObjectVocabularyBase, you should use
 
101
    lazr.restful.fields.ReferenceChoice instead.
 
102
 
87
103
Cleanup.
88
104
 
89
105
    >>> request.oopsid = None