Change tests so that all sites that share a common username are executed in parallel. Just the little bit of extra processing halves the time taken for the tests (~15s verus ~34s). This will only get worse as the test coverage improves...

pull/162/head
Christopher K. Hoadley 6 years ago
parent 5eb06e3502
commit dea8c29351

@ -128,6 +128,10 @@ class SherlockBaseTest(unittest.TestCase):
existence state.
"""
#Dictionary of sites that should be tested for having a username.
#This will allow us to test sites with a common username in parallel.
sites_by_username = {}
for site, site_data in self.site_data_all.items():
if (
(site_data["errorType"] != detect_type) or
@ -143,12 +147,22 @@ class SherlockBaseTest(unittest.TestCase):
# Figure out which type of user
if exist_check:
username_list = [site_data.get("username_claimed")]
username = site_data.get("username_claimed")
else:
username = site_data.get("username_unclaimed")
# Add this site to the list of sites corresponding to this
# username.
if username in sites_by_username:
sites_by_username[username].append(site)
else:
username_list = [site_data.get("username_unclaimed")]
self.username_check(username_list,
[site],
exist_check=exist_check
)
sites_by_username[username] = [site]
# Check on the username availability against all of the sites.
for username, site_list in sites_by_username.items():
self.username_check([username],
site_list,
exist_check=exist_check
)
return

Loading…
Cancel
Save