diff --git a/tester.py b/tester.py index 0a3d0cc31b53c0fd28626e396cdb0832431c56d0..3af48d9bbff0107a1b8c2b80d1f840ca84d4db1a 100755 --- a/tester.py +++ b/tester.py @@ -157,27 +157,30 @@ class Tester(): for name, description, command in tests: log('\033[1;95m-- Test "%s" --\033[0;0m' % name) # Run test - try: - p = subprocess.Popen(command, stdin=sys.stdin, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - out, err = p.communicate() - if out: - log(out.decode('utf-8').strip()) - if err: - log(err.decode('utf-8').strip()) - if p.returncode != 0: - raise Exception('Command exited with code %s.' % p.returncode) - except Exception as e: - exit_code = 1 - log(e) - results.append((name, description, command, False)) + p = subprocess.Popen(command, stdin=sys.stdin, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = p.communicate() + if out: + log(out.decode('utf-8').strip()) + if err: + log(err.decode('utf-8').strip()) + if p.returncode == 0: + success = True + elif p.returncode == 2: + success = None else: - results.append((name, description, command, True)) + success = False + exit_code = 1 + log('Command exited with code %s.' % p.returncode) + results.append((name, description, command, success)) # Display results log('\nTests results:') html_report = '<table border="1">' html_report += '\n<tr><th>Test</th><th>Result</th><th>Description</th></tr>' for name, description, command, success in results: - if success: + if success is None: + html_result = '<span style="color: blue;">not testable</span>' + term_result = '\033[94mnot testable\033[0m' + elif success: html_result = '<span style="color: green;">success</span>' term_result = '\033[92msuccess\033[0m' else: