def AddResult(cls, test_set, ip, user_agent_string, results_str, is_import=False, params_str=None, js_user_agent_string=None, js_user_agent_family=None, js_user_agent_v1=None, js_user_agent_v2=None, js_user_agent_v3=None, skip_dirty_update=False, **kwds): """Create result models and stores them as one transaction. Args: test_set: an instance of test_set_base. ip: a string to store as the user's IP. This should be hashed beforehand. user_agent_string: the http user agent string. results_str: a string like 'test1=time1,test2=time2,[...]'. is_import: if True, skip checking test_keys and do not mark dirty. params_str: a string representation of test_set_params.Params. js_user_agent_string: chrome frame ua string from client-side JavaScript. js_user_agent_family: This is an override for the family name to deal with the fact that IE platform preview (for instance) cannot be distinguished by user_agent_string, but only in javascript. js_user_agent_v1: v1 override - see above. js_user_agent_v2: v1 override - see above. js_user_agent_v3: v1 override - see above. skip_dirty_update: For tests, allow skipping the update-dirty task. kwds: optional fields including 'loader_id'. Returns: A ResultParent instance. """ logging.debug('ResultParent.AddResult category=%s' % test_set.category) if params_str in ('None', ''): # params_str should either unset, None, or a non-empty string logging.debug('params_str is wonky') raise ValueError user_agent = UserAgent.factory( user_agent_string, js_user_agent_string=js_user_agent_string, js_user_agent_family=js_user_agent_family, js_user_agent_v1=js_user_agent_v1, js_user_agent_v2=js_user_agent_v2, js_user_agent_v3=js_user_agent_v3) parent = cls(category=test_set.category, ip=ip, user_agent=user_agent, user_agent_string_list=user_agent.get_string_list(), params_str=params_str, **kwds) try: results = test_set.GetResults(results_str, ignore_key_errors=is_import) except test_set_base.ParseResultsKeyError, e: logging.warn(e) return None
def setUp(self): self.client = Client() ua_string = ( "Mozilla/5.0 (X11 U Linux armv6l de-DE rv:1.9a6pre) " "Gecko/20080606 " "Firefox/3.0a1 Tablet browser 0.3.7 " "RX-34+RX-44+RX-48_DIABLO_4.2008.23-14" ) self.ua = UserAgent.factory(ua_string)
def AddResult(cls, test_set, ip, user_agent_string, results_str, is_import=False, params_str=None, js_user_agent_string=None, js_user_agent_family=None, js_user_agent_v1=None, js_user_agent_v2=None, js_user_agent_v3=None, skip_dirty_update=False, **kwds): """Create result models and stores them as one transaction. Args: test_set: an instance of test_set_base. ip: a string to store as the user's IP. This should be hashed beforehand. user_agent_string: the http user agent string. results_str: a string like 'test1=time1,test2=time2,[...]'. is_import: if True, skip checking test_keys and do not mark dirty. params_str: a string representation of test_set_params.Params. js_user_agent_string: chrome frame ua string from client-side JavaScript. js_user_agent_family: This is an override for the family name to deal with the fact that IE platform preview (for instance) cannot be distinguished by user_agent_string, but only in javascript. js_user_agent_v1: v1 override - see above. js_user_agent_v2: v1 override - see above. js_user_agent_v3: v1 override - see above. skip_dirty_update: For tests, allow skipping the update-dirty task. kwds: optional fields including 'loader_id'. Returns: A ResultParent instance. """ logging.debug('ResultParent.AddResult category=%s' % test_set.category) if params_str in ('None', ''): # params_str should either unset, None, or a non-empty string logging.debug('params_str is wonky') raise ValueError user_agent = UserAgent.factory(user_agent_string, js_user_agent_string=js_user_agent_string, js_user_agent_family=js_user_agent_family, js_user_agent_v1=js_user_agent_v1, js_user_agent_v2=js_user_agent_v2, js_user_agent_v3=js_user_agent_v3) parent = cls(category=test_set.category, ip=ip, user_agent=user_agent, user_agent_string_list=user_agent.get_string_list(), params_str=params_str, **kwds) try: results = test_set.GetResults(results_str, ignore_key_errors=is_import) except test_set_base.ParseResultsKeyError, e: logging.warn(e) return None
def GetUserAgent(browser): return UserAgent.factory(GetUserAgentString(browser))