def test_returns_multistatus_response(self):
        events = (create(Builder('event').titled(u'Meeting').within(self.calendar)),)
        self.request.set('BODY', make_multiget_request_body(events))

        report = getMultiAdapter((self.calendar, self.request), name=REPORT_NAME)
        root = etree.fromstring(report())
        self.assertEquals('{DAV:}multistatus', root.tag)
    def test_returns_report_per_requested_resource(self):
        events = (create(Builder('event').titled(u'Meeting').within(self.calendar)),
                  create(Builder('event').titled(u'Workshop').within(self.calendar)))
        self.request.set('BODY', make_multiget_request_body(events))

        report = getMultiAdapter((self.calendar, self.request), name=REPORT_NAME)
        doc = etree.fromstring(report())
        self.assertEquals(2, len(doc.xpath('//dav:response', namespaces=NAMESPACES)))
    def test_returns_requested_properties(self):
        events = (create(Builder('event').titled(u'Meeting').within(self.calendar)),)
        self.request.set('BODY', make_multiget_request_body(events))

        report = getMultiAdapter((self.calendar, self.request), name=REPORT_NAME)
        doc = etree.fromstring(report())
        self.assertEquals(
            'Meeting',
            doc.xpath('//dav:displayname', namespaces=NAMESPACES)[0].text)
 def multiget(self, browser, objects, properties=(('DAV:', 'displayname'),)):
     req_body = multiget.make_multiget_request_body(objects, properties=properties)
     browser.login().webdav('REPORT', self.calendar, view='caldav',
                            data=req_body)