~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to ivle/webapp/urls/test_router.py

  • Committer: William Grant
  • Date: 2009-07-04 05:40:03 UTC
  • mto: (1294.4.2 ui-the-third)
  • mto: This revision was merged to the branch mainline in revision 1353.
  • Revision ID: grantw@unimelb.edu.au-20090704054003-tf2w3lz2hd2h0o4d
Fix and expand tests to cover new NotFound cases.

Show diffs side-by-side

added added

removed removed

Lines of Context:
52
52
class OfferingAPIIndex(View):
53
53
    pass
54
54
 
 
55
class OfferingProjectsIndex(View):
 
56
    pass
 
57
 
55
58
 
56
59
def root_to_subject(root, name):
57
 
    try:
58
 
        return root.subjects[name]
59
 
    except KeyError:
60
 
        raise NotFound(root, name)
 
60
    return root.subjects.get(name)
61
61
 
62
62
def subject_to_offering(subject, year, semester):
63
 
    try:
64
 
        return subject.offerings[(int(year), int(semester))]
65
 
    except (KeyError, ValueError):
66
 
        raise NotFound(subject, (year, semester))
 
63
    return subject.offerings.get((int(year), int(semester)))
67
64
 
68
65
def offering_to_projects(offering):
69
66
    return OfferingProjects(offering)
114
111
        self.rtr.add_view(Subject, '+edit', SubjectEdit, viewset='browser')
115
112
        self.rtr.add_view(Offering, '+index', OfferingIndex, viewset='browser')
116
113
        self.rtr.add_view(Offering, '+index', OfferingAPIIndex, viewset='api')
 
114
        self.rtr.add_view(OfferingProjects, '+index', OfferingProjectsIndex,
 
115
                          viewset='browser')
117
116
 
118
117
    def testOneRoute(self):
119
118
        assert_equal(self.rtr.resolve('/info1'),
154
153
                     (self.r.subjects['info1'], SubjectEdit, ('foo', 'bar'))
155
154
                     )
156
155
 
157
 
    @raises(NotFound)
 
156
    def testNoDefaultView(self):
 
157
        try:
 
158
            self.rtr.default = 'not+index'
 
159
            self.rtr.resolve('/info1')
 
160
        except NotFound, e:
 
161
            assert_equal(e.args, (self.r.subjects['info1'], '+index', ()))
 
162
        except:
 
163
            raise
 
164
        else:
 
165
            raise AssertionError('did not raise NotFound')
 
166
        finally:
 
167
            self.rtr.default = '+index'
 
168
 
 
169
    def testMissingView(self):
 
170
        try:
 
171
            self.rtr.resolve('/info1/+foo')
 
172
        except NotFound, e:
 
173
            assert_equal(e.args, (self.r.subjects['info1'], '+foo', ()))
 
174
        except:
 
175
            raise
 
176
        else:
 
177
            raise AssertionError('did not raise NotFound')
 
178
 
158
179
    def testViewSetSeparation(self):
159
 
        self.rtr.resolve('/api/info1/+edit')
 
180
        try:
 
181
            self.rtr.resolve('/api/info1/+edit')
 
182
        except NotFound, e:
 
183
            assert_equal(e.args, (self.r.subjects['info1'], '+edit', ()))
 
184
        except:
 
185
            raise
 
186
        else:
 
187
            raise AssertionError('did not raise NotFound')
 
188
 
 
189
    def testRouteReturningNone(self):
 
190
        try:
 
191
            self.rtr.resolve('/info9/+index')
 
192
        except NotFound, e:
 
193
            assert_equal(e.args, (self.r, 'info9', ('+index',)))
 
194
        except:
 
195
            raise
 
196
        else:
 
197
            raise AssertionError('did not raise NotFound')
160
198
 
161
199
    def testAlternateViewSetWithDefault(self):
162
200
        assert_equal(self.rtr.resolve('/info1/2009/1'),