~ubuntu-branches/ubuntu/quantal/freeipa/quantal

« back to all changes in this revision

Viewing changes to tests/test_xmlrpc/test_selfservice_plugin.py

  • Committer: Package Import Robot
  • Author(s): Timo Aaltonen
  • Date: 2012-03-22 00:17:10 UTC
  • Revision ID: package-import@ubuntu.com-20120322001710-pyratwr2bfml6bin
Tags: upstream-2.1.4
ImportĀ upstreamĀ versionĀ 2.1.4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Authors:
 
2
#   Rob Crittenden <rcritten@redhat.com>
 
3
#
 
4
# Copyright (C) 2010  Red Hat
 
5
# see file 'COPYING' for use and warranty information
 
6
#
 
7
# This program is free software; you can redistribute it and/or modify
 
8
# it under the terms of the GNU General Public License as published by
 
9
# the Free Software Foundation, either version 3 of the License, or
 
10
# (at your option) any later version.
 
11
#
 
12
# This program is distributed in the hope that it will be useful,
 
13
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
# GNU General Public License for more details.
 
16
#
 
17
# You should have received a copy of the GNU General Public License
 
18
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
19
 
 
20
"""
 
21
Test the `ipalib/plugins/selfservice.py` module.
 
22
"""
 
23
 
 
24
from ipalib import api, errors
 
25
from tests.test_xmlrpc import objectclasses
 
26
from xmlrpc_test import Declarative, fuzzy_digits, fuzzy_uuid
 
27
 
 
28
selfservice1 = u'testself'
 
29
 
 
30
class test_selfservice(Declarative):
 
31
 
 
32
    cleanup_commands = [
 
33
        ('selfservice_del', [selfservice1], {}),
 
34
    ]
 
35
 
 
36
    tests = [
 
37
 
 
38
        dict(
 
39
            desc='Try to retrieve non-existent %r' % selfservice1,
 
40
            command=('selfservice_show', [selfservice1], {}),
 
41
            expected=errors.NotFound(reason='no such entry'),
 
42
        ),
 
43
 
 
44
 
 
45
        dict(
 
46
            desc='Try to update non-existent %r' % selfservice1,
 
47
            command=('selfservice_mod', [selfservice1], dict(description=u'Foo')),
 
48
            expected=errors.NotFound(reason='no such entry'),
 
49
        ),
 
50
 
 
51
 
 
52
        dict(
 
53
            desc='Try to delete non-existent %r' % selfservice1,
 
54
            command=('selfservice_del', [selfservice1], {}),
 
55
            expected=errors.NotFound(reason='no such entry'),
 
56
        ),
 
57
 
 
58
 
 
59
        dict(
 
60
            desc='Search for non-existent %r' % selfservice1,
 
61
            command=('selfservice_find', [selfservice1], {}),
 
62
            expected=dict(
 
63
                count=0,
 
64
                truncated=False,
 
65
                summary=u'0 selfservices matched',
 
66
                result=[],
 
67
            ),
 
68
        ),
 
69
 
 
70
 
 
71
        # Note that we add postalCode but expect postalcode. This tests
 
72
        # the attrs normalizer.
 
73
        dict(
 
74
            desc='Create %r' % selfservice1,
 
75
            command=(
 
76
                'selfservice_add', [selfservice1], dict(
 
77
                     attrs=u'street,c,l,st,postalCode',
 
78
                     permissions=u'write',
 
79
                )
 
80
            ),
 
81
            expected=dict(
 
82
                value=selfservice1,
 
83
                summary=u'Added selfservice "%s"' % selfservice1,
 
84
                result=dict(
 
85
                    attrs=[u'street', u'c', u'l', u'st', u'postalcode'],
 
86
                    permissions=[u'write'],
 
87
                    selfaci=True,
 
88
                    aciname=selfservice1,
 
89
                ),
 
90
            ),
 
91
        ),
 
92
 
 
93
 
 
94
        dict(
 
95
            desc='Try to create duplicate %r' % selfservice1,
 
96
            command=(
 
97
                'selfservice_add', [selfservice1], dict(
 
98
                     attrs=u'street,c,l,st,postalCode',
 
99
                     permissions=u'write',
 
100
                ),
 
101
            ),
 
102
            expected=errors.DuplicateEntry(),
 
103
        ),
 
104
 
 
105
 
 
106
        dict(
 
107
            desc='Retrieve %r' % selfservice1,
 
108
            command=('selfservice_show', [selfservice1], {}),
 
109
            expected=dict(
 
110
                value=selfservice1,
 
111
                summary=None,
 
112
                result={
 
113
                    'attrs': [u'street', u'c', u'l', u'st', u'postalcode'],
 
114
                    'permissions': [u'write'],
 
115
                    'selfaci': True,
 
116
                    'aciname': selfservice1,
 
117
                },
 
118
            ),
 
119
        ),
 
120
 
 
121
 
 
122
        dict(
 
123
            desc='Search for %r' % selfservice1,
 
124
            command=('selfservice_find', [selfservice1], {}),
 
125
            expected=dict(
 
126
                count=1,
 
127
                truncated=False,
 
128
                summary=u'1 selfservice matched',
 
129
                result=[
 
130
                    {
 
131
                        'attrs': [u'street', u'c', u'l', u'st', u'postalcode'],
 
132
                        'permissions': [u'write'],
 
133
                        'selfaci': True,
 
134
                        'aciname': selfservice1,
 
135
                    },
 
136
                ],
 
137
            ),
 
138
        ),
 
139
 
 
140
 
 
141
        dict(
 
142
            desc='Update %r' % selfservice1,
 
143
            command=(
 
144
                'selfservice_mod', [selfservice1], dict(permissions=u'read')
 
145
            ),
 
146
            expected=dict(
 
147
                value=selfservice1,
 
148
                summary=u'Modified selfservice "%s"' % selfservice1,
 
149
                result=dict(
 
150
                    attrs=[u'street', u'c', u'l', u'st', u'postalcode'],
 
151
                    permissions=[u'read'],
 
152
                    selfaci=True,
 
153
                    aciname=selfservice1,
 
154
                ),
 
155
            ),
 
156
        ),
 
157
 
 
158
 
 
159
        dict(
 
160
            desc='Retrieve %r to verify update' % selfservice1,
 
161
            command=('selfservice_show', [selfservice1], {}),
 
162
            expected=dict(
 
163
                value=selfservice1,
 
164
                summary=None,
 
165
                result={
 
166
                        'attrs': [u'street', u'c', u'l', u'st', u'postalcode'],
 
167
                        'permissions': [u'read'],
 
168
                        'selfaci': True,
 
169
                        'aciname': selfservice1,
 
170
                },
 
171
            ),
 
172
        ),
 
173
 
 
174
 
 
175
        dict(
 
176
            desc='Delete %r' % selfservice1,
 
177
            command=('selfservice_del', [selfservice1], {}),
 
178
            expected=dict(
 
179
                result=True,
 
180
                value=selfservice1,
 
181
                summary=u'Deleted selfservice "%s"' % selfservice1,
 
182
            )
 
183
        ),
 
184
 
 
185
    ]