perf: 量化商品页打开耗时并去重检查 (#109)
This commit is contained in:
@@ -12,6 +12,7 @@ from src.pdd_purchase_adapter import (
|
||||
PddPurchaseAdapter,
|
||||
PurchasePageState,
|
||||
)
|
||||
from src.performance_timing import TaskPerformanceTrace
|
||||
from src.task_dispatcher import TaskDispatcher, admin_task_to_new_claimed_task
|
||||
from src.task_models import TaskStatus, TaskType
|
||||
from src.task_repository import TaskRepository
|
||||
@@ -134,6 +135,7 @@ class TaskDispatcherTest(unittest.TestCase):
|
||||
purchase_mode="dry_run",
|
||||
device_checker=lambda _serial: None,
|
||||
task_saved=lambda _task_id: None,
|
||||
performance_trace_factory=TaskPerformanceTrace,
|
||||
):
|
||||
purchase_factory = None
|
||||
if purchase_ready:
|
||||
@@ -161,8 +163,30 @@ class TaskDispatcherTest(unittest.TestCase):
|
||||
purchase_mode=purchase_mode,
|
||||
device_connection_checker=device_checker,
|
||||
task_saved=task_saved,
|
||||
performance_trace_factory=performance_trace_factory,
|
||||
)
|
||||
|
||||
def test_claim_save_and_device_check_have_scoped_timing_records(self):
|
||||
task = purchase_task()
|
||||
self.gateway.enqueue_task(task, self.client.client_id)
|
||||
records = []
|
||||
|
||||
outcome = self._dispatcher(
|
||||
purchase_ready=True,
|
||||
performance_trace_factory=lambda: TaskPerformanceTrace(
|
||||
sink=records.append
|
||||
),
|
||||
).execute_one()
|
||||
|
||||
self.assertEqual(outcome.kind, "succeeded")
|
||||
operations = [record["operation"] for record in records]
|
||||
self.assertEqual(
|
||||
operations[:3],
|
||||
["adb_device_check", "admin_claim_request", "sqlite_local_save"],
|
||||
)
|
||||
self.assertTrue(all(record["task_id"] == task.task_id for record in records))
|
||||
self.assertTrue(all(record["duration_ms"] >= 0 for record in records))
|
||||
|
||||
def test_capability_only_includes_purchase_when_adapter_is_ready(self):
|
||||
collect_only = self._dispatcher(purchase_ready=False)
|
||||
ready = self._dispatcher(purchase_ready=True)
|
||||
|
||||
Reference in New Issue
Block a user