diff --git a/flake8_html/plugin.py b/flake8_html/plugin.py index b208a81..0866513 100644 --- a/flake8_html/plugin.py +++ b/flake8_html/plugin.py @@ -13,6 +13,7 @@ import codecs import datetime import pkgutil +import sys from operator import attrgetter from collections import namedtuple, Counter @@ -24,6 +25,11 @@ from flake8.formatting import base from jinja2 import Environment, PackageLoader, Markup +if sys.version_info >= (3, 8): + import importlib.metadata as importlib_metadata +else: + import importlib_metadata + jinja2_env = Environment( loader=PackageLoader('flake8_html') @@ -67,6 +73,9 @@ def find_severity(code): class HTMLPlugin(base.BaseFormatter): """A plugin for flake8 to render errors as HTML reports.""" + name = 'flake8-html' + version = importlib_metadata.version('flake8-html') + def after_init(self): """Configure the plugin run.""" self.report_template = jinja2_env.get_template('file-report.html') diff --git a/setup.py b/setup.py index b6dc0eb..b1659db 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,8 @@ requirements = [ 'jinja2>=2.9.0', 'pygments>=2.2.0', - 'flake8>=3.3.0' + 'flake8>=3.3.0', + 'importlib-metadata;python_version<"3.8"', ] test_requirements = [ diff --git a/tests/test_flake8_html.py b/tests/test_flake8_html.py index df6d4bb..b544758 100644 --- a/tests/test_flake8_html.py +++ b/tests/test_flake8_html.py @@ -49,8 +49,9 @@ def chdir(dest): def test_report(bad_sourcedir, tmpdir): """Test that a report on a bad file creates the expected files.""" - with chdir(bad_sourcedir): + with chdir(bad_sourcedir), pytest.raises(SystemExit) as excinfo: main(['--exit-zero', '--format=html', '--htmldir=%s' % tmpdir, '.']) + assert excinfo.value.code == 0 names = ('index.html', 'styles.css', 'bad.report.html', 'bad.source.html') written = os.listdir(str(tmpdir)) for n in names: