예제 #1
0
 def setUp(self):
     self.ctx = map_context(None, None)
     self.count_group = "Test"
     self.logger = SavingLogger()
     self.monitor = HadoopEventMonitor(self.count_group, self.logger,
                                       self.ctx)
     self.link = MarkDuplicatesEmitter(self.ctx, self.monitor)
     self.pair1 = test_utils.pair1()
     self.pair2 = test_utils.pair2()
예제 #2
0
 def setUp(self):
     self.monitor = StandardMonitor(SavingLogger())
     self.filter = FilterLink(self.monitor)
     self.receiver = self.filter.set_next(type(self).Receiver())
     # create two mappings, m1, m2.  We put them in self.pair
     # m1 has:
     #   name = first
     # 	tid = tid1
     # m2 has:
     #   name = second
     #   tid = tid2
     self.pair = [ SimpleMapping(), SimpleMapping() ]
     self.m1, self.m2 = self.pair
     self.m1.set_name("first") ; self.m2.set_name("second")
     self.m1.tid = "tid1" ; self.m2.tid = "tid2"
     self.m1.qual = 50 ; self.m2.qual = 30
예제 #3
0
	def setUp(self):
		self.map_ctx = map_context(None, None)
		self.count_group = "Test"
		self.logger = SavingLogger()
		self.monitor = HadoopEventMonitor(self.count_group, self.logger, self.map_ctx)
		self.emitter = EmitSamLink(self.map_ctx, self.monitor)
		# create two mappings, m1, m2.  We put them in self.pair
		# m1 has:
		#   name = first
		# 	tid = tid1
		# m2 has:
		#   name = second
		#   tid = tid2
		self.pair = [ SimpleMapping(), SimpleMapping() ]
		self.m1, self.m2 = self.pair
		self.m1.set_name("first")
		self.m1.tid = "tid1"
		self.m2.set_name("second")
		self.m2.tid = "tid2"
	def setUp(self):
		self.map_ctx = map_context(None, None)
		self.logger = SavingLogger()
		self.count_group = "Test"
		self.monitor = HadoopEventMonitor(self.count_group, self.logger, self.map_ctx)
class TestHadoopEventMonitor(unittest.TestCase):

	def setUp(self):
		self.map_ctx = map_context(None, None)
		self.logger = SavingLogger()
		self.count_group = "Test"
		self.monitor = HadoopEventMonitor(self.count_group, self.logger, self.map_ctx)

	def test_start_stop(self):
		self.monitor.start("test_start_stop")
		time.sleep(0.5)
		self.monitor.stop("test_start_stop")
		self.assertTrue( re.match('done with test_start_stop.*', self.logger.contents()) is not None)
		self.assertTrue( re.match('done with test_start_stop.*', self.map_ctx.status_messages[-1]) is not None)
		# extract the measured time and ensure it's > 0
		m = re.search("done with test_start_stop\s+\(\s*(-?[0-9.]+\s*)", self.map_ctx.status_messages[-1])
		self.assertTrue(m is not None, "couldn't extract time from timing status message")
		self.assertTrue(float(m.group(1)) > 0)

	def test_time_block(self):
		with self.monitor.time_block("test_time_block"):
			# in block
			time.sleep(0.5)

		self.assertTrue( re.match('done with test_time_block.*', self.logger.contents()) is not None)
		self.assertTrue( re.match('done with test_time_block.*', self.map_ctx.status_messages[-1]) is not None)
		# extract the measured time and ensure it's > 0
		m = re.search("done with test_time_block\s+\(\s*(-?[0-9.]+\s*)", self.map_ctx.status_messages[-1])
		self.assertTrue(m is not None, "couldn't extract time from timing status message")
		self.assertTrue(float(m.group(1)) > 0)

	def test_count_default(self):
		# this corresponds to how the mock context creates the counter ids,
		# and the event monitor makes the name uppercase.
		counter_id = "%s:%s" % (self.count_group, "TEST_COUNT")
		self.monitor.count("test_count")
		self.assertEqual(1, self.map_ctx.counters[counter_id])
		self.monitor.count("test_count")
		self.assertEqual(2, self.map_ctx.counters[counter_id])

	def test_count_nondefault_value(self):
		counter_id = "%s:%s" % (self.count_group, "TEST_COUNT")
		self.monitor.count("test_count", 8)
		self.assertEqual(8, self.map_ctx.counters[counter_id])
		self.monitor.count("test_count", 5)
		self.assertEqual(13, self.map_ctx.counters[counter_id])

	def test_count_default_preexisting(self):
		counter_id = "%s:%s" % (self.count_group, "TEST_COUNT")
		self.monitor.add_counter("test_count")
		self.monitor.count("test_count")
		self.assertEqual(1, self.map_ctx.counters[counter_id])
		self.monitor.count("test_count")
		self.assertEqual(2, self.map_ctx.counters[counter_id])

	def test_has_counter_add_counter(self):
		self.assertFalse( self.monitor.has_counter("test_has_counter") )
		self.monitor.count("test_has_counter")
		self.assertTrue( self.monitor.has_counter("test_has_counter") )
		self.assertFalse( self.monitor.has_counter("other_counter") )
		self.monitor.add_counter("other_counter")
		self.assertTrue( self.monitor.has_counter("other_counter") )

	def test_new_status(self):
		self.assertEqual(0, len(self.map_ctx.status_messages))
		self.monitor.new_status("test_new_status")
		self.assertEqual(1, len(self.map_ctx.status_messages))
		self.assertEqual("test_new_status", self.map_ctx.status_messages[-1])
		self.assertEqual("test_new_status\n", self.logger.contents())

	def test_new_status_lower_log_level(self):
		self.logger.log_level = SavingLogger.ERROR
		self.assertEqual(0, len(self.map_ctx.status_messages))
		self.monitor.new_status("test_new_status")
		self.assertEqual(1, len(self.map_ctx.status_messages))
		self.assertEqual("test_new_status", self.map_ctx.status_messages[-1])
		self.assertEqual("", self.logger.contents())

	def test_log_debug(self):
		self.logger.log_level = SavingLogger.DEBUG
		self.monitor.log_debug("debug")
		self.assertEqual("debug\n", self.logger.contents())
		self.monitor.log_info("info")
		self.assertEqual("debug\ninfo\n", self.logger.contents())

	def test_log_info(self):
		self.logger.log_level = SavingLogger.INFO
		self.monitor.log_debug("debug")
		self.assertEqual("", self.logger.contents())
		self.monitor.log_info("info")
		self.assertEqual("info\n", self.logger.contents())
		self.monitor.log_error("error")
		self.assertEqual("info\nerror\n", self.logger.contents())

	def test_log_warning(self):
		self.logger.log_level = SavingLogger.WARNING
		self.monitor.log_info("info")
		self.assertEqual("", self.logger.contents())
		self.monitor.log_warning("warning")
		self.assertEqual("warning\n", self.logger.contents())
		self.monitor.log_error("error")
		self.assertEqual("warning\nerror\n", self.logger.contents())

	def test_log_error(self):
		self.logger.log_level = SavingLogger.ERROR
		self.monitor.log_info("info")
		self.assertEqual("", self.logger.contents())
		self.monitor.log_error("error")
		self.assertEqual("error\n", self.logger.contents())
		self.monitor.log_critical("critical")
		self.assertEqual("error\ncritical\n", self.logger.contents())

	def test_log_critical(self):
		self.logger.log_level = SavingLogger.CRITICAL
		self.monitor.log_info("info")
		self.assertEqual("", self.logger.contents())
		self.monitor.log_critical("critical")
		self.assertEqual("critical\n", self.logger.contents())
예제 #6
0
 def setUp(self):
     self.map_ctx = map_context(None, None)
     self.logger = SavingLogger()
     self.count_group = "Test"
     self.monitor = HadoopEventMonitor(self.count_group, self.logger,
                                       self.map_ctx)
예제 #7
0
class TestHadoopEventMonitor(unittest.TestCase):
    def setUp(self):
        self.map_ctx = map_context(None, None)
        self.logger = SavingLogger()
        self.count_group = "Test"
        self.monitor = HadoopEventMonitor(self.count_group, self.logger,
                                          self.map_ctx)

    def test_start_stop(self):
        self.monitor.start("test_start_stop")
        time.sleep(0.5)
        self.monitor.stop("test_start_stop")
        self.assertTrue(
            re.match('done with test_start_stop.*', self.logger.contents())
            is not None)
        self.assertTrue(
            re.match('done with test_start_stop.*',
                     self.map_ctx.status_messages[-1]) is not None)
        # extract the measured time and ensure it's > 0
        m = re.search("done with test_start_stop\s+\(\s*(-?[0-9.]+\s*)",
                      self.map_ctx.status_messages[-1])
        self.assertTrue(m is not None,
                        "couldn't extract time from timing status message")
        self.assertTrue(float(m.group(1)) > 0)

    def test_time_block(self):
        with self.monitor.time_block("test_time_block"):
            # in block
            time.sleep(0.5)

        self.assertTrue(
            re.match('done with test_time_block.*', self.logger.contents())
            is not None)
        self.assertTrue(
            re.match('done with test_time_block.*',
                     self.map_ctx.status_messages[-1]) is not None)
        # extract the measured time and ensure it's > 0
        m = re.search("done with test_time_block\s+\(\s*(-?[0-9.]+\s*)",
                      self.map_ctx.status_messages[-1])
        self.assertTrue(m is not None,
                        "couldn't extract time from timing status message")
        self.assertTrue(float(m.group(1)) > 0)

    def test_count_default(self):
        # this corresponds to how the mock context creates the counter ids,
        # and the event monitor makes the name uppercase.
        counter_id = "%s:%s" % (self.count_group, "TEST_COUNT")
        self.monitor.count("test_count")
        self.assertEqual(1, self.map_ctx.counters[counter_id])
        self.monitor.count("test_count")
        self.assertEqual(2, self.map_ctx.counters[counter_id])

    def test_count_nondefault_value(self):
        counter_id = "%s:%s" % (self.count_group, "TEST_COUNT")
        self.monitor.count("test_count", 8)
        self.assertEqual(8, self.map_ctx.counters[counter_id])
        self.monitor.count("test_count", 5)
        self.assertEqual(13, self.map_ctx.counters[counter_id])

    def test_count_default_preexisting(self):
        counter_id = "%s:%s" % (self.count_group, "TEST_COUNT")
        self.monitor.add_counter("test_count")
        self.monitor.count("test_count")
        self.assertEqual(1, self.map_ctx.counters[counter_id])
        self.monitor.count("test_count")
        self.assertEqual(2, self.map_ctx.counters[counter_id])

    def test_has_counter_add_counter(self):
        self.assertFalse(self.monitor.has_counter("test_has_counter"))
        self.monitor.count("test_has_counter")
        self.assertTrue(self.monitor.has_counter("test_has_counter"))
        self.assertFalse(self.monitor.has_counter("other_counter"))
        self.monitor.add_counter("other_counter")
        self.assertTrue(self.monitor.has_counter("other_counter"))

    def test_new_status(self):
        self.assertEqual(0, len(self.map_ctx.status_messages))
        self.monitor.new_status("test_new_status")
        self.assertEqual(1, len(self.map_ctx.status_messages))
        self.assertEqual("test_new_status", self.map_ctx.status_messages[-1])
        self.assertEqual("test_new_status\n", self.logger.contents())

    def test_new_status_lower_log_level(self):
        self.logger.log_level = SavingLogger.ERROR
        self.assertEqual(0, len(self.map_ctx.status_messages))
        self.monitor.new_status("test_new_status")
        self.assertEqual(1, len(self.map_ctx.status_messages))
        self.assertEqual("test_new_status", self.map_ctx.status_messages[-1])
        self.assertEqual("", self.logger.contents())

    def test_log_debug(self):
        self.logger.log_level = SavingLogger.DEBUG
        self.monitor.log_debug("debug")
        self.assertEqual("debug\n", self.logger.contents())
        self.monitor.log_info("info")
        self.assertEqual("debug\ninfo\n", self.logger.contents())

    def test_log_info(self):
        self.logger.log_level = SavingLogger.INFO
        self.monitor.log_debug("debug")
        self.assertEqual("", self.logger.contents())
        self.monitor.log_info("info")
        self.assertEqual("info\n", self.logger.contents())
        self.monitor.log_error("error")
        self.assertEqual("info\nerror\n", self.logger.contents())

    def test_log_warning(self):
        self.logger.log_level = SavingLogger.WARNING
        self.monitor.log_info("info")
        self.assertEqual("", self.logger.contents())
        self.monitor.log_warning("warning")
        self.assertEqual("warning\n", self.logger.contents())
        self.monitor.log_error("error")
        self.assertEqual("warning\nerror\n", self.logger.contents())

    def test_log_error(self):
        self.logger.log_level = SavingLogger.ERROR
        self.monitor.log_info("info")
        self.assertEqual("", self.logger.contents())
        self.monitor.log_error("error")
        self.assertEqual("error\n", self.logger.contents())
        self.monitor.log_critical("critical")
        self.assertEqual("error\ncritical\n", self.logger.contents())

    def test_log_critical(self):
        self.logger.log_level = SavingLogger.CRITICAL
        self.monitor.log_info("info")
        self.assertEqual("", self.logger.contents())
        self.monitor.log_critical("critical")
        self.assertEqual("critical\n", self.logger.contents())