diff --git a/data.json b/data.json index 7081f74b..d650ee2d 100644 --- a/data.json +++ b/data.json @@ -91,7 +91,9 @@ "errorType": "status_code", "rank": 839, "url": "https://bitbucket.org/{}", - "urlMain": "https://bitbucket.org/" + "urlMain": "https://bitbucket.org/", + "username_claimed": "blue", + "username_unclaimed": "noonewouldeverusethis7" }, "BlackPlanet": { "errorMsg": "My Hits", @@ -807,20 +809,25 @@ "errorType": "status_code", "rank": 3373, "url": "https://vsco.co/{}", - "urlMain": "https://vsco.co/" + "urlMain": "https://vsco.co/", + "username_claimed": "blue", + "username_unclaimed": "noonewouldeverusethis7" }, "Venmo": { "errorType": "status_code", "rank": 4868, "url": "https://venmo.com/{}", - "urlMain": "https://venmo.com/" + "urlMain": "https://venmo.com/", + "username_claimed": "jenny", + "username_unclaimed": "noonewouldeverusethis7" }, "Vimeo": { - "errorMsg": "404 Not Found", - "errorType": "message", + "errorType": "status_code", "rank": 139, "url": "https://vimeo.com/{}", - "urlMain": "https://vimeo.com/" + "urlMain": "https://vimeo.com/", + "username_claimed": "blue", + "username_unclaimed": "noonewouldeverusethis7" }, "VirusTotal": { "errorMsg": "not found", @@ -883,8 +890,10 @@ "YouPic": { "errorType": "status_code", "rank": 41827, - "url": "https://youpic.com/photographer/{}", - "urlMain": "https://youpic.com/" + "url": "https://youpic.com/photographer/{}/", + "urlMain": "https://youpic.com/", + "username_claimed": "blue", + "username_unclaimed": "noonewouldeverusethis7" }, "YouTube": { "errorMsg": "Not Found", diff --git a/tests/base.py b/tests/base.py index e17d8c8d..e3b18970 100644 --- a/tests/base.py +++ b/tests/base.py @@ -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