diff --git a/flake8_html/plugin.py b/flake8_html/plugin.py
index b4f0b1c..80a6a87 100644
--- a/flake8_html/plugin.py
+++ b/flake8_html/plugin.py
@@ -17,6 +17,7 @@
from operator import attrgetter
from collections import namedtuple, Counter
+import flake8
from pygments import highlight
from collections import defaultdict
from pygments.lexers import PythonLexer
@@ -278,7 +279,7 @@ def write_index(self):
key=lambda e: (e.highest_sev, -e.error_count)
),
now=datetime.datetime.now(),
- versions=self.option_manager.generate_versions(),
+ versions=self._get_plugin_version_summary(),
highest_sev=highest_sev,
title=self.options.htmltitle,
)
@@ -286,6 +287,15 @@ def write_index(self):
with codecs.open(indexfile, 'w', encoding='utf8') as f:
f.write(rendered)
+ def _get_plugin_version_summary(self):
+ option_manager = self.option_manager
+ if flake8.__version_info__ < (5, 0, 0):
+ return option_manager.generate_versions()
+ else:
+ # Below return info prefixed with "Installed with:". This is different from
+ # option_manager.generate_versions() but using this as it is a cleaner way
+ return option_manager.parser.epilog
+
@classmethod
def add_options(cls, options):
"""Add a --htmldir option to the OptionsManager."""
diff --git a/tests/test_flake8_html.py b/tests/test_flake8_html.py
index b544758..fdac39a 100644
--- a/tests/test_flake8_html.py
+++ b/tests/test_flake8_html.py
@@ -7,6 +7,7 @@
import shutil
import contextlib
+import flake8
import pytest
from flake8.main.cli import main
@@ -50,7 +51,10 @@ 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), pytest.raises(SystemExit) as excinfo:
- main(['--exit-zero', '--format=html', '--htmldir=%s' % tmpdir, '.'])
+ code = main(['--exit-zero', '--format=html', '--htmldir=%s' % tmpdir, '.'])
+ # earlier flake8 version were raising the SystemExit, now raise it explicitly to cover recent versions too
+ if flake8.__version_info__ >= (5, 0, 0):
+ raise SystemExit(code)
assert excinfo.value.code == 0
names = ('index.html', 'styles.css', 'bad.report.html', 'bad.source.html')
written = os.listdir(str(tmpdir))