def get_with_index_calls_get_with_id_from_list(self):
        ''' Revision(index=-2).get() calls request with -2th id of revisions '''
        # save
        o_revision_list = springnote.Revision.list

        page    = self.page
        index   = -2
        id      = 4567
        verbose = True
        
        rev1 = Revision(parent=page, id=id)
        rev2 = Revision(parent=page, id=id+1)
        rev1.date_created = 1
        rev2.date_created = 2
        springnote.Revision.list = lambda *args, **kwarg: [rev2, rev1]

        # calls revision.get()
        rev = Revision(parent=page, index=index)
        run = lambda: rev.get(verbose=verbose)
        url = "/pages/%d/revisions/%d." % (page.id, id)
        should_call_method(springnote.Revision, 'request', when=run,
            arg=with_at_least(eq(rev), contains_string(url), verbose=eq(verbose)))

        # restore
        springnote.Revision.list = o_revision_list
    def get_with_too_large_index_raises_exception(self):
        ''' Revision(index=-10000).get() with no such revision raises error '''
        # save
        o_revision_list = springnote.Revision.list

        page    = self.page
        index   = -10000        # too big!
        id      = 4567
        verbose = True
        
        rev1, rev2 = Revision(parent=page, id=id), Revision(parent=page, id=id+1)
        rev1.date_created, rev2.date_created = 1, 2
        springnote.Revision.list = lambda *args, **kwarg: [rev2, rev1]

        # calls revision.get()
        run = lambda: Revision(parent=page, index=index).get(verbose=verbose)
        should_raise(springnote.SpringnoteError.InvalidOption, when=run)

        # restore
        springnote.Revision.list = o_revision_list