From: yomguy Date: Wed, 23 Jan 2008 02:28:34 +0000 (+0000) Subject: Rename, clean X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=ce4b1bd2ad8777b61069ee41c242281648242b5d;p=tools.git Rename, clean git-svn-id: http://svn.parisson.org/svn/tools/trunk@37 457c0346-1240-4656-8a5a-9edca8063506 --- diff --git a/python-dav/dav_upload.py b/python-dav/dav_upload.py new file mode 100644 index 0000000..9989909 --- /dev/null +++ b/python-dav/dav_upload.py @@ -0,0 +1,128 @@ +# +# 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) diff --git a/python-dav/davtest.py b/python-dav/davtest.py index f3acd93..8a76b97 100644 --- a/python-dav/davtest.py +++ b/python-dav/davtest.py @@ -10,10 +10,15 @@ import StringIO 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) @@ -38,7 +43,7 @@ class mydav(davlib.DAV): 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() @@ -164,18 +169,21 @@ def lock_test(): r = _dav().lock('/dav/locktest/locknull') def test(): - f = open('hello.txt','r') - text = '
'.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')