diff --git a/tests/mock_server/server.py b/tests/mock_server/server.py index 3bf1fe29..c819267c 100644 --- a/tests/mock_server/server.py +++ b/tests/mock_server/server.py @@ -2,7 +2,7 @@ from os.path import abspath from os import getcwd from pathlib import Path -from bottle import route, run, static_file +from bottle import route, run, static_file, response @route("/") def index(): @@ -21,5 +21,14 @@ def static_no_content_type(filename): response.set_header("Content-Type", "") return response +@route("/static/headers/") +def static_path_with_headers(filename): + template_path = abspath(getcwd()) / Path("tests/mock_server/templates") + response = static_file(filename, root=template_path) + response.add_header("Content-Language", "en") + response.add_header("Content-Script-Type", "text/javascript") + response.add_header("Content-Style-Type", "text/css") + return response + def start(): run(host='localhost', port=8080) \ No newline at end of file diff --git a/tests/test_extractors.py b/tests/test_extractors.py index 18c1b28e..24b750ed 100644 --- a/tests/test_extractors.py +++ b/tests/test_extractors.py @@ -1,4 +1,5 @@ from .fixtures import * +import json as pyjson from archivebox.extractors import ignore_methods, get_default_archive_methods, should_save_title def test_wget_broken_pipe(tmp_path, process, disable_extractors_dict): @@ -71,8 +72,14 @@ def test_use_node_false_disables_readability_and_singlefile(tmp_path, process, d assert "> readability" not in output_str def test_headers(tmp_path, process, disable_extractors_dict): - add_process = subprocess.run(['archivebox', 'add', 'http://127.0.0.1:8080/static/example.com.html'], + add_process = subprocess.run(['archivebox', 'add', 'http://127.0.0.1:8080/static/headers/example.com.html'], capture_output=True, env=disable_extractors_dict) archived_item_path = list(tmp_path.glob("archive/**/*"))[0] output_file = archived_item_path / "headers.json" - assert output_file.exists() \ No newline at end of file + assert output_file.exists() + headers_file = archived_item_path / 'headers.json' + with open(headers_file) as f: + headers = pyjson.load(f) + assert headers['Content-Language'] == 'en' + assert headers['Content-Script-Type'] == 'text/javascript' + assert headers['Content-Style-Type'] == 'text/css'