def run_check(self, url):
        self.session = requests.session()
        self.session.headers = [('User-agent', "Sasha's pony checkup - http://ponycheckup.com/")]

        try:
            homepage = self.session.get(url, timeout=7)

            check_record = Check(url=url)

            check_record.hsts_header_found   = self.check_supports_hsts(url)
            check_record.xframe_header_found = True if 'X-Frame-Options' in homepage.headers else False
            check_record.supports_https      = self.check_supports_https(url)
            check_record.heartbleed_vuln     = self.check_heartbleed_vuln(url)

            (check_record.admin_found, check_record.admin_forces_https) = self.check_admin(url)

            (check_record.login_found, check_record.login_forces_https) = self.check_login(url)

            check_record.allows_trace      = self.check_trace(url)
            check_record.runs_debug        = self.check_runs_debug(url)
            check_record.csrf_cookie_found = True if self.find_csrf_cookie() else False

            session_cookie                 = self.find_session_cookie()
            if session_cookie:
                check_record.session_cookie_found    = True
                check_record.session_cookie_secure   = session_cookie.secure
                check_record.session_cookie_httponly = session_cookie.has_nonstandard_attr('httponly')
            else:
                check_record.session_cookie_found    = False

            check_record.update_recommendation_count()
            check_record.save()
            return check_record
        except (requests.RequestException, SSLError, PyAsn1Error) as error:
            return error