3from unit.http import TestHTTP 4 5 6def args_handler(conf_func): 7 def args_wrapper(self, *args): 8 argcount = conf_func.__code__.co_argcount 9 url_default = '/config' 10 conf = None 11 12 if argcount == 2: 13 url = args[0] if len(args) == 1 else url_default 14 15 elif argcount == 3: 16 conf = args[0] 17 18 if isinstance(conf, dict) or isinstance(conf, list): 19 conf = json.dumps(conf) 20 21 url = args[1] if len(args) == 2 else url_default 22 23 url = url if url.startswith('/') else url_default + '/' + url 24 arguments = (self, url) if conf is None else (self, conf, url) 25 26 return json.loads(conf_func(*arguments)) 27 28 return args_wrapper 29 30 31class TestControl(TestHTTP): 32 33 # TODO socket reuse 34 # TODO http client 35 36 @args_handler 37 def conf(self, conf, url): 38 return self.put(**self._get_args(url, conf))['body'] 39 40 @args_handler 41 def conf_get(self, url): 42 return self.get(**self._get_args(url))['body'] 43 44 @args_handler 45 def conf_delete(self, url): 46 return self.delete(**self._get_args(url))['body'] 47 48 @args_handler 49 def conf_post(self, conf, url): 50 return self.post(**self._get_args(url, conf))['body'] 51 52 def _get_args(self, url, conf=None): 53 args = { 54 'url': url, 55 'sock_type': 'unix',
| 4from unit.http import TestHTTP 5 6 7def args_handler(conf_func): 8 def args_wrapper(self, *args): 9 argcount = conf_func.__code__.co_argcount 10 url_default = '/config' 11 conf = None 12 13 if argcount == 2: 14 url = args[0] if len(args) == 1 else url_default 15 16 elif argcount == 3: 17 conf = args[0] 18 19 if isinstance(conf, dict) or isinstance(conf, list): 20 conf = json.dumps(conf) 21 22 url = args[1] if len(args) == 2 else url_default 23 24 url = url if url.startswith('/') else url_default + '/' + url 25 arguments = (self, url) if conf is None else (self, conf, url) 26 27 return json.loads(conf_func(*arguments)) 28 29 return args_wrapper 30 31 32class TestControl(TestHTTP): 33 34 # TODO socket reuse 35 # TODO http client 36 37 @args_handler 38 def conf(self, conf, url): 39 return self.put(**self._get_args(url, conf))['body'] 40 41 @args_handler 42 def conf_get(self, url): 43 return self.get(**self._get_args(url))['body'] 44 45 @args_handler 46 def conf_delete(self, url): 47 return self.delete(**self._get_args(url))['body'] 48 49 @args_handler 50 def conf_post(self, conf, url): 51 return self.post(**self._get_args(url, conf))['body'] 52 53 def _get_args(self, url, conf=None): 54 args = { 55 'url': url, 56 'sock_type': 'unix',
|