Private GIT

Skip to content
Snippets Groups Projects
Commit 1047faa6 authored by miigotu's avatar miigotu
Browse files

Merge pull request #460 from SickRage/ttn-cert-bypass-sni-test

Rework ssl_sni test to be a little more accurate, less spammy, and no…
parents f7415d7e bdc78a27
Branches
Tags
No related merge requests found
......@@ -42,7 +42,7 @@ class animenzb(NZBProvider):
self.supports_absolute_numbering = True
self.anime_only = True
self.urls = {'base_url': 'http://animenzb.com//'}
self.urls = {'base_url': 'http://animenzb.com/'}
self.url = self.urls['base_url']
self.cache = animenzbCache(self)
......
......@@ -36,34 +36,49 @@ import requests # pylint: disable=import-error
import sickbeard.providers as providers
class SniTests(unittest.TestCase):
"""
Test SNI
def test_generator(_provider):
"""
self_signed_cert_providers = ["Womble's Index", "Libertalia"]
Generate tests for each provider
def test_sni_urls(self):
:param test_strings: to generate tests from
:return: test
"""
Test SNI urls
:return:
def _connectivity_test(self): # pylint: disable=unused-argument
"""
print ''
# Just checking all providers - we should make this error on non-existent urls.
for provider in [provider for provider in providers.makeProviderList() if provider.name not in self.self_signed_cert_providers]:
print 'Checking %s' % provider.name
Generate tests
:param self:
:return: test to run
"""
if not _provider.url:
print '%s has no url set, skipping' % _provider.name
return
try:
requests.head(provider.url, verify=certifi.old_where(), timeout=10)
except requests.exceptions.Timeout:
pass
requests.head(_provider.url, verify=certifi.old_where(), timeout=10)
except requests.exceptions.SSLError as error:
if u'SSL3_GET_SERVER_CERTIFICATE' not in ex(error):
print 'SSLError on %s: %s' % (provider.name, ex(error.message))
raise
if 'certificate verify failed' in str(error):
print 'Cannot verify certificate for %s' % _provider.name
else:
print 'Cannot verify certificate for %s' % provider.name
except Exception: # pylint: disable=broad-except
print 'SSLError on %s: %s' % (_provider.name, ex(error.message))
raise
except requests.exceptions.Timeout:
print 'Provider timed out'
return _connectivity_test
class SniTests(unittest.TestCase):
pass
if __name__ == "__main__":
print("==================")
print("STARTING - Provider Connectivity TESTS and SSL/SNI")
print("==================")
print("######################################################################")
# Just checking all providers - we should make this error on non-existent urls.
for provider in [p for p in providers.makeProviderList()]:
test_name = 'test_%s' % provider.name
test = test_generator(provider)
setattr(SniTests, test_name, test)
SUITE = unittest.TestLoader().loadTestsFromTestCase(SniTests)
unittest.TextTestRunner(verbosity=2).run(SUITE)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment