Blame tests/test_data_fetch.py

Packit Service 39273c
import tempfile
Packit Service 39273c
import filecmp
Packit Service 39273c
import contextlib
Packit Service 39273c
import pathlib
Packit Service 39273c
import sys
Packit Service 39273c
import subprocess
Packit Service 39273c
import time
Packit Service 39273c
Packit Service 39273c
from org_fedora_oscap import data_fetch
Packit Service 39273c
Packit Service 39273c
Packit Service 39273c
PORT = 8001
Packit Service 39273c
Packit Service 39273c
Packit Service 39273c
@contextlib.contextmanager
Packit Service 39273c
def serve_directory_in_separate_process(port):
Packit Service 39273c
    args = [sys.executable, "-m", "http.server", str(port)]
Packit Service 39273c
    proc = subprocess.Popen(
Packit Service 39273c
        args,
Packit Service 39273c
        stdout=subprocess.DEVNULL,
Packit Service 39273c
        stderr=subprocess.DEVNULL)
Packit Service 39273c
    # give the server some time to start
Packit Service 39273c
    time.sleep(0.4)
Packit Service 39273c
    yield
Packit Service 39273c
    proc.terminate()
Packit Service 39273c
    proc.wait()
Packit Service 39273c
Packit Service 39273c
Packit Service 39273c
def test_file_retreival():
Packit Service 39273c
    filename_to_test = pathlib.Path(__file__)
Packit Service 39273c
    relative_filename_to_test = filename_to_test.relative_to(pathlib.Path.cwd())
Packit Service 39273c
Packit Service 39273c
    temp_file = tempfile.NamedTemporaryFile()
Packit Service 39273c
    temp_filename = temp_file.name
Packit Service 39273c
Packit Service 39273c
    with serve_directory_in_separate_process(PORT):
Packit Service 39273c
        data_fetch._curl_fetch(
Packit Service 39273c
            "http://localhost:{}/{}".format(PORT, relative_filename_to_test), temp_filename)
Packit Service 39273c
Packit Service 39273c
    assert filecmp.cmp(relative_filename_to_test, temp_filename)
Packit Service 39273c
Packit Service 39273c
Packit Service 39273c
def test_supported_url():
Packit Service 39273c
    assert data_fetch.can_fetch_from("http://example.com")
Packit Service 39273c
    assert data_fetch.can_fetch_from("https://example.com")
Packit Service 39273c
Packit Service 39273c
Packit Service 39273c
def test_unsupported_url():
Packit Service 39273c
    assert not data_fetch.can_fetch_from("aaaaa")