Ejemplo n.º 1
0
 def test_get_collection(self):
     path = '/collection/'
     v = DavView(path=path, acl_class=FullAcl, base_url='/base', _allowed_methods=Mock(return_value=['ALL']))
     v.__dict__['resource'] = MockCollection(path)
     resp = v.get(None, path)
     self.assertEqual("listing", resp.content)
     self.assertEqual("Wed, 24 Dec 2014 06:00:00 +0000", resp['Last-Modified'])
Ejemplo n.º 2
0
 def test_missing(self):
     path = '/object.mp4'
     r = DavView(path=path, acl_class=FullAcl)
     r.__dict__['resource'] = MissingMockCollection(path)
     request = Mock(META={'SERVERNANE': 'testserver'},
                    build_absolute_uri=Mock(return_value=path))
     self.assertRaises(Http404, r.get, request, path, 'xbody')
Ejemplo n.º 3
0
 def test_missing(self):
     path = '/object.mp4'
     r = DavView(path=path, acl_class=FullAcl)
     r.__dict__['resource'] = MissingMockCollection(path)
     request = Mock(META={'SERVERNANE': 'testserver'}, build_absolute_uri=Mock(return_value=path))
     resp = r.get(request, path, 'xbody')
     self.assertEqual(resp.status_code, 404)
Ejemplo n.º 4
0
 def test_allowed_collection(self):
     v = DavView()
     v.__dict__['resource'] = self.top_collection
     self.assertListEqual(v._allowed_methods(), [
         'HEAD', 'OPTIONS', 'PROPFIND', 'LOCK', 'UNLOCK', 'GET', 'DELETE',
         'PROPPATCH', 'COPY', 'MOVE', 'PUT', 'MKCOL'
     ])
Ejemplo n.º 5
0
 def test_propfind_all_names(self):
     self.sub_object.get_descendants.return_value += [self.sub_object]
     request = Mock(META={})
     path = 'collection/sub_object'
     v = DavView(base_url='/base/', path=path, request=request, acl_class=FullAcl, xml_pretty_print=True)
     v.__dict__['resource'] = self.sub_object
     resp = v.propfind(request, path,
         etree.XPathDocumentEvaluator(ElementTree(
             D.propfind(
                 D.propname()
             )
         ), namespaces=WEBDAV_NSMAP)
     )
     self.assertEqual(resp.status_code, 207)
     self.assertEqual(resp.content,
         etree.tostring(D.multistatus(
             D.response(
                 D.href('/base/collection/sub_object'),
                 D.propstat(
                     D.prop(
                         D.getcontentlength(),
                         D.creationdate(),
                         D.getlastmodified(),
                         D.resourcetype(),
                         D.displayname(),
                     ),
                     D.status("HTTP/1.1 200 OK")
                 )
             ),
         ), pretty_print=True, xml_declaration=True, encoding='utf-8')
     )
Ejemplo n.º 6
0
 def test_get_collection(self):
     path = '/collection/'
     v = DavView(path=path, acl_class=FullAcl, base_url='/base', _allowed_methods=Mock(return_value=['ALL']))
     v.__dict__['resource'] = MockCollection(path)
     resp = v.get(None, path)
     self.assertEqual(b"listing", resp.content)
     self.assertEqual("Wed, 24 Dec 2014 06:00:00 +0000", resp['Last-Modified'])
Ejemplo n.º 7
0
 def test_propfind_all_names(self):
     self.sub_object.get_descendants.return_value += [self.sub_object]
     request = Mock(META={})
     path = 'collection/sub_object'
     v = DavView(base_url='/base/', path=path, request=request, acl_class=FullAcl, xml_pretty_print=True)
     v.__dict__['resource'] = self.sub_object
     resp = v.propfind(request, path,
         etree.XPathDocumentEvaluator(ElementTree(
             D.propfind(
                 D.propname()
             )
         ), namespaces=WEBDAV_NSMAP)
     )
     self.assertEqual(resp.status_code, 207)
     self.assertEqual(resp.content,
         etree.tostring(D.multistatus(
             D.response(
                 D.href('/base/collection/sub_object'),
                 D.propstat(
                     D.prop(
                         D.getcontentlength(),
                         D.creationdate(),
                         D.getlastmodified(),
                         D.resourcetype(),
                         D.displayname(),
                     ),
                     D.status("HTTP/1.1 200 OK")
                 )
             ),
         ), pretty_print=True, xml_declaration=True, encoding='utf-8')
     )
Ejemplo n.º 8
0
 def test_delete_missing(self):
     target = self.missing_sub_object
     v = DavView(path=target.get_path(), acl_class=FullAcl, resource_class=Mock(), lock_class=DummyLock)
     v.__dict__['resource'] = target
     request = HttpRequest()
     target.delete = Mock()
     self.assertRaises(Http404, v.delete, request, target.get_path())
     self.assertFalse(target.delete.called)
Ejemplo n.º 9
0
 def test_delete_missing(self):
     target = self.missing_sub_object
     v = DavView(path=target.get_path(), acl_class=FullAcl, resource_class=Mock(), lock_class=DummyLock)
     v.__dict__['resource'] = target
     request = HttpRequest()
     target.delete = Mock()
     self.assertRaises(Http404, v.delete, request, target.get_path())
     self.assertFalse(target.delete.called)
Ejemplo n.º 10
0
 def test_allowed_missing_collection(self):
     v = DavView()
     parent = MockCollection('/path/to/obj')
     v.__dict__['resource'] = MissingMockCollection(
         '/path/', get_parent=Mock(return_value=parent))
     self.assertListEqual(
         v._allowed_methods(),
         ['HEAD', 'OPTIONS', 'PROPFIND', 'GET', 'PUT', 'MKCOL'])
Ejemplo n.º 11
0
 def test_get_object_redirect(self):
     actual_path = '/object.mp4'
     wrong_path = '/object.mp4/'
     r = DavView(path=wrong_path, acl_class=FullAcl)
     r.__dict__['resource'] = MockObject(actual_path)
     request = Mock(META={'SERVERNANE': 'testserver'}, build_absolute_uri=Mock(return_value=wrong_path))
     resp = r.get(request, wrong_path, 'xbody')
     self.assertEqual(resp.status_code, 302)
     self.assertEqual(resp['Location'], actual_path)
Ejemplo n.º 12
0
 def test_get_object_redirect(self):
     actual_path = '/object.mp4'
     wrong_path = '/object.mp4/'
     r = DavView(path=wrong_path, acl_class=FullAcl)
     r.__dict__['resource'] = MockObject(actual_path)
     request = Mock(META={'SERVERNANE': 'testserver'}, build_absolute_uri=Mock(return_value=wrong_path))
     resp = r.get(request, wrong_path, 'xbody')
     self.assertEqual(resp.status_code, 302)
     self.assertEqual(resp['Location'], actual_path)
Ejemplo n.º 13
0
 def test_mkcol_object(self):
     path = '/collection/sub_object'
     v = DavView(path=path, acl_class=FullAcl, resource_class=Mock())
     v.__dict__['resource'] = self.sub_object
     self.sub_object.create_collection = Mock()
     request = HttpRequest()
     resp = v.mkcol(request, path)
     self.assertFalse(self.sub_object.create_collection.called)
     self.assertEqual(405, resp.status_code)
Ejemplo n.º 14
0
 def test_head_object(self):
     path = '/object.txt'
     v = DavView(path=path, base_url='/base', _allowed_methods=Mock(return_value=['ALL']), acl_class=FullAcl)
     v.__dict__['resource'] = MockObject(path)
     resp = v.head(None, path)
     self.assertEqual("text/plain", resp['Content-Type'])
     self.assertEqual("Wed, 24 Dec 2014 06:00:00 +0000", resp['Last-Modified'])
     self.assertEqual(b"", resp.content)
     self.assertEqual("0", resp['Content-Length'])
Ejemplo n.º 15
0
 def test_put_collection(self):
     path = '/collection/missing_sub_object'
     v = DavView(path=path, acl_class=FullAcl, resource_class=Mock())
     v.__dict__['resource'] = self.sub_collection
     self.sub_collection.write = Mock()
     request = HttpRequest()
     resp = v.put(request, path)
     self.assertFalse(self.sub_collection.write.called)
     self.assertEqual(403, resp.status_code)
Ejemplo n.º 16
0
 def test_mkcol_new(self):
     path = '/collection/missing_sub_collection'
     v = DavView(path=path, acl_class=FullAcl, resource_class=Mock())
     v.__dict__['resource'] = self.missing_sub_collection
     self.missing_sub_collection.create_collection = Mock()
     request = HttpRequest()
     resp = v.mkcol(request, path)
     self.missing_sub_collection.create_collection.assert_called_with()
     self.assertEqual(201, resp.status_code)
Ejemplo n.º 17
0
 def test_get_collection_redirect(self):
     actual_path = '/collection/'
     wrong_path = '/collection'
     v = DavView(path=wrong_path, acl_class=FullAcl)
     v.__dict__['resource'] = MockCollection(actual_path)
     request = Mock(META={'SERVERNANE': 'testserver'}, build_absolute_uri=Mock(return_value=wrong_path))
     resp = v.get(request, wrong_path, 'xbody')
     self.assertEqual(resp.status_code, 302)
     self.assertEqual(actual_path, resp['Location'])
Ejemplo n.º 18
0
 def test_put_exists(self):
     path = '/collection/missing_sub_object'
     v = DavView(path=path, acl_class=FullAcl, resource_class=Mock())
     v.__dict__['resource'] = self.sub_object
     self.sub_object.write = Mock()
     request = HttpRequest()
     resp = v.put(request, path)
     self.sub_object.write.assert_called_with(request)
     self.assertEqual(204, resp.status_code)
Ejemplo n.º 19
0
 def test_get_obj(self):
     path = '/obj.txt'
     v = DavView(path=path, _allowed_methods=Mock(return_value=['ALL']), acl_class=FullAcl)
     v.__dict__['resource'] = MockObject(path, read=Mock(return_value="C" * 42))
     resp = v.get(None, path, acl_class=FullAcl)
     self.assertEqual(resp['Etag'], "0" * 40)
     self.assertEqual(resp['Content-Type'], "text/plain")
     self.assertEqual(resp['Last-Modified'], "Wed, 24 Dec 2014 06:00:00 +0000")
     self.assertEqual(resp.content, b"C" * 42)
Ejemplo n.º 20
0
 def test_get_collection_redirect(self):
     actual_path = '/collection/'
     wrong_path = '/collection'
     v = DavView(path=wrong_path, acl_class=FullAcl)
     v.__dict__['resource'] = MockCollection(actual_path)
     request = Mock(META={'SERVERNANE': 'testserver'}, build_absolute_uri=Mock(return_value=wrong_path))
     resp = v.get(request, wrong_path, 'xbody')
     self.assertEqual(resp.status_code, 302)
     self.assertEqual(actual_path, resp['Location'])
Ejemplo n.º 21
0
 def test_delete_exists(self):
     target = self.sub_object
     v = DavView(path=target.get_path(), acl_class=FullAcl, resource_class=Mock(), lock_class=DummyLock)
     v.__dict__['resource'] = target
     request = HttpRequest()
     target.delete = Mock()
     resp = v.delete(request, target.get_path())
     self.assertTrue(target.delete.called)
     self.assertEqual(204, resp.status_code)
Ejemplo n.º 22
0
 def test_put_collection(self):
     path = '/collection/missing_sub_object'
     v = DavView(path=path, acl_class=FullAcl, resource_class=Mock())
     v.__dict__['resource'] = self.sub_collection
     self.sub_collection.write = Mock()
     request = HttpRequest()
     resp = v.put(request, path)
     self.assertFalse(self.sub_collection.write.called)
     self.assertEqual(405, resp.status_code)
Ejemplo n.º 23
0
 def test_mkcol_new(self):
     path = '/collection/missing_sub_collection'
     v = DavView(path=path, acl_class=FullAcl, resource_class=Mock())
     v.__dict__['resource'] = self.missing_sub_collection
     self.missing_sub_collection.create_collection = Mock()
     request = HttpRequest()
     resp = v.mkcol(request, path)
     self.missing_sub_collection.create_collection.assert_called_with()
     self.assertEqual(201, resp.status_code)
Ejemplo n.º 24
0
 def test_mkcol_object(self):
     path = '/collection/sub_object'
     v = DavView(path=path, acl_class=FullAcl, resource_class=Mock())
     v.__dict__['resource'] = self.sub_object
     self.sub_object.create_collection = Mock()
     request = HttpRequest()
     resp = v.mkcol(request, path)
     self.assertFalse(self.sub_object.create_collection.called)
     self.assertEqual(405, resp.status_code)
Ejemplo n.º 25
0
 def test_put_exists(self):
     path = '/collection/missing_sub_object'
     v = DavView(path=path, acl_class=FullAcl, resource_class=Mock())
     v.__dict__['resource'] = self.sub_object
     self.sub_object.write = Mock()
     request = HttpRequest()
     resp = v.put(request, path)
     self.sub_object.write.assert_called_with(request)
     self.assertEqual(204, resp.status_code)
Ejemplo n.º 26
0
 def test_delete_exists(self):
     target = self.sub_object
     v = DavView(path=target.get_path(), acl_class=FullAcl, resource_class=Mock(), lock_class=DummyLock)
     v.__dict__['resource'] = target
     request = HttpRequest()
     target.delete = Mock()
     resp = v.delete(request, target.get_path())
     self.assertTrue(target.delete.called)
     self.assertEqual(204, resp.status_code)
Ejemplo n.º 27
0
 def test_head_object(self):
     path = '/object.txt'
     v = DavView(path=path, base_url='/base', _allowed_methods=Mock(return_value=['ALL']), acl_class=FullAcl)
     v.__dict__['resource'] = MockObject(path)
     resp = v.head(None, path)
     self.assertEqual("text/plain", resp['Content-Type'])
     self.assertEqual("Wed, 24 Dec 2014 06:00:00 +0000", resp['Last-Modified'])
     self.assertEqual("", resp.content)
     self.assertEqual("0", resp['Content-Length'])
Ejemplo n.º 28
0
 def test_get_obj(self):
     path = '/obj.txt'
     v = DavView(path=path, _allowed_methods=Mock(return_value=['ALL']), acl_class=FullAcl)
     v.__dict__['resource'] = MockObject(path, read=Mock(return_value="C" * 42))
     resp = v.get(None, path, acl_class=FullAcl)
     self.assertEqual(resp['Etag'], "0" * 40)
     self.assertEqual(resp['Content-Type'], "text/plain")
     self.assertEqual(resp['Last-Modified'], "Wed, 24 Dec 2014 06:00:00 +0000")
     self.assertEqual(resp.content, "C" * 42)
Ejemplo n.º 29
0
 def test_options_root(self):
     path = '/'
     v = DavView(path=path, acl_class=FullAcl)
     v.__dict__['resource'] = MockObject(path)
     resp = v.options(None, path)
     self.assertEqual(sorted(resp.items()), [
         ('Content-Length', '0'),
         ('Content-Type', 'text/xml; charset="utf-8"'),
         ('DAV', '1,2'),
     ])
Ejemplo n.º 30
0
 def test_options_root(self):
     path = '/'
     v = DavView(path=path, acl_class=FullAcl)
     v.__dict__['resource'] = MockObject(path)
     resp = v.options(None, path)
     self.assertEqual(sorted(resp.items()), [
         ('Content-Length', '0'),
         ('Content-Type', 'text/xml; charset="utf-8"'),
         ('DAV', '1,2'),
     ])
Ejemplo n.º 31
0
 def test_options_collection(self):
     path = '/collection/'
     v = DavView(path=path, _allowed_methods=Mock(return_value=['ALL']), acl_class=FullAcl)
     v.__dict__['resource'] = MockCollection(path)
     resp = v.options(None, path)
     self.assertEqual(sorted(resp.items()), [
         ('Allow', 'ALL'),
         ('Content-Length', '0'),
         ('Content-Type', 'text/xml; charset="utf-8"'),
         ('DAV', '1,2'),
     ])
Ejemplo n.º 32
0
 def test_propfind_listing(self):
     self.top_collection.get_descendants.return_value += [
         self.top_collection
     ]
     request = Mock(META={})
     path = '/collection/'
     v = DavView(base_url='/base/',
                 path=path,
                 request=request,
                 acl_class=FullAcl,
                 xml_pretty_print=True)
     v.__dict__['resource'] = self.top_collection
     resp = v.propfind(request, path, None)
     self.assertEqual(resp.status_code, 207)
     self.assertEqual(
         resp.content,
         etree.tostring(D.multistatus(
             D.response(
                 D.href('/base/collection/sub_object'),
                 D.propstat(
                     D.prop(
                         D.getcontentlength("42"),
                         D.creationdate("1983-12-24T06:00:00Z"),
                         D.getlastmodified(
                             "Wed, 24 Dec 2014 06:00:00 +0000"),
                         D.resourcetype(),
                         D.displayname("sub_object"),
                     ), D.status("HTTP/1.1 200 OK"))),
             D.response(
                 D.href('/base/collection/sub_colection/'),
                 D.propstat(
                     D.prop(
                         D.getcontentlength("0"),
                         D.creationdate("1983-12-24T06:00:00Z"),
                         D.getlastmodified(
                             "Wed, 24 Dec 2014 06:00:00 +0000"),
                         D.resourcetype(D.collection()),
                         D.displayname("sub_colection"),
                     ), D.status("HTTP/1.1 200 OK"))),
             D.response(
                 D.href('/base/collection/'),
                 D.propstat(
                     D.prop(
                         D.getcontentlength("0"),
                         D.creationdate("1983-12-24T06:00:00Z"),
                         D.getlastmodified(
                             "Wed, 24 Dec 2014 06:00:00 +0000"),
                         D.resourcetype(D.collection()),
                         D.displayname("collection"),
                     ), D.status("HTTP/1.1 200 OK"))),
         ),
                        pretty_print=True,
                        xml_declaration=True,
                        encoding='utf-8'))
Ejemplo n.º 33
0
 def test_options_collection(self):
     path = '/collection/'
     v = DavView(path=path, _allowed_methods=Mock(return_value=['ALL']), acl_class=FullAcl)
     v.__dict__['resource'] = MockCollection(path)
     resp = v.options(None, path)
     self.assertEqual(sorted(resp.items()), [
         ('Allow', 'ALL'),
         ('Content-Length', '0'),
         ('Content-Type', 'text/xml; charset="utf-8"'),
         ('DAV', '1,2'),
     ])
Ejemplo n.º 34
0
 def test_options_obj(self):
     path = '/obj'
     v = DavView(path=path, _allowed_methods=Mock(return_value=['ALL']), acl_class=FullAcl)
     v.__dict__['resource'] = MockObject(path)
     resp = v.options(None, path)
     self.assertEqual(sorted(resp.items()), [
         ('Allow', 'ALL'),
         ('Allow-Ranges', 'bytes'),
         ('Content-Length', '0'),
         ('Content-Type', 'text/html'),
         ('DAV', '1,2'),
     ])
Ejemplo n.º 35
0
 def test_propfind_listing(self):
     self.top_collection.get_descendants.return_value += [self.top_collection]
     request = Mock(META={})
     path = '/collection/'
     v = DavView(base_url='/base/', path=path, request=request, acl_class=FullAcl, xml_pretty_print=True)
     v.__dict__['resource'] = self.top_collection
     resp = v.propfind(request, path, None)
     self.assertEqual(resp.status_code, 207)
     self.assertEqual(resp.content,
         etree.tostring(D.multistatus(
             D.response(
                 D.href('/base/collection/sub_object'),
                 D.propstat(
                     D.prop(
                         D.getcontentlength("42"),
                         D.creationdate("1983-12-24T06:00:00Z"),
                         D.getlastmodified("Wed, 24 Dec 2014 06:00:00 +0000"),
                         D.resourcetype(),
                         D.displayname("sub_object"),
                     ),
                     D.status("HTTP/1.1 200 OK")
                 )
             ),
             D.response(
                 D.href('/base/collection/sub_colection/'),
                 D.propstat(
                     D.prop(
                         D.getcontentlength("0"),
                         D.creationdate("1983-12-24T06:00:00Z"),
                         D.getlastmodified("Wed, 24 Dec 2014 06:00:00 +0000"),
                         D.resourcetype(D.collection()),
                         D.displayname("sub_colection"),
                     ),
                     D.status("HTTP/1.1 200 OK")
                 )
             ),
             D.response(
                 D.href('/base/collection/'),
                 D.propstat(
                     D.prop(
                         D.getcontentlength("0"),
                         D.creationdate("1983-12-24T06:00:00Z"),
                         D.getlastmodified("Wed, 24 Dec 2014 06:00:00 +0000"),
                         D.resourcetype(D.collection()),
                         D.displayname("collection"),
                     ),
                     D.status("HTTP/1.1 200 OK")
                 )
             ),
         ), pretty_print=True, xml_declaration=True, encoding='utf-8')
     )
Ejemplo n.º 36
0
 def test_copy_new(self):
     src = self.sub_object
     src.copy = Mock(return_value=None)
     dst = self.missing_sub_object
     request = HttpRequest()
     request.META['HTTP_DESTINATION'] = "http://testserver%s" % dst.get_path()
     request.META['SERVER_NAME'] = 'testserver'
     request.META['SERVER_PORT'] = '80'
     v = DavView(base_url='http://testserver', request=request, path=src.get_path(), acl_class=FullAcl, resource_class=Mock(), lock_class=DummyLock)
     v.resource_class = Mock(return_value=dst)
     v.__dict__['resource'] = src
     resp = v.copy(request, src.get_path(), None)
     self.assertEqual(201, resp.status_code)
     self.assertTrue(src.copy.called)
Ejemplo n.º 37
0
 def test_copy_new(self):
     src = self.sub_object
     src.copy = Mock(return_value=None)
     dst = self.missing_sub_object
     request = HttpRequest()
     request.META['HTTP_DESTINATION'] = "http://testserver%s" % dst.get_path()
     request.META['SERVER_NAME'] = 'testserver'
     request.META['SERVER_PORT'] = '80'
     request.META['HTTP_DEPTH'] = 'infinity'
     v = DavView(base_url='http://testserver', request=request, path=src.get_path(), acl_class=FullAcl, resource_class=Mock(), lock_class=DummyLock)
     v.resource_class = Mock(return_value=dst)
     v.__dict__['resource'] = src
     resp = v.copy(request, src.get_path(), None)
     self.assertEqual(201, resp.status_code)
     self.assertTrue(src.copy.called)
Ejemplo n.º 38
0
 def test_move_overwrite(self):
     src = self.sub_object
     src.move = Mock(return_value=None)
     dst = self.blank_collection
     dst.delete = Mock(return_value=None)
     request = HttpRequest()
     request.META['HTTP_DESTINATION'] = "http://testserver%s" % dst.get_escaped_path()
     request.META['SERVER_NAME'] = 'testserver'
     request.META['SERVER_PORT'] = '80'
     v = DavView(base_url='http://testserver', request=request, path=src.get_path(), acl_class=FullAcl, resource_class=Mock(), lock_class=DummyLock)
     v.resource_class = Mock(return_value=dst)
     v.__dict__['resource'] = src
     resp = v.move(request, src.get_path(), None)
     self.assertEqual(204, resp.status_code)
     self.assertTrue(src.move.called)
     self.assertTrue(dst.delete.called)
Ejemplo n.º 39
0
 def test_dispatch(self):
     request = Mock(
         spec=HttpRequest,
         META={
             'PATH_INFO': '/base/path/',
             'CONTENT_TYPE': 'text/xml',
             'CONTENT_LENGTH': '44'
         },
         method='GET',
         read=Mock(side_effect=[u"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n", u"<foo/>", u""])
     )
     v = DavView(request=request, get=Mock(return_value=HttpResponse()), _allowed_methods=Mock(return_value=['GET']))
     v.dispatch(request, '/path/')
     self.assertIsNotNone(v.xbody)
     self.assertEqual(v.base_url, '/base')
     self.assertEqual(v.path, '/path/')
Ejemplo n.º 40
0
 def test_move_overwrite(self):
     src = self.sub_object
     src.move = Mock(return_value=None)
     dst = self.blank_collection
     dst.delete = Mock(return_value=None)
     request = HttpRequest()
     request.META['HTTP_DESTINATION'] = "http://testserver%s" % dst.get_escaped_path()
     request.META['SERVER_NAME'] = 'testserver'
     request.META['SERVER_PORT'] = '80'
     v = DavView(base_url='http://testserver', request=request, path=src.get_path(), acl_class=FullAcl, resource_class=Mock(), lock_class=DummyLock)
     v.resource_class = Mock(return_value=dst)
     v.__dict__['resource'] = src
     resp = v.move(request, src.get_path(), None)
     self.assertEqual(204, resp.status_code)
     self.assertTrue(src.move.called)
     self.assertTrue(dst.delete.called)
Ejemplo n.º 41
0
 def test_dispatch(self):
     request = Mock(
         spec=HttpRequest,
         META={
             'PATH_INFO': '/base/path/',
             'CONTENT_TYPE': 'text/xml',
             'CONTENT_LENGTH': '44'
         },
         method='GET',
         read=Mock(side_effect=[u"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n", u"<foo/>", u""])
     )
     v = DavView(request=request, get=Mock(return_value=HttpResponse()), _allowed_methods=Mock(return_value=['GET']))
     v.dispatch(request, '/path/')
     self.assertIsNotNone(v.xbody)
     self.assertEqual(v.base_url, '/base')
     self.assertEqual(v.path, '/path/')
Ejemplo n.º 42
0
 def test_allowed_missing_parent(self):
     v = DavView()
     parent = MissingMockCollection('/path/to/obj')
     v.__dict__['resource'] = MissingMockCollection('/path/', get_parent=Mock(return_value=parent))
     self.assertEqual(v._allowed_methods(), [])
Ejemplo n.º 43
0
 def test_allowed_object(self):
     v = DavView()
     v.__dict__['resource'] = self.sub_object
     self.assertEqual(v._allowed_methods(), ['OPTIONS', 'HEAD', 'GET', 'DELETE', 'PROPFIND', 'PROPPATCH', 'COPY', 'MOVE', 'LOCK', 'UNLOCK', 'PUT'])
Ejemplo n.º 44
0
from djangodav.views import DavView

from django.conf.urls import patterns

from samples.fs.resources import TempDirWebDavResource
from samples.db.resources import MyDBDavResource
from samples.auth.views.rest import RestAuthDavView
from samples.auth.views.tasty import TastyAuthDavView

urlpatterns = patterns(
    '',
    # Mirroring tmp folder
    (r'^fs(?P<path>.*)$',
     DavView.as_view(resource_class=TempDirWebDavResource,
                     lock_class=DummyLock,
                     acl_class=FullAcl)),
    # Db file keeper
    (r'^db(?P<path>.*)$',
     DavView.as_view(resource_class=MyDBDavResource,
                     lock_class=DummyLock,
                     acl_class=FullAcl)),

    # REST framework auth
    (r'^auth/rest(?P<path>.*)$',
     RestAuthDavView.as_view(resource_class=TempDirWebDavResource,
                             lock_class=DummyLock,
                             acl_class=FullAcl)),
    # Tastypie auth
    (r'^auth/tasty(?P<path>.*)$',
     TastyAuthDavView.as_view(resource_class=TempDirWebDavResource,
Ejemplo n.º 45
0
 def test_allowed_missing_parent(self):
     v = DavView()
     parent = MissingMockCollection('/path/to/obj')
     v.__dict__['resource'] = MissingMockCollection(
         '/path/', get_parent=Mock(return_value=parent))
     self.assertEqual(v._allowed_methods(), [])
Ejemplo n.º 46
0
 def test_allowed_missing_collection(self):
     v = DavView()
     parent = MockCollection('/path/to/obj')
     v.__dict__['resource'] = MissingMockCollection('/path/', get_parent=Mock(return_value=parent))
     self.assertListEqual(v._allowed_methods(), ['HEAD', 'OPTIONS', 'PROPFIND', 'LOCK', 'UNLOCK', 'GET', 'PUT', 'MKCOL'])
Ejemplo n.º 47
0
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with DjangoDav.  If not, see <http://www.gnu.org/licenses/>.
from djangodav.acls import FullAcl
from djangodav.locks import DummyLock

from djangodav.views import DavView

from django.conf.urls import patterns

from samples.fs.resources import TempDirWebDavResource
from samples.db.resources import MyDBDavResource
from samples.auth.views.rest import RestAuthDavView
from samples.auth.views.tasty import TastyAuthDavView


urlpatterns = patterns('',
    # Mirroring tmp folder
    (r'^fs(?P<path>.*)$', DavView.as_view(resource_class=TempDirWebDavResource, lock_class=DummyLock, acl_class=FullAcl)),
    # Db file keeper
    (r'^db(?P<path>.*)$', DavView.as_view(resource_class=MyDBDavResource, lock_class=DummyLock, acl_class=FullAcl)),

    # REST framework auth
    (r'^auth/rest(?P<path>.*)$', RestAuthDavView.as_view(resource_class=TempDirWebDavResource, lock_class=DummyLock, acl_class=FullAcl)),
    # Tastypie auth
    (r'^auth/tasty(?P<path>.*)$', TastyAuthDavView.as_view(resource_class=TempDirWebDavResource, lock_class=DummyLock, acl_class=FullAcl)),
)
Ejemplo n.º 48
0
 def test_allowed_collection(self):
     v = DavView()
     v.__dict__['resource'] = self.top_collection
     self.assertListEqual(v._allowed_methods(), ['HEAD', 'OPTIONS', 'PROPFIND', 'LOCK', 'UNLOCK', 'GET', 'DELETE', 'PROPPATCH', 'COPY', 'MOVE'])