mirror of
https://github.com/lilydjwg/nvchecker.git
synced 2025-03-10 06:14:02 +00:00
keyfile is not part of cache keys so the expectations are wrong. We don't make it part of cache keys because we don't expect keyfile to affect the version as long as we can get it.
77 lines
1.7 KiB
Python
77 lines
1.7 KiB
Python
# MIT licensed
|
|
# Copyright (c) 2018 lilydjwg <lilydjwg@gmail.com>, et al.
|
|
|
|
import os
|
|
import tempfile
|
|
import contextlib
|
|
|
|
from nvchecker.source import HTTPError
|
|
|
|
import pytest
|
|
pytestmark = [pytest.mark.asyncio]
|
|
|
|
@contextlib.contextmanager
|
|
def unset_github_token_env():
|
|
token = os.environ.get('NVCHECKER_GITHUB_TOKEN')
|
|
try:
|
|
if token:
|
|
del os.environ['NVCHECKER_GITHUB_TOKEN']
|
|
yield token
|
|
finally:
|
|
if token:
|
|
os.environ['NVCHECKER_GITHUB_TOKEN'] = token
|
|
|
|
async def test_keyfile_missing(run_source):
|
|
test_conf = '''\
|
|
[example]
|
|
github = harry-sanabria/ReleaseTestRepo
|
|
'''
|
|
|
|
assert await run_source(test_conf) in ['20140122.012101', None]
|
|
|
|
async def test_keyfile_invalid(run_source):
|
|
with tempfile.NamedTemporaryFile(mode='w') as f, \
|
|
unset_github_token_env():
|
|
f.write('''\
|
|
[keys]
|
|
github = xxx
|
|
''')
|
|
f.flush()
|
|
test_conf = '''\
|
|
[example]
|
|
github = harry-sanabria/ReleaseTestRepo
|
|
|
|
[__config__]
|
|
keyfile = {name}
|
|
'''.format(name=f.name)
|
|
|
|
try:
|
|
version = await run_source(test_conf, clear_cache=True)
|
|
assert version is None # out of allowance
|
|
return
|
|
except HTTPError as e:
|
|
assert e.code == 401
|
|
return
|
|
|
|
raise Exception('expected 401 response')
|
|
|
|
@pytest.mark.skipif('NVCHECKER_GITHUB_TOKEN' not in os.environ,
|
|
reason='no key given')
|
|
async def test_keyfile_valid(run_source):
|
|
with tempfile.NamedTemporaryFile(mode='w') as f, \
|
|
unset_github_token_env() as token:
|
|
f.write('''\
|
|
[keys]
|
|
github = {token}
|
|
'''.format(token=token))
|
|
f.flush()
|
|
|
|
test_conf = '''\
|
|
[example]
|
|
github = harry-sanabria/ReleaseTestRepo
|
|
|
|
[__config__]
|
|
keyfile = {name}
|
|
'''.format(name=f.name)
|
|
|
|
assert await run_source(test_conf) == '20140122.012101'
|