Skip to content

Commit 999f115

Browse files
committed
fix: more tests
1 parent 893f3f4 commit 999f115

File tree

5 files changed

+48
-25
lines changed

5 files changed

+48
-25
lines changed

algoliasearch_django/decorators.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,26 @@ def __init__(self, model=None):
5353
if model is not None:
5454
self.models = [model]
5555
else:
56-
self.models = algolia_engine.get_registered_models()
56+
self.models = algolia_engine._AlgoliaEngine__registered_models # pyright: ignore
5757

5858
def __enter__(self):
5959
for model in self.models:
60-
post_save.disconnect(algolia_engine.__post_save_receiver, sender=model)
61-
pre_delete.disconnect(algolia_engine.__pre_delete_receiver, sender=model)
60+
post_save.disconnect(
61+
algolia_engine._AlgoliaEngine__post_save_receiver,
62+
sender=model, # pyright: ignore
63+
)
64+
pre_delete.disconnect(
65+
algolia_engine._AlgoliaEngine__pre_delete_receiver,
66+
sender=model, # pyright: ignore
67+
)
6268

6369
def __exit__(self, exc_type, exc_value, traceback):
6470
for model in self.models:
65-
post_save.connect(algolia_engine.__post_save_receiver, sender=model)
66-
pre_delete.connect(algolia_engine.__pre_delete_receiver, sender=model)
71+
post_save.connect(
72+
algolia_engine._AlgoliaEngine__post_save_receiver,
73+
sender=model, # pyright: ignore
74+
)
75+
pre_delete.connect(
76+
algolia_engine._AlgoliaEngine__pre_delete_receiver,
77+
sender=model, # pyright: ignore
78+
)

algoliasearch_django/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,7 @@ def reindex_all(self, batch_size=1000):
559559
logger.debug("RESTORE REPLICAS")
560560
if should_keep_replicas:
561561
_resp = self.__client.set_settings(self.index_name, self.settings)
562-
self.__client.wait_for_task(self.tmp_index_name, _resp.task_id)
562+
self.__client.wait_for_task(self.index_name, _resp.task_id)
563563
if should_keep_rules:
564564
_resp = self.__client.save_rules(self.index_name, rules, True)
565565
self.__client.wait_for_task(self.index_name, _resp.task_id)

runtests.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ def main():
1414
TestRunner = get_runner(settings)
1515
test_runner = TestRunner(failfase=True)
1616
# kept here to run a single test
17-
# failures = test_runner.run_tests(["tests.test_index.IndexTestCase.test_reindex_with_synonyms"])
17+
# failures = test_runner.run_tests(
18+
# [
19+
# "tests.test_index.IndexTestCase.test_reindex_with_rules"
20+
# ]
21+
# )
1822
failures = test_runner.run_tests(["tests"])
1923
sys.exit(bool(failures))
2024

tests/test_engine.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,10 @@ def test_init_exception(self):
3232

3333
def test_user_agent(self):
3434
self.assertIn(
35-
"Algolia for Django (%s); Django (%s)" % __version__ % __django__version__,
36-
self.engine.client._config.user_agent.get(),
35+
"Algolia for Django ({}); Django ({})".format(
36+
__version__, __django__version__
37+
),
38+
self.engine.client._config._user_agent.get(),
3739
)
3840

3941
def test_auto_discover_indexes(self):

tests/test_index.py

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -256,33 +256,38 @@ class WebsiteIndex(AlgoliaIndex):
256256
rule = {
257257
"objectID": "my-rule",
258258
"condition": {"pattern": "some text", "anchoring": "is"},
259-
"consequence": {"params": {"query": "other text"}},
259+
"consequence": {"params": {"hitsPerPage": 42}},
260260
}
261261

262262
self.assertIsNotNone(self.index.index_name)
263263

264264
if self.index.index_name is None:
265265
return
266266

267-
self.client.save_rule(self.index.index_name, rule["objectID"], rule)
267+
self.client.save_rule_with_http_info(
268+
self.index.index_name, rule["objectID"], rule
269+
)
268270

269271
# When reindexing with no settings on the instance
270272
self.index = WebsiteIndex(Website, self.client, settings.ALGOLIA)
271273
self.index.reindex_all()
272274

273-
# Expect the rules to be kept across reindex
274-
def remove_metadata(rule):
275-
copy = dict(rule)
276-
del copy["_metadata"]
277-
return copy
278-
279275
rules = []
280-
self.index.__client.browse_rules(
281-
self.index.index_name, lambda _resp: rules.extend(_resp.hits)
276+
self.client.browse_rules(
277+
self.index.index_name,
278+
lambda _resp: rules.extend([_hit.to_dict() for _hit in _resp.hits]),
282279
)
283-
rules = list(map(remove_metadata, rules))
284280
self.assertEqual(len(rules), 1, "There should only be one rule")
285-
self.assertIn(rule, rules, "The existing rule should be kept over reindex")
281+
self.assertEqual(
282+
rules[0]["consequence"],
283+
rule["consequence"],
284+
"The existing rule should be kept over reindex",
285+
)
286+
self.assertEqual(
287+
rules[0]["objectID"],
288+
rule["objectID"],
289+
"The existing rule should be kept over reindex",
290+
)
286291

287292
def test_reindex_with_synonyms(self):
288293
# Given an existing index defined with settings
@@ -313,11 +318,11 @@ class WebsiteIndex(AlgoliaIndex):
313318
self.index.reindex_all()
314319

315320
# Expect the synonyms to be kept across reindex
316-
resp = self.client.search_synonyms(index_name=self.index.index_name)
317-
print(resp, self.index.index_name)
318-
319321
synonyms = []
320-
self.client.browse_synonyms(self.index.index_name, lambda _resp: print(_resp))
322+
self.client.browse_synonyms(
323+
self.index.index_name,
324+
lambda _resp: synonyms.extend([_hit.to_dict() for _hit in _resp.hits]),
325+
)
321326
self.assertEqual(len(synonyms), 1, "There should only be one synonym")
322327
self.assertIn(
323328
synonym, synonyms, "The existing synonym should be kept over reindex"

0 commit comments

Comments
 (0)