Ejemplo n.º 1
0
    def test_time_with_1(self):

        #This test is somewhat time dependent.
        #I don't think it should ever fail, but if it does
        #try running it again and see if it works that time.

        sink   = MemorySink()
        logger = BasicLogger(sink,with_stamp=False, with_name=False)
        logs   = sink.items

        with logger.time('a'):
            logger.log('c')
            time.sleep(0.15)
            logger.log('d')
        logger.log('e')

        self.assertEqual(5, len(logs))

        self.assertEqual        (logs[0], 'a')
        self.assertEqual        (logs[1], 'c')
        self.assertEqual        (logs[2], 'd')
        self.assertRegexpMatches(logs[3], '^a \\(\\d+\\.\\d+ seconds\\) \\(completed\\)$')
        self.assertEqual        (logs[4], 'e')


        self.assertAlmostEqual(float(logs[3][3:7 ]), 0.15, 1)
Ejemplo n.º 2
0
    def test_exception(self):
        CobaConfig.Logger = BasicLogger(MemorySink())

        list(MultiprocessFilter([ExceptionFilter()], 2, 1).filter(range(4)))

        for item in CobaConfig.Logger.sink.items:
            self.assertIn("Unexpected exception:", item)
Ejemplo n.º 3
0
    def test_not_picklable_sans_reduce(self):
        CobaConfig.Logger = BasicLogger(MemorySink())

        list(
            MultiprocessFilter([ProcessNameFilter()], 2,
                               1).filter([NotPicklableFilter()]))

        self.assertEqual(1, len(CobaConfig.Logger.sink.items))
        self.assertIn("pickle", CobaConfig.Logger.sink.items[0])
Ejemplo n.º 4
0
    def test_log_exception_1(self):
        
        sink   = MemorySink()
        logger = BasicLogger(sink, with_stamp=False)
        logs   = sink.items

        try:
            raise Exception("Test Exception")
        except Exception as ex:
            logger.log_exception(ex, 'error:')

            tb = ''.join(traceback.format_tb(ex.__traceback__))
            msg = ''.join(traceback.TracebackException.from_exception(ex).format_exception_only())

            expected_msg = f"error:\n\n{tb}\n  {msg}"

            self.assertTrue(ex.__logged__) #type:ignore
            self.assertEqual(len(logs), 1)
            self.assertEqual(logs[0], expected_msg)
Ejemplo n.º 5
0
    def test_wrapped_not_picklable_learner_sans_reduce(self):
        sim1 = LambdaSimulation(5, lambda i: i, lambda i, c: [0, 1, 2],
                                lambda i, c, a: cast(float, a))
        learner = WrappedLearner(NotPicklableLearner())
        benchmark = Benchmark([sim1])

        CobaConfig.Logger = BasicLogger(MemorySink())

        benchmark.evaluate([learner])

        self.assertEqual(1, len(CobaConfig.Logger.sink.items))
        self.assertIn("pickle", CobaConfig.Logger.sink.items[0])
Ejemplo n.º 6
0
    def test_log(self):

        sink   = MemorySink()
        logger = BasicLogger(sink, with_stamp=False, with_name=False)
        logs   = sink.items

        logger.log('a')
        logger.log('c')
        logger.log('d')

        self.assertEqual(logs[0], 'a' )
        self.assertEqual(logs[1], 'c' )
        self.assertEqual(logs[2], 'd' )
Ejemplo n.º 7
0
    def test_log_exception_2(self):
        
        sink   = MemorySink()
        logger = BasicLogger(sink, with_stamp=False)
        logs   = sink.items
        exception = Exception("Test Exception")

        logger.log('a')
        logger.log_exception(exception, '')

        tb = ''.join(traceback.format_tb(exception.__traceback__))
        msg = ''.join(traceback.TracebackException.from_exception(exception).format_exception_only())

        expected_msg = f"\n\n{tb}\n  {msg}"

        self.assertTrue(exception.__logged__) #type:ignore
        self.assertEqual(logs[0], "a")
        self.assertEqual(logs[1], expected_msg)
Ejemplo n.º 8
0
    def test_log_with_1(self):

        #This test is somewhat time dependent.
        #I don't think it should ever fail, but if it does
        #try running it again and see if it works that time.

        sink   = MemorySink()
        logger = BasicLogger(sink,with_stamp=False, with_name=False)
        logs   = sink.items

        with logger.log('a'):
            logger.log('c')
            logger.log('d')
        logger.log('e')

        self.assertEqual(5, len(logs))

        self.assertEqual(logs[0], 'a')
        self.assertEqual(logs[1], 'c')
        self.assertEqual(logs[2], 'd')
        self.assertEqual(logs[3], 'a (completed)')
        self.assertEqual(logs[4], 'e')
Ejemplo n.º 9
0
    def test_time_with_3(self):

        sink   = MemorySink()
        logger = BasicLogger(sink, with_stamp=False)
        logs   = sink.items

        with logger.time('a'):
            with logger.log('c'):
                time.sleep(0.05)
                with logger.time('d'):
                    logger.log('e')
                    time.sleep(0.05)
                with logger.time('d'):
                    logger.log('e')
                    time.sleep(0.05)
            logger.log('f')
        logger.log('g')

        self.assertEqual(12, len(logs))

        self.assertEqual        (logs[0 ], 'a')
        self.assertEqual        (logs[1 ], 'c')
        self.assertEqual        (logs[2 ], 'd')
        self.assertEqual        (logs[3 ], 'e')
        self.assertRegexpMatches(logs[4 ], '^d \\(\\d+\\.\\d+ seconds\\) \\(completed\\)$')
        self.assertEqual        (logs[5 ], 'd')
        self.assertEqual        (logs[6 ], 'e')
        self.assertRegexpMatches(logs[7 ], '^d \\(\\d+\\.\\d+ seconds\\) \\(completed\\)$')
        self.assertEqual        (logs[8 ], 'c (completed)')
        self.assertEqual        (logs[9 ], 'f')
        self.assertRegexpMatches(logs[10], '^a \\(\\d+\\.\\d+ seconds\\) \\(completed\\)$')
        self.assertEqual        (logs[11], 'g')

        self.assertAlmostEqual(float(logs[4 ][3:7]), 0.05, 1)
        self.assertAlmostEqual(float(logs[7 ][3:7]), 0.05, 1)
        self.assertAlmostEqual(float(logs[10][3:7]), 0.15, 1)
Ejemplo n.º 10
0
    def test_time_two_separate(self):

        sink   = MemorySink()
        logger = BasicLogger(sink, with_stamp=False)
        logs   = sink.items

        with logger.time('a'):
            time.sleep(0.05)
            with logger.time('d'):
                logger.log('e')
                time.sleep(0.05)
        
        logger.log('g')
        
        with logger.time('a'):
            time.sleep(0.05)
            with logger.time('d'):
                logger.log('e')
                time.sleep(0.05)
        
        self.assertEqual(11, len(logs))

        self.assertEqual        (logs[0 ], 'a')
        self.assertEqual        (logs[1 ], 'd')
        self.assertEqual        (logs[2 ], 'e')
        self.assertRegexpMatches(logs[3 ], 'd \\(\\d+\\.\\d+ seconds\\)')
        self.assertRegexpMatches(logs[4 ], 'a \\(\\d+\\.\\d+ seconds\\)')
        self.assertEqual        (logs[5 ], 'g')
        self.assertEqual        (logs[6 ], 'a')
        self.assertEqual        (logs[7 ], 'd')
        self.assertEqual        (logs[8 ], 'e')
        self.assertRegexpMatches(logs[9 ], 'd \\(\\d+\\.\\d+ seconds\\)')
        self.assertRegexpMatches(logs[10], 'a \\(\\d+\\.\\d+ seconds\\)')

        self.assertAlmostEqual(float(logs[3 ][3:7]), 0.05, 1)
        self.assertAlmostEqual(float(logs[4 ][3:7]), 0.10, 1)
        self.assertAlmostEqual(float(logs[9 ][3:7]), 0.05, 1)
        self.assertAlmostEqual(float(logs[10][3:7]), 0.10, 1)