def get_file(self, file_name): client = WebDAVClient("127.0.0.1", 9997) client.timeout = 1 try: response = client.get('/%s'%file_name) except socket.timeout, err: pass
def connect(self, ): urlparsed = requests.utils.urlparse(self.url) self.wc = WebDAVClient(host=urlparsed.netloc, protocol=urlparsed.scheme) self.wc.setbasicauth(self.login.encode('utf-8'), self.passwd.encode('utf-8')) time_delta = None local_time = datetime.datetime.utcnow() response = self.wc.options('/').headers.get('date') if response is None: response = self.wc.options('/').headers.get('Date') remote_datetime = \ rfc822.parsedate(response) self.timedelta = time.mktime(local_time.utctimetuple()) \ - time.mktime(remote_datetime) self._check_notes_folder() return time_delta
def test04_get(self): client = WebDAVClient("127.0.0.1", 8080) response = client.get('/foo') self.assertEqual(response.statusline, 'HTTP/1.1 200 OK') response = client.get(FILE_PATH) self.assertEqual(response.statusline, 'HTTP/1.1 200 OK') self.assertEqual(TestIdepositbox.CHECKSUM, hashlib.sha1(response.content).hexdigest())
def test01_create_dir(self): print '** connecting to webdav server' client = WebDAVClient("127.0.0.1", 8080) print '** connected to webdav server' response = client.mkcol("/foo") print '** mkcol response = %s'%response self.assertEqual(response.statusline, 'HTTP/1.1 201 Created') with self.assertRaises(HTTPUserError): response = client.mkcol("/foo2/test1/test2") print '** /foo is created...'
def test05_delete(self): client = WebDAVClient("127.0.0.1", 8080) response = client.delete(FILE_PATH) self.assertEqual(response.statusline, 'HTTP/1.1 204 No Content') with self.assertRaises(HTTPUserError): response = client.delete(FILE_PATH) response = client.delete('/foo/') self.assertEqual(response.statusline, 'HTTP/1.1 204 No Content') with self.assertRaises(HTTPUserError): client.propfind("/foo")
def test03_put(self): print '** creating test file at %s'%TEST_FILE fb = open(TEST_FILE, 'wb') data = ''.join(random.choice(string.letters) for i in xrange(1024)) data *= 5*1024 fb.write(data) fb.close() print '** file is created!' TestIdepositbox.CHECKSUM = hashlib.sha1(data).hexdigest() client = WebDAVClient("127.0.0.1", 8080) print '** PUT file content to 127.0.0.1:8080!' with open(TEST_FILE) as fd: response = client.put(FILE_PATH, fd, "text/plain") self.assertEqual(response.statusline, 'HTTP/1.1 201 Created') response = client.propfind("/foo", depth=1) self.assertTrue('displayname>test_с_русскими_буквами.out<' in response.content) print '** waiting while file is synchronized!' wait_oper_status(TestIdepositbox.CLIENT.get_nibbler().inprocess_operations, FILE_PATH, Transaction.TS_FINISHED) print '** file is synchronized!'
return True else: return False else: return False if __name__ == "__main__": random.seed(time.time()) good_put = 0 error_put = 0 good_get = 0 error_get = 0 total_size = 0 for c in range(1, 10): client = WebDAVClient("192.168.56.103", 6601) for r in range(1, 10): filename = "/tmp/" + "metis_web_dav_test_" + str(r) size = random.randint(1024, 100000) (fileobject, crc) = gen_file(filename, size) uri = "/1/2/" + str(r) + ".jpg" res = upload_file(client, fileobject, uri) if res: good_put += 1 else: error_put += 1 res = download_file(client, uri, crc) if res: good_get += 1 else: error_get += 1
def test02_propfind(self): client = WebDAVClient("127.0.0.1", 8080) response = client.propfind("/foo") self.assertEqual(response.statusline, 'HTTP/1.1 207 Multistatus') self.assertTrue('displayname>foo<' in response.content)
def _get_client(self): client = WebDAVClient(self.url, self.port) client.setbasicauth(self.user, self.pwd) client.timeout = 60 #set reasonable timeout return client
def send_file(self, file_name, file_len): client = WebDAVClient("127.0.0.1", 9997) response = client.put('/%s'%file_name, RANDOM(file_len), "text/plain") self.assertEqual(response.statusline, 'HTTP/1.1 201 Created')