mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-07-16 23:01:06 +02:00
The Explore feed (/api/explore/item_list) is a global trending-video feed served to anonymous sessions, and it returns the same itemStruct shape as the other listings — so the verb reuses parse_video, the listing flow, the TikTokVideoItem output, and the per-video billing meter wholesale. Adds a browser-capture marker + fetch_trending, a synthetic-target orchestrator entry, and the tiktok.trending capability, surfaced on the chat subagent.
57 lines
1.9 KiB
Python
57 lines
1.9 KiB
Python
"""The tiktok namespace registers its verb as one Capability the doors/agent read."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
from app.capabilities import (
|
|
tiktok, # noqa: F401 — importing the namespace registers its verbs
|
|
)
|
|
from app.capabilities.core import BillingUnit
|
|
from app.capabilities.core.store import get_capability
|
|
from app.capabilities.tiktok.comments.schemas import CommentsInput, CommentsOutput
|
|
from app.capabilities.tiktok.scrape.schemas import ScrapeInput, ScrapeOutput
|
|
from app.capabilities.tiktok.trending.schemas import TrendingInput, TrendingOutput
|
|
from app.capabilities.tiktok.user_search.schemas import (
|
|
UserSearchInput,
|
|
UserSearchOutput,
|
|
)
|
|
|
|
pytestmark = pytest.mark.unit
|
|
|
|
|
|
def test_tiktok_scrape_is_registered_and_billed_per_video():
|
|
cap = get_capability("tiktok.scrape")
|
|
|
|
assert cap.name == "tiktok.scrape"
|
|
assert cap.input_schema is ScrapeInput
|
|
assert cap.output_schema is ScrapeOutput
|
|
assert cap.billing_unit is BillingUnit.TIKTOK_VIDEO
|
|
|
|
|
|
def test_tiktok_user_search_is_registered_and_billed_per_profile():
|
|
cap = get_capability("tiktok.user_search")
|
|
|
|
assert cap.name == "tiktok.user_search"
|
|
assert cap.input_schema is UserSearchInput
|
|
assert cap.output_schema is UserSearchOutput
|
|
assert cap.billing_unit is BillingUnit.TIKTOK_USER
|
|
|
|
|
|
def test_tiktok_comments_is_registered_and_billed_per_comment():
|
|
cap = get_capability("tiktok.comments")
|
|
|
|
assert cap.name == "tiktok.comments"
|
|
assert cap.input_schema is CommentsInput
|
|
assert cap.output_schema is CommentsOutput
|
|
assert cap.billing_unit is BillingUnit.TIKTOK_COMMENT
|
|
|
|
|
|
def test_tiktok_trending_is_registered_and_billed_per_video():
|
|
cap = get_capability("tiktok.trending")
|
|
|
|
assert cap.name == "tiktok.trending"
|
|
assert cap.input_schema is TrendingInput
|
|
assert cap.output_schema is TrendingOutput
|
|
# Trending returns videos, so it shares the per-video meter.
|
|
assert cap.billing_unit is BillingUnit.TIKTOK_VIDEO
|