mirror of
https://github.com/infeeeee/dyn2py
synced 2025-12-16 22:16:18 +01:00
Tests on Windows, better exception handling
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import unittest
|
||||
import subprocess
|
||||
import platform
|
||||
|
||||
|
||||
class TestCommandLine(unittest.TestCase):
|
||||
@@ -12,20 +13,30 @@ class TestCommandLine(unittest.TestCase):
|
||||
is_help_line = False
|
||||
|
||||
for line in readme.readlines():
|
||||
if line == "> dyn2py --help":
|
||||
line_text = line.rstrip()
|
||||
|
||||
if line_text == "> dyn2py --help":
|
||||
is_help_line = True
|
||||
elif is_help_line and line == "```":
|
||||
elif is_help_line and line_text == "```":
|
||||
# It's the end of the help
|
||||
break
|
||||
elif is_help_line:
|
||||
readme_help_lines.append(line)
|
||||
readme_help_lines.append(line_text)
|
||||
|
||||
for arg in args:
|
||||
p = subprocess.run(
|
||||
["dyn2py", arg], capture_output=True, shell=True)
|
||||
output_help = p.stdout.decode()
|
||||
output_help_lines = output_help.split("\n")
|
||||
# Check if readme was read at all:
|
||||
self.assertTrue(readme_help_lines)
|
||||
|
||||
self.assertEqual(output_help.count("\n"), len(readme_help_lines))
|
||||
for i, l in enumerate(readme_help_lines):
|
||||
self.assertEqual(l, output_help_lines[i])
|
||||
# Cannot set terminal columns on windows, so simply skip this:
|
||||
if not platform.system() == "Windows":
|
||||
for arg in args:
|
||||
p = subprocess.run(
|
||||
["dyn2py", arg], capture_output=True, shell=True)
|
||||
output_help = p.stdout.decode()
|
||||
output_help_lines = output_help.split("\n")
|
||||
|
||||
self.assertEqual(
|
||||
output_help.count("\n"),
|
||||
len(readme_help_lines))
|
||||
|
||||
for i, l in enumerate(readme_help_lines):
|
||||
self.assertEqual(l, output_help_lines[i])
|
||||
|
||||
Reference in New Issue
Block a user