]> git.parisson.com Git - tools.git/commitdiff
Rename, clean
authoryomguy <yomguy@457c0346-1240-4656-8a5a-9edca8063506>
Wed, 23 Jan 2008 02:28:34 +0000 (02:28 +0000)
committeryomguy <yomguy@457c0346-1240-4656-8a5a-9edca8063506>
Wed, 23 Jan 2008 02:28:34 +0000 (02:28 +0000)
git-svn-id: http://svn.parisson.org/svn/tools/trunk@37 457c0346-1240-4656-8a5a-9edca8063506

python-dav/dav_upload.py [new file with mode: 0644]
python-dav/davtest.py

diff --git a/python-dav/dav_upload.py b/python-dav/dav_upload.py
new file mode 100644 (file)
index 0000000..9989909
--- /dev/null
@@ -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)
index f3acd93ffb96268eb25127a841033a392f9a0017..8a76b97b338f99d43c95eb9158431232fdf82f06 100644 (file)
@@ -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 = '<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')