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())
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())
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')
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())