|
8 | 8 | from typesense.client import Client |
9 | 9 | from typesense.analytics_rules import AnalyticsRules |
10 | 10 | from typesense.analytics_rule import AnalyticsRule |
| 11 | +from typesense.async_api_call import AsyncApiCall |
| 12 | +from typesense.async_analytics_rules import AsyncAnalyticsRules |
11 | 13 | from typesense.types.analytics import AnalyticsRuleCreate |
12 | 14 |
|
13 | 15 |
|
@@ -82,3 +84,68 @@ def test_actual_retrieve( |
82 | 84 | rules = actual_analytics_rules.retrieve() |
83 | 85 | assert isinstance(rules, list) |
84 | 86 | assert any(r.get("name") == "company_analytics_rule" for r in rules) |
| 87 | + |
| 88 | + |
| 89 | +def test_rules_init_async(fake_async_api_call: AsyncApiCall) -> None: |
| 90 | + from typesense.async_analytics_rules import AsyncAnalyticsRules |
| 91 | + |
| 92 | + rules = AsyncAnalyticsRules(fake_async_api_call) |
| 93 | + assert rules.rules == {} |
| 94 | + |
| 95 | + |
| 96 | +def test_rule_getitem_async(fake_async_api_call: AsyncApiCall) -> None: |
| 97 | + from typesense.async_analytics_rules import AsyncAnalyticsRules |
| 98 | + from typesense.async_analytics_rule import AsyncAnalyticsRule |
| 99 | + |
| 100 | + rules = AsyncAnalyticsRules(fake_async_api_call) |
| 101 | + rule = rules["company_analytics_rule"] |
| 102 | + assert isinstance(rule, AsyncAnalyticsRule) |
| 103 | + assert rule._endpoint_path == "/analytics/rules/company_analytics_rule" |
| 104 | + |
| 105 | + |
| 106 | +async def test_actual_create_async( |
| 107 | + actual_async_analytics_rules: AsyncAnalyticsRules, |
| 108 | + delete_all: None, |
| 109 | + delete_all_analytics_rules: None, |
| 110 | + create_collection: None, |
| 111 | + create_query_collection: None, |
| 112 | +) -> None: |
| 113 | + body: AnalyticsRuleCreate = { |
| 114 | + "name": "company_analytics_rule", |
| 115 | + "type": "nohits_queries", |
| 116 | + "collection": "companies", |
| 117 | + "event_type": "search", |
| 118 | + "params": {"destination_collection": "companies_queries", "limit": 1000}, |
| 119 | + } |
| 120 | + resp = await actual_async_analytics_rules.create(rule=body) |
| 121 | + assert resp["name"] == "company_analytics_rule" |
| 122 | + assert resp["params"]["destination_collection"] == "companies_queries" |
| 123 | + |
| 124 | + |
| 125 | +async def test_actual_update_async( |
| 126 | + actual_async_analytics_rules: AsyncAnalyticsRules, |
| 127 | + delete_all: None, |
| 128 | + delete_all_analytics_rules: None, |
| 129 | + create_analytics_rule: None, |
| 130 | +) -> None: |
| 131 | + resp = await actual_async_analytics_rules.upsert( |
| 132 | + "company_analytics_rule", |
| 133 | + { |
| 134 | + "params": { |
| 135 | + "destination_collection": "companies_queries", |
| 136 | + "limit": 500, |
| 137 | + }, |
| 138 | + }, |
| 139 | + ) |
| 140 | + assert resp["name"] == "company_analytics_rule" |
| 141 | + |
| 142 | + |
| 143 | +async def test_actual_retrieve_async( |
| 144 | + actual_async_analytics_rules: AsyncAnalyticsRules, |
| 145 | + delete_all: None, |
| 146 | + delete_all_analytics_rules: None, |
| 147 | + create_analytics_rule: None, |
| 148 | +) -> None: |
| 149 | + rules = await actual_async_analytics_rules.retrieve() |
| 150 | + assert isinstance(rules, list) |
| 151 | + assert any(r.get("name") == "company_analytics_rule" for r in rules) |
0 commit comments