forked from pool/python-vim-vint
165 lines
6.0 KiB
Diff
165 lines
6.0 KiB
Diff
![]() |
From e02e67ddfbeebb76dafeff684e261873423b21f2 Mon Sep 17 00:00:00 2001
|
||
|
From: John Vandenberg <jayvdb@gmail.com>
|
||
|
Date: Mon, 25 Feb 2019 09:06:03 +0700
|
||
|
Subject: [PATCH] Create vint.__main__
|
||
|
|
||
|
Allow vint to be run using python -m vint, which
|
||
|
allows the CLI tests to run without the bin/vint,
|
||
|
and without vint being installed.
|
||
|
---
|
||
|
test/acceptance/test_cli.py | 21 +++++++++++----------
|
||
|
test/acceptance/test_cli_vital.py | 4 +++-
|
||
|
vint/__main__.py | 15 +++++++++++++++
|
||
|
3 files changed, 29 insertions(+), 11 deletions(-)
|
||
|
create mode 100644 vint/__main__.py
|
||
|
|
||
|
diff --git a/test/acceptance/test_cli.py b/test/acceptance/test_cli.py
|
||
|
index 46d639b..b20a587 100644
|
||
|
--- a/test/acceptance/test_cli.py
|
||
|
+++ b/test/acceptance/test_cli.py
|
||
|
@@ -2,6 +2,7 @@
|
||
|
from pathlib import Path
|
||
|
import json
|
||
|
import subprocess
|
||
|
+import sys
|
||
|
|
||
|
|
||
|
class TestCLI(unittest.TestCase):
|
||
|
@@ -16,7 +17,7 @@ def assertRegex(self, string, pattern):
|
||
|
|
||
|
def assertReturnedStdoutEqual(self, expected_stdout, cmd):
|
||
|
got_stdout = '(no stdout)'
|
||
|
-
|
||
|
+ cmd = [sys.executable, '-m'] + cmd
|
||
|
try:
|
||
|
got_stdout = subprocess.check_output(cmd, universal_newlines=True)
|
||
|
except subprocess.CalledProcessError as err:
|
||
|
@@ -29,7 +30,7 @@ def assertReturnedStdoutEqual(self, expected_stdout, cmd):
|
||
|
|
||
|
def test_exec_vint_with_valid_file_on_project_root(self):
|
||
|
valid_file = str(Path('test', 'fixture', 'cli', 'valid1.vim'))
|
||
|
- cmd = ['bin/vint', valid_file]
|
||
|
+ cmd = ['vint', valid_file]
|
||
|
|
||
|
expected_output = ''
|
||
|
|
||
|
@@ -38,7 +39,7 @@ def test_exec_vint_with_valid_file_on_project_root(self):
|
||
|
|
||
|
def test_exec_vint_with_valid_file_encoded_cp932_on_project_root(self):
|
||
|
valid_file = str(Path('test', 'fixture', 'cli', 'valid-cp932.vim'))
|
||
|
- cmd = ['bin/vint', valid_file]
|
||
|
+ cmd = ['vint', valid_file]
|
||
|
|
||
|
expected_output = ''
|
||
|
|
||
|
@@ -47,7 +48,7 @@ def test_exec_vint_with_valid_file_encoded_cp932_on_project_root(self):
|
||
|
|
||
|
def test_exec_vint_with_invalid_file_on_project_root(self):
|
||
|
invalid_file = str(Path('test', 'fixture', 'cli', 'invalid1.vim'))
|
||
|
- cmd = ['bin/vint', invalid_file]
|
||
|
+ cmd = [sys.executable, '-m', 'vint', invalid_file]
|
||
|
|
||
|
with self.assertRaises(subprocess.CalledProcessError) as context_manager:
|
||
|
subprocess.check_output(cmd, universal_newlines=True)
|
||
|
@@ -59,7 +60,7 @@ def test_exec_vint_with_invalid_file_on_project_root(self):
|
||
|
|
||
|
|
||
|
def test_exec_vint_with_no_args(self):
|
||
|
- cmd = ['bin/vint']
|
||
|
+ cmd = [sys.executable, '-m', 'vint']
|
||
|
|
||
|
with self.assertRaises(subprocess.CalledProcessError) as context_manager:
|
||
|
subprocess.check_output(cmd,
|
||
|
@@ -73,7 +74,7 @@ def test_exec_vint_with_no_args(self):
|
||
|
|
||
|
|
||
|
def test_exec_vint_with_unexistent_file(self):
|
||
|
- cmd = ['bin/vint', '/path/to/unexistent']
|
||
|
+ cmd = [sys.executable, '-m', 'vint', '/path/to/unexistent']
|
||
|
|
||
|
with self.assertRaises(subprocess.CalledProcessError) as context_manager:
|
||
|
subprocess.check_output(cmd,
|
||
|
@@ -88,7 +89,7 @@ def test_exec_vint_with_unexistent_file(self):
|
||
|
|
||
|
def test_exec_vint_with_stat_flag(self):
|
||
|
invalid_file = str(Path('test', 'fixture', 'cli', 'invalid1.vim'))
|
||
|
- cmd = ['bin/vint', '--stat', invalid_file]
|
||
|
+ cmd = [sys.executable, '-m', 'vint', '--stat', invalid_file]
|
||
|
|
||
|
with self.assertRaises(subprocess.CalledProcessError) as context_manager:
|
||
|
subprocess.check_output(cmd,
|
||
|
@@ -105,7 +106,7 @@ def test_exec_vint_with_stat_flag(self):
|
||
|
|
||
|
def test_exec_vint_with_json_flag(self):
|
||
|
invalid_file = str(Path('test', 'fixture', 'cli', 'invalid1.vim'))
|
||
|
- cmd = ['bin/vint', '--json', invalid_file]
|
||
|
+ cmd = [sys.executable, '-m', 'vint', '--json', invalid_file]
|
||
|
|
||
|
with self.assertRaises(subprocess.CalledProcessError) as context_manager:
|
||
|
# We should not capture STRERR because coverage plugin use it.
|
||
|
@@ -120,7 +121,7 @@ def test_exec_vint_with_json_flag(self):
|
||
|
|
||
|
def test_exec_vint_with_verbose_flag(self):
|
||
|
valid_file = str(Path('test', 'fixture', 'cli', 'valid1.vim'))
|
||
|
- cmd = ['bin/vint', '--verbose', valid_file]
|
||
|
+ cmd = [sys.executable, '-m', 'vint', '--verbose', valid_file]
|
||
|
|
||
|
got_output = subprocess.check_output(cmd,
|
||
|
universal_newlines=True,
|
||
|
@@ -133,7 +134,7 @@ def test_exec_vint_with_verbose_flag(self):
|
||
|
@unittest.skip('Does drone.io not like ANSI color?')
|
||
|
def test_exec_vint_with_color_flag(self):
|
||
|
invalid_file = str(Path('test', 'fixture', 'cli', 'invalid1.vim'))
|
||
|
- cmd = ['bin/vint', '--color', invalid_file]
|
||
|
+ cmd = [sys.executable, '-m', 'vint', '--color', invalid_file]
|
||
|
|
||
|
with self.assertRaises(subprocess.CalledProcessError) as context_manager:
|
||
|
subprocess.check_output(cmd, universal_newlines=True)
|
||
|
diff --git a/test/acceptance/test_cli_vital.py b/test/acceptance/test_cli_vital.py
|
||
|
index f8bca7d..151ade3 100644
|
||
|
--- a/test/acceptance/test_cli_vital.py
|
||
|
+++ b/test/acceptance/test_cli_vital.py
|
||
|
@@ -1,10 +1,12 @@
|
||
|
import unittest
|
||
|
from pathlib import Path
|
||
|
import subprocess
|
||
|
+import sys
|
||
|
|
||
|
|
||
|
class TestVintDoNotDiedWhenLintingVital(unittest.TestCase):
|
||
|
def assertVintStillAlive(self, cmd):
|
||
|
+ cmd = [sys.executable, '-m'] + cmd
|
||
|
try:
|
||
|
got_output = subprocess.check_output(cmd,
|
||
|
stderr=subprocess.STDOUT,
|
||
|
@@ -19,7 +21,7 @@ def assertVintStillAlive(self, cmd):
|
||
|
|
||
|
def test_survive_after_linting(self):
|
||
|
vital_dir = str(Path('test', 'fixture', 'cli', 'vital.vim'))
|
||
|
- cmd = ['bin/vint', vital_dir]
|
||
|
+ cmd = ['vint', vital_dir]
|
||
|
|
||
|
self.assertVintStillAlive(cmd)
|
||
|
|
||
|
diff --git a/vint/__main__.py b/vint/__main__.py
|
||
|
new file mode 100644
|
||
|
index 0000000..11f9c87
|
||
|
--- /dev/null
|
||
|
+++ b/vint/__main__.py
|
||
|
@@ -0,0 +1,15 @@
|
||
|
+from vint.bootstrap import (
|
||
|
+ init_logger,
|
||
|
+ init_linter,
|
||
|
+ init_cli,
|
||
|
+)
|
||
|
+
|
||
|
+
|
||
|
+def main():
|
||
|
+ init_logger()
|
||
|
+ init_linter()
|
||
|
+ init_cli()
|
||
|
+
|
||
|
+
|
||
|
+if __name__ == '__main__':
|
||
|
+ main()
|