Пример #1
0
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
Пример #2
0
 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'))
Пример #3
0
 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'))
Пример #4
0
 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'))
Пример #5
0
 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'))
Пример #6
0
    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')
Пример #7
0
    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")
Пример #8
0
    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')
Пример #9
0
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')
Пример #10
0
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': '',
Пример #11
0
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',
Пример #12
0
 def test_download(self):
     call_command('download_browscap', url=DOWNLOAD_URL)
     browscap = load_file('test.csv')
     self.assertEqual(5003, browscap.version)
Пример #13
0
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,
 def test_download(self):
     call_command('download_browscap', url=DOWNLOAD_URL)
     browscap = load_file('test.csv')
     self.assertEqual(5003, browscap.version)