mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2026-04-06 07:47:53 +10:00
37 lines
1.1 KiB
Python
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)
|