Esempio n. 1
0
    def test_timed_call(self):
        def f(a, *, x=1, sleep_dur=0.1):
            sleep(sleep_dur)
            return a * x

        with captured_output() as (out, err):
            self.assertEqual(timed_call(f, 2, x=3, sleep_dur=0.11), 6)
        out = err()
        self.assertRegex(out, r'0\.1\d+s')
Esempio n. 2
0
    def test_make_timed(self):
        @make_timed
        def g(a, *, x=1, sleep_dur=0.1):
            sleep(sleep_dur)
            return a * x

        with captured_output() as (out, err):
            self.assertEqual(g(2, x=3, sleep_dur=0.11), 6)
        out = err()
        self.assertRegex(out, r'0\.1\d+s')
Esempio n. 3
0
 def test_tic_default(self):
     with captured_output() as (out, err):
         toc = tic()
         sleep(0.201)
         toc('1')
         sleep(.101)
         toc('2')
     out = err()
     err_lines = out.strip().split('\n')
     self.assertEqual(len(err_lines), 2)
     first, second = err_lines
     self.assertRegex(first, r'0\.2\d*s')
     self.assertRegex(second, r'0\.1\d*s')
Esempio n. 4
0
 def test_tic(self):
     with captured_output() as (out, err):
         toc = tic(fmt='__{message}:{diff:0.1f}:{total:0.1f}__')
         sleep(0.201)
         toc('1')
         sleep(.101)
         toc('2')
     out = err()
     err_lines = out.strip().split('\n')
     self.assertEqual(len(err_lines), 2)
     first, second = err_lines
     self.assertRegex(first, r'__1:0\.2:0\.2__')
     self.assertRegex(second, r'__2:0\.1:0\.3__')
Esempio n. 5
0
 def test_printer_assign_iterable(self):
     with captured_output() as (out, err):
         p = Printer()
         self.assertEqual(p.c, 500)
         p.b[0] = 0
         self.assertEqual(p.c, 495)
         self.assertEqual(p.c, 495)
         p.b = [1, 2, 3]
         self.assertEqual(p.c, 6)
         self.assertEqual(p.c, 6)
         del p.a
         self.assertEqual(p.d, '250000')
     out = out()
     self.assertEqual(out.strip(),
                      '\n'.join('Running {}'.format(s) for s in list('cbaccdcba')))
Esempio n. 6
0
    def test_logging_imports(self):
        from miniutils.logs import disable_logging
        disable_logging()

        with captured_output() as (out, err):
            import miniutils.logs_base as logger
            logger.logger = None  # This is default, but might be altered by another earlier test
            logger.critical('__1__')
            from miniutils.logs import enable_logging
            log = enable_logging(use_colors=False,
                                 format_str=r'%(levelname)s|%(message)s')
            log.critical('__2__')
            logger.critical('__3__')
        err_lines = err().strip().split('\n')
        if len(err_lines) != 3:
            raise Exception('\n'.join(err_lines))
        first, second, third = err_lines
        self.assertEqual(first, '__1__')

        # This is a hack because I'm not sure why coloring fails epically in unittests
        self.assertIn('__2__', second.lower())
        self.assertIn('__3__', third.lower())
Esempio n. 7
0
 def test_cached_collection_mutable(self):
     p = Printer()
     with captured_output():
         self.assertEqual(p.b[0], p.a)