Files
ArchiveBox/tests/test_cli_oneshot.py
2025-12-29 04:02:11 -08:00

63 lines
1.7 KiB
Python

#!/usr/bin/env python3
"""
Tests for archivebox oneshot command.
Verify oneshot archives URL and exits.
"""
import os
import subprocess
import sqlite3
from pathlib import Path
from .fixtures import *
def test_oneshot_creates_temporary_collection(tmp_path, disable_extractors_dict):
"""Test that oneshot creates temporary collection."""
os.chdir(tmp_path)
result = subprocess.run(
['archivebox', 'oneshot', '--index-only', '--depth=0', 'https://example.com'],
capture_output=True,
env=disable_extractors_dict,
timeout=60,
)
# Should complete
assert result.returncode in [0, 1]
def test_oneshot_without_existing_collection(tmp_path, disable_extractors_dict):
"""Test oneshot works without pre-existing collection."""
empty_dir = tmp_path / "oneshot_test"
empty_dir.mkdir()
os.chdir(empty_dir)
result = subprocess.run(
['archivebox', 'oneshot', '--index-only', '--depth=0', 'https://example.com'],
capture_output=True,
env=disable_extractors_dict,
timeout=60,
)
# Should work even without init
assert result.returncode in [0, 1]
def test_oneshot_creates_archive_output(tmp_path, disable_extractors_dict):
"""Test that oneshot creates archive output."""
empty_dir = tmp_path / "oneshot_test2"
empty_dir.mkdir()
os.chdir(empty_dir)
result = subprocess.run(
['archivebox', 'oneshot', '--index-only', '--depth=0', 'https://example.com'],
capture_output=True,
env=disable_extractors_dict,
timeout=60,
)
# Oneshot may create archive directory
# Check if any output was created
assert result.returncode in [0, 1] or len(list(empty_dir.iterdir())) > 0