Blame view

tests/test_product_title_exclusion.py 1.27 KB
74fdf9bd   tangwang   1.
1
2
3
4
5
6
7
8
9
10
11
12
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
  from types import SimpleNamespace
  
  from config import QueryConfig
  from query.product_title_exclusion import (
      ProductTitleExclusionDetector,
      ProductTitleExclusionRegistry,
  )
  
  
  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",
      ]