def test_main( to_file, debug, log_level, backup_and_restore_sys_argv, capsys, monkeypatch, tmp_path, ): log_file = tmp_path / "anonip.log" sys.argv = [ "anonip.py", "-c", "2", "-4", "12", "-6", "42", "-i", "1", "-l", ";", "-r", "replace", "-p", ] if to_file: sys.argv += ["-o", str(log_file)] if debug: sys.argv.append("-d") monkeypatch.setattr( "sys.stdin", StringIO("string;192.168.100.200\n" "string;1.2.3.4\n" "string;2001:0db8:85a3:0000:0000:8a2e:0370:7334\n" "string;2a00:1450:400a:803::200e\n" "string;string\n"), ) anonip.main() if to_file: with log_file.open() as f: lines = [l.rstrip("\n") for l in f.readlines()] else: captured = capsys.readouterr() lines = captured.out.split("\n")[:-1] assert lines == [ "string;192.168.100.200", "string;1.2.0.1", "string;2001:db8:85a3::8a2e:370:7334", "string;2a00:1450:400a:803::1", "string;replace", ] logger = logging.getLogger("anonip") assert logger.level == log_level
def test_main_reading_from_input_file(tmp_path, backup_and_restore_sys_argv): input_filename = tmp_path / "anonip-input.txt" input_filename.write_text( "192.168.100.200 string\n" "1.2.3.4 string\n" "2001:0db8:85a3:0000:0000:8a2e:0370:7334 string\n" "2a00:1450:400a:803::200e string\n") sys.argv = ["anonip.py", "--input", str(input_filename), "-d"] with captured_output() as (out, err): anonip.main() lines = out.getvalue().split("\n")[:-1] assert lines == [ "192.168.96.0 string", "1.2.0.0 string", "2001:db8:85a0:: string", "2a00:1450:4000:: string", ]
def test_main_reading_from_input_file(tmp_path, backup_and_restore_sys_argv): input_filename = tmp_path / "anonip-input.txt" input_filename.write_text( "string;192.168.100.200\n" "string;1.2.3.4\n" "string;2001:0db8:85a3:0000:0000:8a2e:0370:7334\n" "string;2a00:1450:400a:803::200e\n" "string;string\n\n") sys.argv = ["anonip.py", "--input", str(input_filename), "-d"] with captured_output() as (out, err): anonip.main() lines = out.getvalue().split("\n") assert lines[0] == "string;192.168.100.200" assert lines[1] == "string;1.2.3.4" assert lines[2] == "string;2001:0db8:85a3:0000:0000:8a2e:0370:7334" assert lines[3] == "string;2a00:1450:400a:803::200e" assert lines[4] == "string;string"
def test_main(to_file, debug, log_level, backup_and_restore_sys_argv, tmp_path): log_file = tmp_path / "anonip.log" sys.argv = [ "anonip.py", "-c", "2", "-4", "12", "-6", "42", "-i", "1", "-l", ";", "-r", "replace", "-p", ] if to_file: sys.argv += ["-o", str(log_file)] if debug: sys.argv.append("-d") sys.stdin = StringIO("string;192.168.100.200\n" "string;1.2.3.4\n" "string;2001:0db8:85a3:0000:0000:8a2e:0370:7334\n" "string;2a00:1450:400a:803::200e\n" "string;string\n\n") with captured_output() as (out, err): anonip.main() if to_file: with log_file.open() as f: lines = [l.rstrip("\n") for l in f.readlines()] else: lines = out.getvalue().split("\n") assert lines[0] == "string;192.168.100.200" assert lines[1] == "string;1.2.0.1" assert lines[2] == "string;2001:db8:85a3::8a2e:370:7334" assert lines[3] == "string;2a00:1450:400a:803::1" assert lines[4] == "string;replace" logger = logging.getLogger("anonip") assert logger.level == log_level
def test_main_to_stdout_no_debug(self): sys.stdin = StringIO("string;192.168.100.200\n" "string;1.2.3.4\n" "string;2001:0db8:85a3:0000:0000:8a2e:0370:7334\n" "string;2a00:1450:400a:803::200e\n" "string;string\n\n") with captured_output() as (out, err): anonip.main() lines = out.getvalue().split("\n") self.assertEqual(lines[0], "string;192.168.100.200") self.assertEqual(lines[1], "string;1.2.0.1") self.assertEqual(lines[2], "string;2001:db8:85a3::8a2e:370:7334") self.assertEqual(lines[3], "string;2a00:1450:400a:803::1") self.assertEqual(lines[4], "string;replace") logger = logging.getLogger("anonip") self.assertEqual(logger.level, 30)
def test_main_writing_to_file_debug(self): sys.argv += ["-o", self.log_file, "-d"] sys.stdin = StringIO("string;192.168.100.200\n" "string;1.2.3.4\n" "string;2001:0db8:85a3:0000:0000:8a2e:0370:7334\n" "string;2a00:1450:400a:803::200e\n" "string;string\n\n") anonip.main() self.assertTrue(os.path.exists(self.log_file)) with open(self.log_file, "r") as f: lines = f.readlines() self.assertEqual(lines[0], "string;192.168.100.200\n") self.assertEqual(lines[1], "string;1.2.0.1\n") self.assertEqual(lines[2], "string;2001:db8:85a3::8a2e:370:7334\n") self.assertEqual(lines[3], "string;2a00:1450:400a:803::1\n") self.assertEqual(lines[4], "string;replace\n") logger = logging.getLogger("anonip") self.assertEqual(logger.level, 10)