Blame view

tests/test_product_title_exclusion.py 1.34 KB
74fdf9bd   tangwang   1.
1
2
3
4
5
6
7
8
  from types import SimpleNamespace
  
  from config import QueryConfig
  from query.product_title_exclusion import (
      ProductTitleExclusionDetector,
      ProductTitleExclusionRegistry,
  )
  
99b72698   tangwang   测试回归钩子梳理
9
10
11
12
  import pytest
  
  pytestmark = [pytest.mark.intent, pytest.mark.regression]
  
74fdf9bd   tangwang   1.
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
  
  def test_product_title_exclusion_detector_matches_translated_english_token():
      query_config = QueryConfig(
          product_title_exclusion_rules=[
              {
                  "zh_trigger_terms": ["修身"],
                  "en_trigger_terms": ["fitted"],
                  "zh_title_exclusions": ["宽松"],
                  "en_title_exclusions": ["loose", "relaxed", "oversized", "baggy", "slouchy"],
              }
          ]
      )
      detector = ProductTitleExclusionDetector(
          ProductTitleExclusionRegistry.from_query_config(query_config),
          tokenizer=lambda text: text.split(),
      )
  
      parsed_query = SimpleNamespace(
          original_query="修身连衣裙",
          query_normalized="修身 连衣裙",
          rewritten_query="修身 连衣裙",
          translations={"en": "fitted dress"},
      )
  
      profile = detector.detect(parsed_query)
  
      assert profile.is_active is True
      assert profile.all_zh_title_exclusions() == ["宽松"]
      assert profile.all_en_title_exclusions() == [
          "loose",
          "relaxed",
          "oversized",
          "baggy",
          "slouchy",
      ]