mirror of
https://github.com/release-engineering/repo-autoindex.git
synced 2025-02-23 13:42:52 +00:00
Raise coverage to 100%
This commit is contained in:
parent
730be77cf4
commit
f258eee451
2 changed files with 56 additions and 1 deletions
|
@ -28,7 +28,7 @@ async def test_command(monkeypatch: pytest.MonkeyPatch, tmp_path: pathlib.Path):
|
||||||
app.add_routes([web.static("/", THIS_DIR)])
|
app.add_routes([web.static("/", THIS_DIR)])
|
||||||
|
|
||||||
async with test_utils.TestServer(app) as server:
|
async with test_utils.TestServer(app) as server:
|
||||||
repo_url = server.make_url("/sample_repo")
|
repo_url = server.make_url("/sample_repo///")
|
||||||
monkeypatch.setattr("sys.argv", ["repo-autoindex", str(repo_url)])
|
monkeypatch.setattr("sys.argv", ["repo-autoindex", str(repo_url)])
|
||||||
|
|
||||||
entrypoint()
|
entrypoint()
|
||||||
|
|
55
tests/test_http_fetcher.py
Normal file
55
tests/test_http_fetcher.py
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
import gzip
|
||||||
|
import pytest
|
||||||
|
from aiohttp import web
|
||||||
|
from repo_autoindex._impl.api import http_fetcher
|
||||||
|
|
||||||
|
|
||||||
|
class FakeReader:
|
||||||
|
def __init__(self, body: bytes):
|
||||||
|
self.body = body
|
||||||
|
|
||||||
|
async def read(self):
|
||||||
|
return self.body
|
||||||
|
|
||||||
|
|
||||||
|
class FakeResponse:
|
||||||
|
def __init__(self, body: bytes, content_type: str):
|
||||||
|
self.body = body
|
||||||
|
self.content_type = content_type
|
||||||
|
|
||||||
|
async def __aenter__(self):
|
||||||
|
return self
|
||||||
|
|
||||||
|
async def __aexit__(self, *_):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def raise_for_status(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
@property
|
||||||
|
def content(self):
|
||||||
|
return FakeReader(self.body)
|
||||||
|
|
||||||
|
|
||||||
|
class FakeSession:
|
||||||
|
def __init__(self, body: bytes, content_type: str):
|
||||||
|
self.body = body
|
||||||
|
self.content_type = content_type
|
||||||
|
|
||||||
|
def get(self, url: str) -> FakeResponse:
|
||||||
|
return FakeResponse(self.body, self.content_type)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
"content_type", ["application/x-gzip", "application/octet-stream"]
|
||||||
|
)
|
||||||
|
async def test_http_fetcher_decompresses(content_type: str):
|
||||||
|
"""http_fetcher will decompress certain responses."""
|
||||||
|
text = "some text"
|
||||||
|
compressed = gzip.compress(text.encode("utf-8"))
|
||||||
|
|
||||||
|
session = FakeSession(body=compressed, content_type=content_type)
|
||||||
|
fetcher = http_fetcher(session)
|
||||||
|
|
||||||
|
response = await fetcher("/some/path.gz")
|
||||||
|
assert response == text
|
Loading…
Add table
Reference in a new issue