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: