test_list.py 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import json
  2. from .fixtures import *
  3. def test_list_json(process, disable_extractors_dict):
  4. subprocess.run(["archivebox", "add", "http://127.0.0.1:8080/static/example.com.html", "--depth=0"],
  5. capture_output=True, env=disable_extractors_dict)
  6. list_process = subprocess.run(["archivebox", "list", "--json"], capture_output=True)
  7. output_json = json.loads(list_process.stdout.decode("utf-8"))
  8. assert output_json[0]["url"] == "http://127.0.0.1:8080/static/example.com.html"
  9. def test_list_json_headers(process, disable_extractors_dict):
  10. subprocess.run(["archivebox", "add", "http://127.0.0.1:8080/static/example.com.html", "--depth=0"],
  11. capture_output=True, env=disable_extractors_dict)
  12. list_process = subprocess.run(["archivebox", "list", "--json", "--with-headers"], capture_output=True)
  13. output_json = json.loads(list_process.stdout.decode("utf-8"))
  14. assert output_json["links"][0]["url"] == "http://127.0.0.1:8080/static/example.com.html"
  15. def test_list_html(process, disable_extractors_dict):
  16. subprocess.run(["archivebox", "add", "http://127.0.0.1:8080/static/example.com.html", "--depth=0"],
  17. capture_output=True, env=disable_extractors_dict)
  18. list_process = subprocess.run(["archivebox", "list", "--html"], capture_output=True)
  19. output_html = list_process.stdout.decode("utf-8")
  20. assert "<footer>" not in output_html
  21. assert "http://127.0.0.1:8080/static/example.com.html" in output_html
  22. def test_list_html_headers(process, disable_extractors_dict):
  23. subprocess.run(["archivebox", "add", "http://127.0.0.1:8080/static/example.com.html", "--depth=0"],
  24. capture_output=True, env=disable_extractors_dict)
  25. list_process = subprocess.run(["archivebox", "list", "--html", "--with-headers"], capture_output=True)
  26. output_html = list_process.stdout.decode("utf-8")
  27. assert "<footer>" in output_html
  28. assert "http://127.0.0.1:8080/static/example.com.html" in output_html
  29. def test_list_csv(process, disable_extractors_dict):
  30. subprocess.run(["archivebox", "add", "http://127.0.0.1:8080/static/example.com.html", "--depth=0"],
  31. capture_output=True, env=disable_extractors_dict)
  32. list_process = subprocess.run(["archivebox", "list", "--csv", "url"], capture_output=True)
  33. output_csv = list_process.stdout.decode("utf-8")
  34. assert "http://127.0.0.1:8080/static/example.com.html" in output_csv
  35. def test_list_csv_headers(process, disable_extractors_dict):
  36. subprocess.run(["archivebox", "add", "http://127.0.0.1:8080/static/example.com.html", "--depth=0"],
  37. capture_output=True, env=disable_extractors_dict)
  38. list_process = subprocess.run(["archivebox", "list", "--csv", "url", "--with-headers"], capture_output=True)
  39. output_csv = list_process.stdout.decode("utf-8")
  40. assert "http://127.0.0.1:8080/static/example.com.html" in output_csv
  41. assert "url" in output_csv
  42. def test_list_index_with_wrong_flags(process):
  43. list_process = subprocess.run(["archivebox", "list", "--with-headers"], capture_output=True)
  44. assert "--with-headers can only be used with --json, --html or --csv options" in list_process.stderr.decode("utf-8")
  45. def test_link_sort_by_url(process, disable_extractors_dict):
  46. subprocess.run(["archivebox", "add", "http://127.0.0.1:8080/static/iana.org.html", "--depth=0"],
  47. capture_output=True, env=disable_extractors_dict)
  48. subprocess.run(["archivebox", "add", "http://127.0.0.1:8080/static/example.com.html", "--depth=0"],
  49. capture_output=True, env=disable_extractors_dict)
  50. list_process = subprocess.run(["archivebox", "list"], capture_output=True)
  51. link_list = list_process.stdout.decode("utf-8").split("\n")
  52. assert "http://127.0.0.1:8080/static/iana.org.html" in link_list[0]
  53. list_process = subprocess.run(["archivebox", "list", "--sort=url"], capture_output=True)
  54. link_list = list_process.stdout.decode("utf-8").split("\n")
  55. assert "http://127.0.0.1:8080/static/example.com.html" in link_list[0]