@@ -70,7 +70,7 @@ def __init__(self, methodName='runTest', options=None):
7070 self .suite_name = self .__class__ .__name__
7171 unittest .TestCase .__init__ (self , methodName = self .test_name )
7272 self ._response = None
73- self .options = options
73+ self ._options = options
7474 self .debug_level = getattr (options , 'debug_level' , 0 )
7575 self ._funkload_init ()
7676 self ._dump_dir = getattr (options , 'dump_dir' , None )
@@ -226,11 +226,11 @@ def _connect(self, url, params, ok_codes, rtype, description, redirect=False):
226226 self .total_time += t_delta
227227 if redirect :
228228 self .total_redirects += 1
229- elif rtype in ( 'post' , 'get' , 'put' , 'delete' ) :
229+ elif rtype != 'link' :
230230 self .total_pages += 1
231- elif rtype == 'link' :
231+ else :
232232 self .total_links += 1
233-
233+
234234 if rtype in ('put' ,'post' , 'get' , 'delete' ):
235235 # this is a valid referer for the next request
236236 self .setHeader ('Referer' , url )
@@ -289,10 +289,6 @@ def _browse(self, url_in, params_in=None,
289289 if not self .in_bench_mode :
290290 self .logd ('GET: %s\n \t Page %i: %s ...' % (url , self .steps ,
291291 description or '' ))
292- elif method == 'delete' :
293- if not self .in_bench_mode :
294- self .logd ('DELETE:%s\n \t Page %i: %s ...' % (url , self .steps ,
295- description or '' ))
296292 else :
297293 url = url_in
298294 if not self .in_bench_mode :
@@ -372,7 +368,7 @@ def _browse(self, url_in, params_in=None,
372368 text = ('End of loop: %d pages rendered in %.3fs, '
373369 'avg of %.3fs per page, '
374370 '%.3f SPPS without concurrency.' % (count , t_delta ,
375- t_delta / count ,
371+ t_delta / count ,
376372 count / t_delta ))
377373 self .logi (text )
378374 trace (text + '\n ' )
@@ -394,23 +390,48 @@ def get(self, url, params=None, description=None, ok_codes=None):
394390 response = self ._browse (url , params , description , ok_codes ,
395391 method = "get" )
396392 return response
397-
398- def put (self , url , params = None , description = None , ok_codes = None ):
399- """PUT method on url with params."""
393+
394+ def method (self , method , url , params = None , description = None ,
395+ ok_codes = None ):
396+ """Generic method request can be used to submit MOVE, MKCOL or
397+ whatever method name request."""
400398 self .steps += 1
401399 self .page_responses = 0
402400 response = self ._browse (url , params , description , ok_codes ,
403- method = "put" )
401+ method = method )
404402 return response
405-
403+
404+ def put (self , url , params = None , description = None , ok_codes = None ):
405+ """PUT method."""
406+ return self .method ('put' , url , params , description , ok_codes )
407+
406408 def delete (self , url , description = None , ok_codes = None ):
407409 """DELETE method on url."""
408- self .steps += 1
409- self .page_responses = 0
410- response = self ._browse (url , None , description , ok_codes ,
411- method = "delete" )
412- return response
413-
410+ return self .method ('delete' , url , None , description , ok_codes )
411+
412+ def head (self , url , description = None , ok_codes = None ):
413+ """HEAD method on url adding params."""
414+ return self .method ('head' , url , None , description , ok_codes )
415+
416+ def options (self , url , description = None , ok_codes = None ):
417+ """OPTIONS method on url."""
418+ return self .method ('options' , url , None , description , ok_codes )
419+
420+ def propfind (self , url , params = None , depth = None , description = None ,
421+ ok_codes = None ):
422+ """DAV PROPFIND method."""
423+ if ok_codes is None :
424+ codes = [207 , ]
425+ else :
426+ codes = ok_codes
427+ if depth is not None :
428+ self .setHeader ('depth' , str (depth ))
429+ ret = self .method ('PROPFIND' , url , params = params ,
430+ description = description , ok_codes = codes )
431+ if depth is not None :
432+ self .delHeader ('depth' )
433+ return ret
434+
414435 def exists (self , url , params = None , description = "Checking existence" ):
415436 """Try a GET on URL return True if the page exists or False."""
416437 resp = self .get (url , params , description = description ,
@@ -634,7 +655,7 @@ def conf_get(self, section, key, default=_marker, quiet=False):
634655 """Return an entry from the options or configuration file."""
635656 # check for a command line options
636657 opt_key = '%s_%s' % (section , key )
637- opt_val = getattr (self .options , opt_key , None )
658+ opt_val = getattr (self ._options , opt_key , None )
638659 if opt_val :
639660 #print('[%s] %s = %s from options.' % (section, key, opt_val))
640661 return opt_val
0 commit comments