コード例 #1
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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'])
コード例 #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')
コード例 #3
0
ファイル: tests.py プロジェクト: greybyte/djangodav
 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)
コード例 #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'
     ])
コード例 #5
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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')
     )
コード例 #6
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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'])
コード例 #7
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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')
     )
コード例 #8
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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)
コード例 #9
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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)
コード例 #10
0
ファイル: tests.py プロジェクト: petrklus/djangodav
 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'])
コード例 #11
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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)
コード例 #12
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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)
コード例 #13
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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)
コード例 #14
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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'])
コード例 #15
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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)
コード例 #16
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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)
コード例 #17
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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'])
コード例 #18
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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)
コード例 #19
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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)
コード例 #20
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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'])
コード例 #21
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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)
コード例 #22
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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)
コード例 #23
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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)
コード例 #24
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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)
コード例 #25
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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)
コード例 #26
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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)
コード例 #27
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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'])
コード例 #28
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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)
コード例 #29
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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'),
     ])
コード例 #30
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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'),
     ])
コード例 #31
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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'),
     ])
コード例 #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'))
コード例 #33
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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'),
     ])
コード例 #34
0
ファイル: tests.py プロジェクト: greybyte/djangodav
 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'),
     ])
コード例 #35
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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')
     )
コード例 #36
0
ファイル: tests.py プロジェクト: greybyte/djangodav
 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)
コード例 #37
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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)
コード例 #38
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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)
コード例 #39
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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/')
コード例 #40
0
ファイル: tests.py プロジェクト: pellaeon/djangodav
 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)
コード例 #41
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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/')
コード例 #42
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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(), [])
コード例 #43
0
ファイル: tests.py プロジェクト: greybyte/djangodav
 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'])
コード例 #44
0
ファイル: urls.py プロジェクト: pellaeon/djangodav
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,
コード例 #45
0
ファイル: tests.py プロジェクト: petrklus/djangodav
 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(), [])
コード例 #46
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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'])
コード例 #47
0
ファイル: urls.py プロジェクト: PKUbuntu/djangodav
# 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)),
)
コード例 #48
0
ファイル: tests.py プロジェクト: mangorilla/djangodav
 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'])