mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2026-01-03 01:15:57 +10:00
63 lines
1.7 KiB
Python
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
|