from fastNLP import logger import unittest from unittest.mock import patch import os import io import tempfile import shutil class TestLogger(unittest.TestCase): msg = 'some test logger msg' def setUp(self): self.tmpdir = tempfile.mkdtemp() def tearDown(self): pass # shutil.rmtree(self.tmpdir) def test_add_file(self): fn = os.path.join(self.tmpdir, 'log.txt') logger.add_file(fn) logger.info(self.msg) with open(fn, 'r') as f: line = ''.join([l for l in f]) print(line) self.assertTrue(self.msg in line) @patch('sys.stdout', new_callable=io.StringIO) def test_stdout(self, mock_out): for i in range(3): logger.info(self.msg) logger.debug('aabbc') self.assertEqual([self.msg for i in range(3)], mock_out.getvalue().strip().split('\n'))