def test_http_code_description(self): test_cases = { None: None, '': None, '123': None, '12.3': None, '-123': None, '-12.3': None, '300': 'Multiple Choices', 0: None, 123: None, 12.3: None, -123: None, -12.3: None, 300: 'Multiple Choices', 451: '(Redirect, Unavailable For Legal Reasons)', 497: 'HTTP to HTTPS', 499: '(Client Closed Request, Token required)', 600: None, } unicode_test_cases = { '': None, '123': None, '12.3': None, '-123': None, '-12.3': None, '300': 'Multiple Choices', } for test in test_cases, unicode_test_cases: for (http_code, result) in six.iteritems(test): self.assertEqual(http_code_description(http_code), result)
def test_http_code_description(self): test_cases = { None: None, '': None, '123': None, '12.3': None, '-123': None, '-12.3': None, '300': None, 0: None, 123: None, 12.3: None, -123: None, -12.3: None, 300: 'Multiple Choices', 451: '(Redirect, Unavailable For Legal Reasons)', 497: 'HTTP to HTTPS', 499: '(Client Closed Request, Token required)', 600: None, } unicode_test_cases = { u'': None, u'123': None, u'12.3': None, u'-123': None, u'-12.3': None, u'300': None, } for test in test_cases, unicode_test_cases: for (http_code, result) in test.iteritems(): self.assertEqual(http_code_description(http_code), result)
def _request(self, method='get', params=None, data=None, files=None, cookies=None): if time.time() > self.last_time + 1800 or not self.auth: self.last_time = time.time() self._get_auth() data_str = str(data) logger.log('{name}: Requested a {method} connection to {url} with Params: {params} Data: {data}{etc}'.format (name=self.name, method=method.upper(), url=self.url, params=params, data=data_str[0:99], etc='...' if len(data_str) > 99 else ''), logger.DEBUG) if not self.auth: logger.log('{name}: Authentication Failed'.format(name=self.name), logger.WARNING) return False try: self.response = self.session.__getattribute__(method)(self.url, params=params, data=data, files=files, cookies=cookies, timeout=120, verify=False) except requests.exceptions.ConnectionError as msg: logger.log('{name}: Unable to connect {error}'.format (name=self.name, error=msg), logger.ERROR) return False except (requests.exceptions.MissingSchema, requests.exceptions.InvalidURL): logger.log('{name}: Invalid Host'.format(name=self.name), logger.ERROR) return False except requests.exceptions.HTTPError as msg: logger.log('{name}: Invalid HTTP Request {error}'.format(name=self.name, error=msg), logger.ERROR) return False except requests.exceptions.Timeout as msg: logger.log('{name}: Connection Timeout {error}'.format(name=self.name, error=msg), logger.WARNING) return False except Exception as msg: logger.log('{name}: Unknown exception raised when send torrent to {name} : {error}'.format (name=self.name, error=msg), logger.ERROR) return False if self.response.status_code == 401: logger.log('{name}: Invalid Username or Password, check your config'.format (name=self.name), logger.ERROR) return False code_description = http_code_description(self.response.status_code) if code_description is not None: logger.log('{name}: {code}'.format(name=self.name, code=code_description), logger.INFO) return False logger.log('{name}: Response to {method} request is {response}'.format (name=self.name, method=method.upper(), response=self.response.text), logger.DEBUG) return True
def _request(self, method='get', params=None, data=None, files=None, cookies=None): # pylint: disable=too-many-arguments, too-many-return-statements if time.time() > self.last_time + 1800 or not self.auth: self.last_time = time.time() self._get_auth() logger.log( self.name + u': Requested a ' + method.upper() + ' connection to url ' + self.url + ' with Params: ' + str(params) + ' Data: ' + str(data)[0:99] + ('...' if len(str(data)) > 200 else ''), logger.DEBUG) if not self.auth: logger.log(self.name + u': Authentication Failed', logger.WARNING) return False try: self.response = self.session.__getattribute__(method)(self.url, params=params, data=data, files=files, cookies=cookies, timeout=120, verify=False) except requests.exceptions.ConnectionError as e: logger.log(self.name + u': Unable to connect ' + str(e), logger.ERROR) return False except (requests.exceptions.MissingSchema, requests.exceptions.InvalidURL): logger.log(self.name + u': Invalid Host', logger.ERROR) return False except requests.exceptions.HTTPError as e: logger.log(self.name + u': Invalid HTTP Request ' + str(e), logger.ERROR) return False except requests.exceptions.Timeout as e: logger.log(self.name + u': Connection Timeout ' + str(e), logger.WARNING) return False except Exception as e: logger.log(self.name + u': Unknown exception raised when send torrent to ' + self.name + ': ' + str(e), logger.ERROR) return False if self.response.status_code == 401: logger.log(self.name + u': Invalid Username or Password, check your config', logger.ERROR) return False code_description = http_code_description(self.response.status_code) if code_description is not None: logger.log(self.name + u': ' + code_description, logger.INFO) return False logger.log(self.name + u': Response to ' + method.upper() + ' request is ' + self.response.text, logger.DEBUG) return True
def _request(self, method='get', params=None, data=None, files=None, cookies=None): if time.time() > self.last_time + 1800 or not self.auth: self.last_time = time.time() self._get_auth() logger.log( self.name + u': Requested a ' + method.upper() + ' connection to url ' + self.url + ' with Params: ' + str(params) + ' Data: ' + str(data)[0:99] + ('...' if len(str(data)) > 200 else ''), logger.DEBUG) if not self.auth: logger.log(self.name + u': Authentication Failed', logger.WARNING) return False try: self.response = self.session.__getattribute__(method)(self.url, params=params, data=data, files=files, cookies=cookies, timeout=120, verify=False) except requests.exceptions.ConnectionError as e: logger.log(self.name + u': Unable to connect ' + str(e), logger.ERROR) return False except (requests.exceptions.MissingSchema, requests.exceptions.InvalidURL): logger.log(self.name + u': Invalid Host', logger.ERROR) return False except requests.exceptions.HTTPError as e: logger.log(self.name + u': Invalid HTTP Request ' + str(e), logger.ERROR) return False except requests.exceptions.Timeout as e: logger.log(self.name + u': Connection Timeout ' + str(e), logger.WARNING) return False except Exception as e: logger.log(self.name + u': Unknown exception raised when send torrent to ' + self.name + ': ' + str(e), logger.ERROR) return False if self.response.status_code == 401: logger.log(self.name + u': Invalid Username or Password, check your config', logger.ERROR) return False code_description = http_code_description(self.response.status_code) if code_description is not None: logger.log(self.name + u': ' + code_description, logger.INFO) return False logger.log(self.name + u': Response to ' + method.upper() + ' request is ' + self.response.text, logger.DEBUG) return True
return False except Exception, e: logger.log( self.name + u': Unknown exception raised when send torrent to ' + self.name + ': ' + str(e), logger.ERROR) return False if self.response.status_code == 401: logger.log( self.name + u': Invalid Username or Password, check your config', logger.ERROR) return False code_description = http_code_description(self.response.status_code) if code_description is not None: logger.log(self.name + u': ' + code_description, logger.DEBUG) return False logger.log( self.name + u': Response to ' + method.upper() + ' request is ' + self.response.text, logger.DEBUG) return True def _get_auth(self): """ This should be overridden and should return the auth_id needed for the client """
except requests.exceptions.HTTPError, e: logger.log(self.name + u': Invalid HTTP Request ' + str(e), logger.ERROR) return False except requests.exceptions.Timeout, e: logger.log(self.name + u': Connection Timeout ' + str(e), logger.WARNING) return False except Exception, e: logger.log(self.name + u': Unknown exception raised when send torrent to ' + self.name + ': ' + str(e), logger.ERROR) return False if self.response.status_code == 401: logger.log(self.name + u': Invalid Username or Password, check your config', logger.ERROR) return False code_description = http_code_description(self.response.status_code) if code_description is not None: logger.log(self.name + u': ' + code_description, logger.DEBUG) return False logger.log(self.name + u': Response to ' + method.upper() + ' request is ' + self.response.text, logger.DEBUG) return True def _get_auth(self): """ This should be overridden and should return the auth_id needed for the client """ return None