test_script_hello.py
1 from os import unlink 2 from tempfile import NamedTemporaryFile 3 4 from .common import check_assert, check_command, check_returncode 5 6 7 def test_hello(): 8 result = check_command('./hello') 9 check_returncode(result) 10 check_assert(result, 'Hello, World, from cli.log.info!' in result.stdout) 11 check_assert(result, 'Hello, World, from cli.echo!' in result.stdout) 12 13 14 def test_hello_help(): 15 result = check_command('./hello', '--help') 16 check_returncode(result) 17 check_assert(result, '[-n NAME]' in result.stdout) 18 check_assert(result, '[--no-comma]' in result.stdout) 19 20 21 def test_hello_no_color(): 22 result = check_command('./hello', '--no-color') 23 check_returncode(result) 24 if 'ℹ' in result.stdout: 25 check_assert(result, result.stdout == 'ℹ Hello, World, from cli.log.info!\nHello, World, from cli.echo!\n') 26 else: 27 check_assert(result, result.stdout == 'INFO Hello, World, from cli.log.info!\nHello, World, from cli.echo!\n') 28 29 30 def test_hello_no_color_no_unicode(): 31 result = check_command('./hello', '--no-color', '--no-unicode') 32 check_returncode(result) 33 check_assert(result, result.stdout == 'INFO Hello, World, from cli.log.info!\nHello, World, from cli.echo!\n') 34 35 36 def test_hello_no_color_no_comma(): 37 result = check_command('./hello', '--no-color', '--no-comma') 38 check_returncode(result) 39 if 'ℹ' in result.stdout: 40 check_assert(result, result.stdout == 'ℹ Hello World, from cli.log.info!\nHello World, from cli.echo!\n') 41 else: 42 check_assert(result, result.stdout == 'INFO Hello World, from cli.log.info!\nHello World, from cli.echo!\n') 43 44 45 def test_hello_no_color_no_unicode_no_comma(): 46 result = check_command('./hello', '--no-color', '--no-unicode', '--no-comma') 47 check_returncode(result) 48 check_assert(result, result.stdout == 'INFO Hello World, from cli.log.info!\nHello World, from cli.echo!\n') 49 50 51 def test_hello_no_color_log_file(): 52 log_file = NamedTemporaryFile(delete=False) 53 result = check_command('./hello', '--no-color', '--log-file', log_file.name) 54 check_returncode(result) 55 if 'ℹ' in result.stdout: 56 check_assert(result, result.stdout == 'ℹ Hello, World, from cli.log.info!\nHello, World, from cli.echo!\n') 57 else: 58 check_assert(result, result.stdout == 'INFO Hello, World, from cli.log.info!\nHello, World, from cli.echo!\n') 59 log_file_contents = log_file.read().decode('utf-8') 60 log_file.close() 61 unlink(log_file.name) 62 if 'Hello, World, from cli.log.info!' not in log_file_contents: 63 print('Log File Contents:') 64 print(log_file_contents) 65 print() 66 raise AssertionError 67 68 69 def test_hello_no_color_no_unicode_log_file(): 70 log_file = NamedTemporaryFile(delete=False) 71 result = check_command('./hello', '--no-color', '--no-unicode', '--log-file', log_file.name) 72 check_returncode(result) 73 check_assert(result, result.stdout == 'INFO Hello, World, from cli.log.info!\nHello, World, from cli.echo!\n') 74 log_file_contents = log_file.read().decode('utf-8') 75 log_file.close() 76 unlink(log_file.name) 77 if 'Hello, World, from cli.log.info!' not in log_file_contents: 78 print('Log File Contents:') 79 print(log_file_contents) 80 print() 81 raise AssertionError 82 83 84 def test_hello_no_color_verbose(): 85 result = check_command('./hello', '--no-color', '-v') 86 check_returncode(result) 87 if '☐' in result.stdout: 88 check_assert(result, result.stdout == '☐ You used -v you lucky person!\nℹ Hello, World, from cli.log.info!\nHello, World, from cli.echo!\n') 89 else: 90 check_assert(result, result.stdout == 'DEBUG You used -v you lucky person!\nINFO Hello, World, from cli.log.info!\nHello, World, from cli.echo!\n') 91 92 93 def test_hello_no_color_no_unicode_verbose(): 94 result = check_command('./hello', '--no-color', '--no-unicode', '-v') 95 check_returncode(result) 96 check_assert(result, result.stdout == 'DEBUG You used -v you lucky person!\nINFO Hello, World, from cli.log.info!\nHello, World, from cli.echo!\n')