--- /dev/null
+#
+# DAV testing hack
+#
+
+import sys
+import davlib
+import string
+import gdbm
+import StringIO
+import base64
+from xml.utils import qp_xml
+
+HOST = 'parisson.com'
+#HOST = 'localhost'
+PORT = '1976'
+BASE = 'http://%s:%s' % (HOST, PORT)
+USERNAME = 'zope'
+DESTDIR = 'parisson.com_2/Members/yomguy/dav'
+#DESTDIR = 'dav'
+FILE = 'vc07_lop_nobd_100bpm.wav.mp3'
+#FILE = '04_Idjut_Boys_-_Rebirth_Evil_Vibrations.mp3'
+PASSWORD = sys.argv[1]
+
+
+
+def getprop(dirname, fname, ns, propname):
+ g = gdbm.open(dirname + '/.DAV/' + fname, 'r')
+ return g[str(ns) + ':' + propname + '\0']
+
+def setprop(dirname, fname, ns, propname, value):
+ g = gdbm.open(dirname + '/.DAV/' + fname, 'c')
+ g[str(ns) + ':' + propname + '\0'] = value + '\0'
+
+def dump(dirname, fname):
+ g = gdbm.open(dirname + '/.DAV/' + fname, 'r')
+ for key in g.keys():
+ print `key`, '=', `g[key]`
+
+class mydav(davlib.DAV):
+ def _request(self, method, url, *rest, **kw):
+ print 'REQUEST:', method, url
+ response = apply(davlib.DAV._request, (self, method, url) + rest, kw)
+ print "STATUS:", response.status
+ print "REASON:", response.reason
+ for hdr in response.msg.headers:
+ print string.strip (hdr)
+ print '-'*70
+ if response.status == 207:
+ #print response.doc.dump()
+ #print response.doc.toxml()
+ response.parse_multistatus()
+ davlib.qp_xml.dump(sys.stdout, response.root)
+ elif method == 'LOCK' and response.status == 200:
+ response.parse_lock_response()
+ davlib.qp_xml.dump(sys.stdout, response.root)
+ else:
+ print response.read()
+ print '-'*70
+ return response
+ def get_lock(self, url, owner='', timeout=None, depth=None):
+ return self.lock(url, owner, timeout, depth).locktoken
+
+
+def _dav():
+ return mydav(HOST, PORT)
+
+def getvalue(url, ns, prop):
+ response = _dav().getprops(url, prop, ns=ns)
+ resp = response.msr.responses[0]
+ if resp.status and resp.status[0] != 200:
+ raise 'error retrieving property', response.status
+ propstat = resp.propstat[0]
+ if propstat.status and propstat.status[0] != 200:
+ raise 'error retrieving property', propstat.status
+ return propstat.prop[(ns, prop)]
+
+ #s = StringIO.StringIO()
+ #davlib.qp_xml.dump(s, propstat.prop[(ns, prop)])
+ #return s.getvalue()
+
+
+def del_test_data():
+ _dav().delete('/dav/testdata')
+
+def gettest():
+ _dav()._request('GET', '/dav/test.html')
+
+def if_test():
+ _dav().put('/dav/foo.html', 'foo.html contents\n')
+ etag = qp_xml.textof(getvalue('/dav/foo.html', 'DAV:', 'getetag'))
+ print 'ETAG:', etag
+ _dav()._request('DELETE', '/dav/foo.html', extra_hdrs={
+ 'If' : '(["abc"])',
+ })
+ _dav()._request('DELETE', '/dav/foo.html', extra_hdrs={
+ 'If' : '([' + etag + '])',
+ })
+
+def lock_test():
+ _dav().delete('/dav/locktest')
+ _dav().mkcol('/dav/locktest')
+ _dav().mkcol('/dav/locktest/sub')
+
+ # test a locknull resource
+ r = _dav().lock('/dav/locktest/locknull')
+
+def upload(base, dest_dir, file, username, password, encodeduserpass):
+ _dav().setauth(username, password)
+ auth_dict = {"Authorization":"Basic %s" % encodeduserpass}
+ auth = auth_dict['Authorization']
+ print auth
+
+ f = open(file,'r')
+ #_dav().mkcol(BASE+'/'+DESTDIR,auth)
+ _dav().put(base+'/'+dest_dir+'/'+file,f.read(),None,None,auth_dict)
+
+
+
+if __name__ == '__main__':
+ if HOST == 'FILL THIS IN':
+ import sys
+ sys.stdout = sys.stderr
+ print 'ERROR: you must edit davtest.py to set the HOST/PORT values'
+ print ' at the top of the script.'
+ sys.exit(1)
+
+ encodedUSERPASS = base64.encodestring(USERNAME+":"+PASSWORD)
+ upload(BASE, DESTDIR, FILE, USERNAME, PASSWORD, encodedUSERPASS)
import base64
from xml.utils import qp_xml
-HOST = 'localhost'
-PORT = '1980'
+HOST = 'parisson.com'
+#HOST = 'localhost'
+PORT = '1976'
BASE = 'http://%s:%s' % (HOST, PORT)
USERNAME = 'zope'
+DESTDIR = 'parisson.com_2/Members/yomguy/dav'
+#DESTDIR = 'dav'
+#FILE = 'vc07_lop_nobd_100bpm.wav.mp3'
+FILE = '04_Idjut_Boys_-_Rebirth_Evil_Vibrations.mp3'
PASSWORD = sys.argv[1]
encodedUSERPASS = base64.encodestring(USERNAME+":"+PASSWORD)
print "STATUS:", response.status
print "REASON:", response.reason
for hdr in response.msg.headers:
- print string.strip(hdr)
+ print string.strip (hdr)
print '-'*70
if response.status == 207:
#print response.doc.dump()
r = _dav().lock('/dav/locktest/locknull')
def test():
- f = open('hello.txt','r')
- text = '<br>'.join(f.readlines())
- print text
-
_dav().setauth(USERNAME,PASSWORD)
auth_dict = {"Authorization":"Basic %s" % encodedUSERPASS}
auth = auth_dict['Authorization']
print auth
- _dav().mkcol(BASE+'/test/',auth)
- _dav().put(BASE+'/test/foo.html',text,None,None,auth_dict)
- _dav().get(BASE+'/test/foo.html',auth_dict)
- _dav().getprops(BASE+'/test/foo.html', 'author', 'foober', 'title')
+
+ f = open(FILE,'r')
+ #_dav().mkcol(BASE+'/'+DESTDIR,auth)
+ _dav().put(BASE+'/'+DESTDIR+'/'+FILE,f.read(),None,None,auth_dict)
+
+ #_data = _dav().get(BASE+'/test/'+FILE,auth_dict)
+ #f = open(FILE,'w')
+ #f.write(_data)
+ #f.close()
+
+ #_dav().getprops(BASE+'/test/foo.html', 'author', 'foober', 'title')
#_dav().mkcol(BASE+'/dav/',{"Authorization":"Basic %s" % encodedUSERPASS})
#_dav().put(BASE+'/foo.html','\n OKKKKKKKKKKK \n',{"Authorization":"Basic %s" % encodedUSERPASS})
#_dav().options('/dav/foo.html')