def runParserUserAgentStringFromStringAsJson(self): userAgentString = "Mozilla/5.0 (Linux; Android 4.2.2; GT-I9195 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.133 Mobile Safari/537.36" delimiter = "json" expected = { "device":{ "family":"Samsung GT-I9195" }, "os":{ "major":"4", "patch_minor": None, "minor":"2", "family":"Android", "patch":"2" }, "user_agent":{ "major":"44", "minor":"0", "family":"Chrome Mobile", "patch":"2403" }, "string":"Mozilla/5.0 (Linux; Android 4.2.2; GT-I9195 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.133 Mobile Safari/537.36" } result = json.loads(user_agent_wrapper.parseFromString(userAgentString, delimiter)) device = expected['device']['family'] os = expected['os']['family']; browser = expected['user_agent']['family']; string = expected['string']; self.assertEqual(device, result['device']['family']) self.assertEqual(os, result['os']['family']) self.assertEqual(browser, result['user_agent']['family']) self.assertEqual(string, result['string'])
from user agent string: python main.py string "Mozilla/5.0 (Linux; Android 4.2.2; GT-I9195 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.133 Mobile Safari/537.36" , """ __author__ = '[email protected] (Viktor Trako)' import sys import user_agent_wrapper # print 'Number of arguments:', len(sys.argv), 'arguments.' # print 'Argument List:', str(sys.argv) if len(sys.argv) >= 4: inputType = sys.argv[1] inputFormat = sys.argv[2] delimiter = sys.argv[3] if len(sys.argv) == 5: inFilePath = inputFormat outFilePath = sys.argv[4] if inputType == 'string': parsedUaString = user_agent_wrapper.parseFromString( inputFormat, delimiter) print parsedUaString # pass it to string parser if inputType == 'file': user_agent_wrapper.parseFromFile(inFilePath, outFilePath, delimiter) else: sys.exit(1) else: print 'Usage: main.py <user agent string>' sys.exit(1)
from user agent string: python main.py string "Mozilla/5.0 (Linux; Android 4.2.2; GT-I9195 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.133 Mobile Safari/537.36" , """ __author__ = '[email protected] (Viktor Trako)' import sys import user_agent_wrapper # print 'Number of arguments:', len(sys.argv), 'arguments.' # print 'Argument List:', str(sys.argv) if len(sys.argv) >= 4: inputType = sys.argv[1] inputFormat = sys.argv[2] delimiter = sys.argv[3] if len(sys.argv) == 5: inFilePath = inputFormat outFilePath = sys.argv[4] if inputType == 'string': parsedUaString = user_agent_wrapper.parseFromString(inputFormat, delimiter) print parsedUaString # pass it to string parser if inputType == 'file': user_agent_wrapper.parseFromFile(inFilePath, outFilePath, delimiter) else: sys.exit(1) else: print 'Usage: main.py <user agent string>' sys.exit(1)