mirror of
https://github.com/lilydjwg/nvchecker.git
synced 2025-03-10 06:14:02 +00:00
tests: add a needs_net mark for tests that require Internet access
use pytest-httpbin for test_regex closes #113
This commit is contained in:
parent
484778218d
commit
6f48b774ae
20 changed files with 44 additions and 26 deletions
1
setup.py
1
setup.py
|
@ -28,6 +28,7 @@ setup(
|
|||
tests_require = [
|
||||
'pytest',
|
||||
'pytest-asyncio',
|
||||
'pytest-httpbin',
|
||||
'flaky',
|
||||
],
|
||||
entry_points = {
|
||||
|
|
|
@ -70,3 +70,9 @@ def raise_on_logger_msg():
|
|||
return event_dict['event']
|
||||
|
||||
structlog.configure([proc])
|
||||
|
||||
def pytest_configure(config):
|
||||
# register an additional marker
|
||||
config.addinivalue_line(
|
||||
'markers', 'needs_net: mark test to require Internet access',
|
||||
)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (c) 2017 Yen Chi Hsuan <yan12125 at gmail dot com>
|
||||
|
||||
import pytest
|
||||
pytestmark = pytest.mark.asyncio
|
||||
pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
|
||||
|
||||
async def test_android_addon(get_version):
|
||||
assert await get_version("android-google-play-apk-expansion", {"android_sdk": "extras;google;market_apk_expansion", "repo": "addon"}) == "1.r03"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (c) 2017 Felix Yan <felixonmars@archlinux.org>, et al.
|
||||
|
||||
import pytest
|
||||
pytestmark = pytest.mark.asyncio
|
||||
pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
|
||||
|
||||
async def test_anitya(get_version):
|
||||
assert await get_version("shutter", {"anitya": "fedora/shutter"}) == "0.94.3"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
from flaky import flaky
|
||||
import pytest
|
||||
pytestmark = pytest.mark.asyncio
|
||||
pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
|
||||
|
||||
@flaky
|
||||
async def test_archpkg(get_version):
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
from flaky import flaky
|
||||
import pytest
|
||||
pytestmark = pytest.mark.asyncio
|
||||
pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
|
||||
|
||||
@flaky(max_runs=10)
|
||||
async def test_aur(get_version):
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (c) 2013-2017 lilydjwg <lilydjwg@gmail.com>, et al.
|
||||
|
||||
import pytest
|
||||
pytestmark = pytest.mark.asyncio
|
||||
pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
|
||||
|
||||
async def test_bitbucket(get_version):
|
||||
assert await get_version("example", {"bitbucket": "prawee/git-tag"}) == "20150303"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (c) 2013-2017 lilydjwg <lilydjwg@gmail.com>, et al.
|
||||
|
||||
import pytest
|
||||
pytestmark = pytest.mark.asyncio
|
||||
pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
|
||||
|
||||
async def test_cpan(get_version):
|
||||
assert await get_version("POE-Component-Server-HTTPServer", {"cpan": None}) == "0.9.2"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (c) 2013-2017 lilydjwg <lilydjwg@gmail.com>, et al.
|
||||
|
||||
import pytest
|
||||
pytestmark = pytest.mark.asyncio
|
||||
pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
|
||||
|
||||
async def test_cratesio(get_version):
|
||||
assert await get_version("example", {"cratesio": None}) == "0.1.0"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
from flaky import flaky
|
||||
import pytest
|
||||
pytestmark = pytest.mark.asyncio
|
||||
pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
|
||||
|
||||
@flaky(max_runs=10)
|
||||
async def test_debianpkg(get_version):
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (c) 2013-2017 lilydjwg <lilydjwg@gmail.com>, et al.
|
||||
|
||||
import pytest
|
||||
pytestmark = pytest.mark.asyncio
|
||||
pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
|
||||
|
||||
async def test_gems(get_version):
|
||||
assert await get_version("example", {"gems": None}) == "1.0.2"
|
||||
|
|
|
@ -5,6 +5,7 @@ import os
|
|||
import re
|
||||
import pytest
|
||||
pytestmark = [pytest.mark.asyncio,
|
||||
pytest.mark.needs_net,
|
||||
pytest.mark.skipif("NVCHECKER_GITHUB_TOKEN" not in os.environ,
|
||||
reason="requires NVCHECKER_GITHUB_TOKEN, or it fails too much")]
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
import os
|
||||
import pytest
|
||||
pytestmark = [pytest.mark.asyncio,
|
||||
pytest.mark.needs_net,
|
||||
pytest.mark.skipif("NVCHECKER_GITLAB_TOKEN_GITLAB_COM" not in os.environ,
|
||||
reason="requires NVCHECKER_GITLAB_TOKEN_GITLAB_COM")]
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ import os
|
|||
import pytest
|
||||
import contextlib
|
||||
pytestmark = [pytest.mark.asyncio,
|
||||
pytest.mark.needs_net,
|
||||
pytest.mark.skipif(os.environ.get('TRAVIS') == 'true',
|
||||
reason="rate-limited per IP")]
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (c) 2013-2017 lilydjwg <lilydjwg@gmail.com>, et al.
|
||||
|
||||
import pytest
|
||||
pytestmark = pytest.mark.asyncio
|
||||
pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
|
||||
|
||||
async def test_hackage(get_version):
|
||||
assert await get_version("sessions", {"hackage": None}) == "2008.7.18"
|
||||
|
|
|
@ -8,7 +8,7 @@ import contextlib
|
|||
from nvchecker.source import HTTPError
|
||||
|
||||
import pytest
|
||||
pytestmark = [pytest.mark.asyncio]
|
||||
pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
|
||||
|
||||
@contextlib.contextmanager
|
||||
def unset_github_token_env():
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (c) 2013-2017 lilydjwg <lilydjwg@gmail.com>, et al.
|
||||
|
||||
import pytest
|
||||
pytestmark = pytest.mark.asyncio
|
||||
pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
|
||||
|
||||
async def test_npm(get_version):
|
||||
assert await get_version("example", {"npm": None}) == "0.0.0"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (c) 2013-2017 lilydjwg <lilydjwg@gmail.com>, et al.
|
||||
|
||||
import pytest
|
||||
pytestmark = pytest.mark.asyncio
|
||||
pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
|
||||
|
||||
async def test_packagist(get_version):
|
||||
assert await get_version("butterfly/example-web-application", {"packagist": None}) == "1.2.0"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (c) 2013-2017 lilydjwg <lilydjwg@gmail.com>, et al.
|
||||
|
||||
import pytest
|
||||
pytestmark = pytest.mark.asyncio
|
||||
pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
|
||||
|
||||
async def test_pypi(get_version):
|
||||
assert await get_version("example", {"pypi": None}) == "0.1.0"
|
||||
|
|
|
@ -1,32 +1,40 @@
|
|||
# MIT licensed
|
||||
# Copyright (c) 2013-2019 lilydjwg <lilydjwg@gmail.com>, et al.
|
||||
|
||||
import base64
|
||||
|
||||
import pytest
|
||||
import pytest_httpbin
|
||||
assert pytest_httpbin # for pyflakes
|
||||
|
||||
pytestmark = pytest.mark.asyncio
|
||||
|
||||
async def test_regex_httpbin_default_user_agent(get_version):
|
||||
def base64_encode(s):
|
||||
return base64.b64encode(s.encode('utf-8')).decode('ascii')
|
||||
|
||||
async def test_regex_httpbin_default_user_agent(get_version, httpbin):
|
||||
ua = await get_version("example", {
|
||||
"url": "https://httpbin.org/get",
|
||||
"regex": r'"User-Agent": "([^"]+)"',
|
||||
"url": httpbin.url + "/get",
|
||||
"regex": r'"User-Agent":\s*"([^"]+)"',
|
||||
})
|
||||
assert ua.startswith("lilydjwg/nvchecker")
|
||||
|
||||
async def test_regex_httpbin_user_agent(get_version):
|
||||
async def test_regex_httpbin_user_agent(get_version, httpbin):
|
||||
assert await get_version("example", {
|
||||
"url": "https://httpbin.org/get",
|
||||
"regex": r'"User-Agent": "(\w+)"',
|
||||
"url": httpbin.url + "/get",
|
||||
"regex": r'"User-Agent":\s*"(\w+)"',
|
||||
"user_agent": "Meow",
|
||||
}) == "Meow"
|
||||
|
||||
async def test_regex(get_version):
|
||||
async def test_regex(get_version, httpbin):
|
||||
assert await get_version("example", {
|
||||
"url": "http://example.net/",
|
||||
"regex": r'for (\w+) examples',
|
||||
}) == "illustrative"
|
||||
"url": httpbin.url + "/base64/" + base64_encode("version 1.12 released"),
|
||||
"regex": r'version ([0-9.]+)',
|
||||
}) == "1.12"
|
||||
|
||||
async def test_missing_ok(get_version):
|
||||
async def test_missing_ok(get_version, httpbin):
|
||||
assert await get_version("example", {
|
||||
"url": "http://example.net/",
|
||||
"url": httpbin.url + "/base64/" + base64_encode("something not there"),
|
||||
"regex": "foobar",
|
||||
"missing_ok": True,
|
||||
}) is None
|
||||
|
|
Loading…
Add table
Reference in a new issue