diff --git a/nvchecker_source/go.py b/nvchecker_source/go.py index 00a017b..7ddfa5c 100644 --- a/nvchecker_source/go.py +++ b/nvchecker_source/go.py @@ -4,33 +4,33 @@ from lxml import html from nvchecker.api import ( - VersionResult, Entry, AsyncCache, KeyManager, - session, GetVersionError, HTTPError + VersionResult, Entry, AsyncCache, KeyManager, + session, GetVersionError, ) GO_PKG_URL = 'https://pkg.go.dev/{pkg}?tab=versions' async def get_version( - name: str, conf: Entry, *, - cache: AsyncCache, keymanager: KeyManager, - **kwargs, + name: str, conf: Entry, *, + cache: AsyncCache, keymanager: KeyManager, + **kwargs, ) -> VersionResult: - key = tuple(sorted(conf.items())) - return await cache.get(key, get_version_impl) + key = tuple(sorted(conf.items())) + return await cache.get(key, get_version_impl) async def get_version_impl(info) -> VersionResult: - conf = dict(info) - pkg_name = conf.get('go') + conf = dict(info) + pkg_name = conf.get('go') - url = GO_PKG_URL.format(pkg=pkg_name) - res = await session.get(url) - doc = html.fromstring(res.body.decode()) + url = GO_PKG_URL.format(pkg=pkg_name) + res = await session.get(url) + doc = html.fromstring(res.body.decode()) - elements = doc.xpath("//div[@class='Version-tag']/a/text()") - try: - version = elements[0] - return version - except IndexError: - raise GetVersionError("parse error", pkg_name=pkg_name) + elements = doc.xpath("//div[@class='Version-tag']/a/text()") + try: + version = elements[0] + return version + except IndexError: + raise GetVersionError("parse error", pkg_name=pkg_name) diff --git a/tests/test_go.py b/tests/test_go.py index b0d39aa..9b9b348 100644 --- a/tests/test_go.py +++ b/tests/test_go.py @@ -5,32 +5,32 @@ import pytest from nvchecker.api import HTTPError -lxml_available = True try: - import lxml + import lxml + lxml_available = True except ImportError: - lxml_available = False + lxml_available = False pytestmark = [ - pytest.mark.asyncio(scope="session"), - pytest.mark.needs_net, - pytest.mark.skipif(not lxml_available, reason="needs lxml") + pytest.mark.asyncio(scope="session"), + pytest.mark.needs_net, + pytest.mark.skipif(not lxml_available, reason="needs lxml") ] async def test_go(get_version): - assert await get_version("one version", { - "source": "go", - "go": "github.com/caddyserver/replace-response", - }) == "v0.0.0-20231221003037-a85d4ddc11d6" + assert await get_version("one version", { + "source": "go", + "go": "github.com/caddyserver/replace-response", + }) == "v0.0.0-20231221003037-a85d4ddc11d6" - assert await get_version("multiple version", { - "source": "go", - "go": "github.com/corazawaf/coraza-caddy", - }) == "v1.2.2" + assert await get_version("multiple version", { + "source": "go", + "go": "github.com/corazawaf/coraza-caddy", + }) == "v1.2.2" - with pytest.raises(HTTPError): - await get_version("not found", { - "source": "go", - "go": "github.com/asdas/sadfasdf", - }) + with pytest.raises(HTTPError): + await get_version("not found", { + "source": "go", + "go": "github.com/asdas/sadfasdf", + })