def _get_browscap(): browscap = getattr(_app_ctx_stack, "_browscap", None) if browscap is None: print("Loading browscap... ", end="") stdout.flush() browscap_path = path.join(path.dirname(path.dirname(path.abspath(__file__))), 'browscap.csv') browscap = _app_ctx_stack._browscap = load_file(browscap_path) print("done!") return browscap
def test_load_csv_browscap(self): browscap = load_file(self.browscap_file1) self.assertIsInstance(browscap, Browscap) self.assertEqual(browscap.browscap_file_path, self.browscap_file1) self.assertEqual(browscap.type, TYPE_CSV) self.assertGreaterEqual(datetime.now(), browscap.loaded_at) self.assertIsNone(browscap.reloaded_at) self.assertEqual(len(browscap.data), 4) self.assertEqual(len(browscap.regex_cache), 4) self.assertEqual(browscap.version, 5003) self.assertEqual(browscap.release_date, datetime.strptime('Mon, 14 May 2012 22:20:20', '%a, %d %b %Y %H:%M:%S'))
def test_reload_new_csv_browscap_file(self): browscap = load_file(self.browscap_file1) self.assertEqual(len(browscap.data), 4) self.assertEqual(len(browscap.regex_cache), 4) self.assertEqual(browscap.version, 5003) self.assertEqual(browscap.release_date, datetime.strptime('Mon, 14 May 2012 22:20:20', '%a, %d %b %Y %H:%M:%S')) browscap.reload(self.browscap_file2) self.assertEqual(len(browscap.data), 3) self.assertEqual(len(browscap.regex_cache), 3) self.assertEqual(browscap.version, 5003) self.assertEqual(browscap.release_date, datetime.strptime('Mon, 21 May 2012 15:48:39', '%a, %d %b %Y %H:%M:%S'))
def test_load_csv_browscap(self): browscap = load_file(self.browscap_file1) self.assertIsInstance(browscap, Browscap) self.assertEqual(browscap.browscap_file_path, self.browscap_file1) self.assertEqual(browscap.type, TYPE_CSV) self.assertGreaterEqual(datetime.now(), browscap.loaded_at) self.assertIsNone(browscap.reloaded_at) self.assertEqual(len(browscap.data), 2) self.assertEqual(len(browscap.regex_cache), 2) self.assertEqual(browscap.version, 5003) self.assertEqual(browscap.release_date, datetime.strptime('Mon, 14 May 2012 22:20:20', '%a, %d %b %Y %H:%M:%S'))
def test_reload_new_csv_browscap_file(self): browscap = load_file(self.browscap_file1) self.assertEqual(len(browscap.data), 2) self.assertEqual(len(browscap.regex_cache), 2) self.assertEqual(browscap.version, 5003) self.assertEqual(browscap.release_date, datetime.strptime('Mon, 14 May 2012 22:20:20', '%a, %d %b %Y %H:%M:%S')) browscap.reload(self.browscap_file2) self.assertEqual(len(browscap.data), 2) self.assertEqual(len(browscap.regex_cache), 2) self.assertEqual(browscap.version, 5003) self.assertEqual(browscap.release_date, datetime.strptime('Mon, 21 May 2012 15:48:39', '%a, %d %b %Y %H:%M:%S'))
def __init__(self): """Constructor. This constructor will be called only once while django initialization. """ if settings.PYBROWSCAP_INITIALIZE: try: log.info('Initializing pybrowscap') self.browscap = load_file(settings.PYBROWSCAP_FILE_PATH) self.last_load = datetime.now() log.info('Pybrowscap initialized') except IOError: log.exception('Error while initializing pybrowscap')
def __init__(self): """Constructor. This constructor will be called only once while django initialization. """ if settings.PYBROWSCAP_INITIALIZE: try: log.info("Initializing pybrowscap") self.browscap = load_file(settings.PYBROWSCAP_FILE_PATH) self.last_load = datetime.now() log.info("Pybrowscap initialized") except IOError: log.exception("Error while initializing pybrowscap")
def __init__(self): """Constructor. This constructor will be called only once while django initialization. """ if settings.PYBROWSCAP_INITIALIZE: try: log.info('Initializing pybrowscap') self.browscap = load_file(settings.PYBROWSCAP_FILE_PATH) except IOError: log.exception('Error while initializing pybrowscap') self.browscap = None else: log.info('Pybrowscap initialized')
import unittest from pybrowscap.loader.csv import load_file from decimal import Decimal import os BROWSCAP = load_file(os.path.dirname(__file__)+os.sep+'data'+os.sep+'browscap_22_06_2011.csv') class BrowserFirefoxTest(unittest.TestCase): user_agent = 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.10 (maverick) Firefox/3.6.18' def setUp(self): self.browser = BROWSCAP.search(self.user_agent) def tearDown(self): self.browser = None def test_items(self): self.assertEqual(self.browser.items(), {'cookies': True, 'javaapplets': True, 'parent': 'Firefox 3.6', 'activexcontrols': False, 'backgroundsounds': False, 'win64': False, 'banned': False, 'javascript': True, 'syndicationreader': False, 'beta': False, 'sortorder': '860', 'aolversion': Decimal('0.0'), 'alpha': False, 'frames': True, 'cssversion': Decimal('0.0'), 'crawler': False, 'masterparent': False, 'tables': True, 'iframes': True, 'minorversion': 6, 'internalid': '11277', 'mobiledevice': False, 'vbscript': False, 'win32': False, 'platform': 'Linux', 'version': Decimal('3.6'), 'useragent': '[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9.2*) Gecko/* Firefox/3.6*]', 'browser': 'Firefox', 'win16': False, 'majorversion': 3}) def test_get(self): self.assertEqual(self.browser.get('platform'), 'Linux')
import unittest import os from pybrowscap.loader.csv import load_file BROWSCAP = load_file(os.path.join(os.path.dirname(__file__), '..', '..', 'data', 'browscap_14_05_2012.csv')) class TestBrowserFirefox(unittest.TestCase): user_agent = 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.10 (maverick) Firefox/3.6.18' def setUp(self): self.browser = BROWSCAP.search(self.user_agent) def tearDown(self): self.browser = None def test_items(self): self.assertDictEqual(self.browser.items(), {'cookies': True, 'activexcontrols': False, 'aolversion': 0.0, 'frames': True, 'cssversion': 0.0, 'majorver': 3, 'tables': True, 'iframes': True, 'vbscript': False, 'comments': 'Firefox 3.6', 'platform_version': 0.0, 'platform': 'Linux', 'version': 3.6, 'masterparent': False, 'renderingengine_version': 0.0, 'javaapplets': True, 'parent': 'Firefox 3.6', 'backgroundsounds': False, 'win64': False, 'propertyname': 'Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9.2*) Gecko/* Firefox/3.6*', 'javascript': True, 'beta': False, 'alpha': False, 'renderingengine_description': 'For Firefox, Camino, K-Meleon, SeaMonkey, Netscape, and other Gecko-based browsers.', 'crawler': False, 'renderingengine_name': 'Gecko', 'device_maker': '',
import unittest import os from pybrowscap.loader.csv import load_file BROWSCAP = load_file( os.path.join(os.path.dirname(__file__), '..', '..', 'data', 'browscap_29_11_2018.csv')) class TestBrowserFirefox(unittest.TestCase): user_agent = 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.10 (maverick) Firefox/3.6.18' def setUp(self): self.browser = BROWSCAP.search(self.user_agent) def tearDown(self): self.browser = None def test_items(self): self.assertDictEqual( self.browser.items(), { 'tables': True, 'iframes': True, 'browser_bits': '32', 'beta': False, 'issyndicationreader': False, 'istablet': False, 'device_name': 'Linux Desktop',
def test_download(self): call_command('download_browscap', url=DOWNLOAD_URL) browscap = load_file('test.csv') self.assertEqual(5003, browscap.version)
import unittest import os from pybrowscap.loader.csv import load_file BROWSCAP = load_file(os.path.join(os.path.dirname(__file__), '..', '..', 'data', 'browscap_29_11_2018.csv')) class TestBrowserFirefox(unittest.TestCase): user_agent = 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.10 (maverick) Firefox/3.6.18' def setUp(self): self.browser = BROWSCAP.search(self.user_agent) def tearDown(self): self.browser = None def test_items(self): self.assertDictEqual(self.browser.items(), {'tables': True, 'iframes': True, 'browser_bits': '32', 'beta': False, 'issyndicationreader': False, 'istablet': False, 'device_name': 'Linux Desktop', 'device_maker': '', 'platform_maker': 'Canonical Foundation', 'parent': 'Firefox 3.6', 'renderingengine_description': 'For Firefox, Camino, K-Meleon, SeaMonkey, Netscape, and other Gecko-based browsers.', 'renderingengine_name': 'Gecko', 'majorver': 3, 'javascript': True, 'cookies': True, 'browser_maker': 'Mozilla Foundation', 'device_code_name': 'Linux Desktop', 'win64': False, 'javaapplets': True, 'isanonymized': False, 'platform_description': 'Ubuntu Linux', 'version': 3.6, 'renderingengine_version': 0.0, 'platform_version': 10.1, 'alpha': False, 'frames': True,