Skip to content

Commit

Permalink
[fixup] Add more integration tests
Browse files Browse the repository at this point in the history
  • Loading branch information
pgj committed Feb 2, 2024
1 parent 1c1a48c commit 99bb9a9
Showing 1 changed file with 67 additions and 11 deletions.
78 changes: 67 additions & 11 deletions src/mango/test/15-execution-stats-test.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,17 +74,73 @@ def test_covering_json_index(self):
self.assertEqual(resp["execution_stats"]["results_returned"], 3)

def test_reporting_consistency(self):
resp = self.db.find(
{"age": {"$lte": 42}},
fields=["name", "email", "age"],
limit=3,
return_raw=True,
executionStats=True,
)
executionStats = resp["execution_stats"]
self.assertEqual(executionStats["total_keys_examined"], 3)
self.assertEqual(executionStats["total_docs_examined"], 3)
self.assertEqual(executionStats["results_returned"], 3)
cases = [
{
"title": "with limit",
"selector": {"age": {"$lte": 42}},
"fields": ["name", "email", "age"],
"limit": 3,
"total_keys_examined": 3,
"total_docs_examined": 3,
"results_returned": 3,
},
{
"title": "partial matches",
"selector": {"favorites": {"$elemMatch": {"$eq": "Erlang"}}},
"fields": ["name", "email", "twitter"],
"limit": 200,
"total_keys_examined": 15,
"total_docs_examined": 15,
"results_returned": 6,
},
{
"title": "no matches, using _all_docs",
"selector": {"foo": "bar"},
"fields": [],
"limit": 200,
"total_keys_examined": 25,
"total_docs_examined": 25,
"results_returned": 0,
},
{
"title": "no matches, indexed column (no keys examined)",
"selector": {"name.first": "Lee", "name.last": "Jackson"},
"fields": ["email", "twitter"],
"limit": 200,
"total_keys_examined": 0,
"total_docs_examined": 0,
"results_returned": 0,
},
{
"title": "no matches, indexed column",
"selector": {"favorites": {"$elemMatch": {"$eq": "Haskell"}}},
"fields": ["name", "email", "twitter"],
"limit": 200,
"total_keys_examined": 15,
"total_docs_examined": 15,
"results_returned": 0,
},
]

for case in cases:
with self.subTest(scenario=case["title"]):
resp = self.db.find(
case["selector"],
fields=case["fields"],
limit=case["limit"],
return_raw=True,
executionStats=True,
)
executionStats = resp["execution_stats"]
self.assertEqual(
executionStats["total_keys_examined"], case["total_keys_examined"]
)
self.assertEqual(
executionStats["total_docs_examined"], case["total_docs_examined"]
)
self.assertEqual(
executionStats["results_returned"], case["results_returned"]
)


@unittest.skipUnless(mango.has_text_service(), "requires text service")
Expand Down

0 comments on commit 99bb9a9

Please sign in to comment.