/ tests / test_script_hello.py
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')