예제 #1
0
 def test_timer(self):
     rp = TextReport.string()
     t = Timer(report=rp)
     msg = "Do something expensive"
     t.start(msg)
     do_expensive()
     t.stop(msg)
     getLogger().debug(rp.content())
     self.assertIn("Started", rp.content())
     self.assertIn("Stopped", rp.content())
     # test do()
     rp = TextReport.string()
     t = Timer(report=rp)
     t.do(lambda: do_expensive(), desc=msg)
     self.assertIn("Started", rp.content())
     self.assertIn("Stopped", rp.content())
     getLogger().debug(rp.content())
예제 #2
0
 def test_locate_config_file(self):
     cfg = AppConfig(name='foo', mode=AppConfig.JSON)
     actual = cfg.potentials()
     expected = ['./.foo', './.foo.json', './foo', './foo.json', './data/foo', './data/foo.json', './data/.foo', './data/.foo.json', '~/.foo', '~/.foo.json', '~/.foo/config', '~/.foo.json/config', '~/.foo/config.json', '~/.foo.json/config.json', '~/.config/foo', '~/.config/foo.json', '~/.config/.foo', '~/.config/.foo.json', '~/.config/foo/config', '~/.config/foo.json/config', '~/.config/foo/config.json', '~/.config/foo.json/config.json', '~/.config/foo/foo', '~/.config/foo.json/foo.json']
     self.assertEqual(actual, expected)
     # default mode is INI
     cfg_ini = AppConfig('chirptest', working_dir=os.path.dirname(__file__))
     self.assertEqual(cfg_ini.config.sections(), ['AUTHOR'])
     self.assertEqual(cfg_ini.config['DEFAULT']['package'], 'chirptext.test')
     self.assertEqual(cfg_ini.config['DEFAULT']['tester'], 'unittest')
     self.assertEqual(cfg_ini.config['AUTHOR']['name'], 'Le Tuan Anh')
     self.assertEqual(cfg_ini.config['AUTHOR']['tester'], 'unittest')
     self.assertEqual(cfg_ini.config.get('AUTHOR', 'desc', fallback='nothing'), 'nothing')
     # test writing config
     with TextReport.string() as strfile:
         cfg_ini.config['AUTHOR']['desc'] = 'An author'
         cfg_ini.config.write(strfile.file)
         self.assertIn('desc = An author', strfile.content())
예제 #3
0
 def test_textreport(self):
     with TextReport.null() as rp:
         rp.writeline("null")
         rp.writeline(123)
         self.assertEqual(rp.content(), '')
     with TextReport() as rp:
         rp.writeline("stdout")
         rp.writeline(123)
         self.assertEqual(rp.content(), '')
     with TextReport(os.path.join(TEST_DATA, "del.me")) as rp:
         rp.writeline("ABC")
         rp.writeline(123)
         self.assertEqual(rp.content(), '')
     self.assertTrue(rp.closed)
     # test string report
     with TextReport.string() as rp:
         rp.writeline("ABC")
         rp.writeline(123, 456, 789)
         self.assertEqual(rp.content(), 'ABC\n123 456 789\n')
예제 #4
0
def do_expensive(n=10000):
    s = TextReport.string()
    for i in range(n):
        s.print("This is string number #{}".format(i))
    return str(s.content())