Files
ArchiveBox/archivebox/tests/test_api_cli_schedule.py
Nick Sweeting b749b26c5d wip
2026-03-23 03:58:32 -07:00

37 lines
1.1 KiB
Python

from io import StringIO
from django.contrib.auth import get_user_model
from django.test import RequestFactory, TestCase
from archivebox.api.v1_cli import ScheduleCommandSchema, cli_schedule
from archivebox.crawls.models import CrawlSchedule
User = get_user_model()
class CLIScheduleAPITests(TestCase):
def setUp(self):
self.user = User.objects.create_user(
username="api-user",
password="testpass123",
email="api@example.com",
)
def test_schedule_api_creates_schedule(self):
request = RequestFactory().post("/api/v1/cli/schedule")
request.user = self.user
setattr(request, "stdout", StringIO())
setattr(request, "stderr", StringIO())
args = ScheduleCommandSchema(
every="daily",
import_path="https://example.com/feed.xml",
quiet=True,
)
response = cli_schedule(request, args)
self.assertTrue(response["success"])
self.assertEqual(response["result_format"], "json")
self.assertEqual(CrawlSchedule.objects.count(), 1)
self.assertEqual(len(response["result"]["created_schedule_ids"]), 1)