class TestRawData(unittest.TestCase): def setUp(self): self.obj = RawData() def tearDown(self): del self.obj def test_key(self): domain_name = 'test_name' timestamp = '2011-01-01T16:16:33.123456' self.obj.composite_key(domain_name, timestamp) temp = self.obj.get_key() assert temp[0] == domain_name assert temp[1] == timestamp def test_session_id(self): value = 'value_1234567890' self.obj.set_session_id(value) temp = self.obj.get_session_id() assert temp == value def test_os(self): value = 'Windows MS PS 7.0.0.0.1.1.2' self.obj.set_os(value) temp = self.obj.get_os() assert temp == value def test_browser(self): br_type = 'FireFox' version = '3.4.5.6.7.8.9' self.obj.set_browser(br_type + version) temp = self.obj.get_browser() assert temp == br_type + version def test_ip(self): value = '100.100.200.200' self.obj.set_ip(value) temp = self.obj.get_ip() assert temp == value def test_screen_res(self): value_x = 1080 value_y = 980 self.obj.set_screen_res(value_x, value_y) temp = self.obj.get_screen_res() assert temp[0] == value_x assert temp[1] == value_y def test_language(self): value = 'ca-uk' self.obj.set_language(value) temp = self.obj.get_language() assert temp == value def test_country(self): value = 'ca' self.obj.set_country(value) temp = self.obj.get_country() assert temp == value
def _run_stream_generation(self): self.logger.info('Stream Generator: ON. Expected rate: %d/s, %d/m, %d/h, %d/d' % \ (1 / SLEEP_TIME, 1 / SLEEP_TIME * 60, 1 / SLEEP_TIME * 3600, 1 / SLEEP_TIME * 86400)) self.performance_ticker.start() random.seed('RANDOM_SEED_OBJECT') document = RawData() while self.thread_is_running: if time.time() - self.previous_tick > TICK_INTERVAL: #increment group number every TICK_INTERVAL seconds self.number_of_groups += 100 self.previous_tick = time.time() try: key = self._generate_key() document.composite_key(key[0], key[1]) session_no = self.number_of_groups + random.randint(0, 99) document.set_session_id('session_%d' % session_no) document.set_ip('%d.%d.%d.%d' % (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))) document.set_screen_res(random.randrange(340, 1080, 100), random.randrange(240, 980, 100)) if self.performance_ticker.posts_per_tick % 7 == 0: document.set_os('OSX') document.set_browser('Safari-1.0') document.set_language('en_us') document.set_country('usa') elif self.performance_ticker.posts_per_tick % 5 == 0: document.set_os('Linux') document.set_browser('FireFox-4.0') document.set_language('en_ca') document.set_country('canada') elif self.performance_ticker.posts_per_tick % 3 == 0: document.set_os('Windows') document.set_browser('IE-6.0') document.set_language('ge_de') document.set_country('germany') else: document.set_os('Android') document.set_browser('FireMini-2.0') document.set_language('es') document.set_country('eu') document.set_page_view() self.publisher.publish(document.get_document()) self.performance_ticker.increment() time.sleep(SLEEP_TIME) except (AMQPException, IOError) as e: self.thread_is_running = False self.performance_ticker.cancel() self.logger.error('AMQPException: %s' % str(e)) except Exception as e: self.logger.info('safety fuse: %s' % str(e))