mirror of https://github.com/MagicStack/uvloop.git
73 lines
2.3 KiB
Python
73 lines
2.3 KiB
Python
import os
|
|
import subprocess
|
|
import sys
|
|
import unittest
|
|
|
|
|
|
def find_uvloop_root():
|
|
return os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
|
|
class TestSourceCode(unittest.TestCase):
|
|
|
|
def test_flake8(self):
|
|
edgepath = find_uvloop_root()
|
|
config_path = os.path.join(edgepath, '.flake8')
|
|
if not os.path.exists(config_path):
|
|
raise RuntimeError('could not locate .flake8 file')
|
|
|
|
try:
|
|
import flake8 # NoQA
|
|
except ImportError:
|
|
raise unittest.SkipTest('flake8 module is missing')
|
|
|
|
for subdir in ['examples', 'uvloop', 'tests']:
|
|
try:
|
|
subprocess.run(
|
|
[sys.executable, '-m', 'flake8', '--config', config_path],
|
|
check=True,
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.PIPE,
|
|
cwd=os.path.join(edgepath, subdir))
|
|
except subprocess.CalledProcessError as ex:
|
|
output = ex.stdout.decode()
|
|
output += '\n'
|
|
output += ex.stderr.decode()
|
|
raise AssertionError(
|
|
'flake8 validation failed: {}\n{}'.format(ex, output)
|
|
) from None
|
|
|
|
def test_mypy(self):
|
|
edgepath = find_uvloop_root()
|
|
config_path = os.path.join(edgepath, 'mypy.ini')
|
|
if not os.path.exists(config_path):
|
|
raise RuntimeError('could not locate mypy.ini file')
|
|
|
|
try:
|
|
import mypy # NoQA
|
|
except ImportError:
|
|
raise unittest.SkipTest('mypy module is missing')
|
|
|
|
try:
|
|
subprocess.run(
|
|
[
|
|
sys.executable,
|
|
'-m',
|
|
'mypy',
|
|
'--config-file',
|
|
config_path,
|
|
'uvloop'
|
|
],
|
|
check=True,
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.PIPE,
|
|
cwd=edgepath
|
|
)
|
|
except subprocess.CalledProcessError as ex:
|
|
output = ex.stdout.decode()
|
|
output += '\n'
|
|
output += ex.stderr.decode()
|
|
raise AssertionError(
|
|
'mypy validation failed: {}\n{}'.format(ex, output)
|
|
) from None
|