Skip to content

Commit c9ef278

Browse files
committed
RDBC-692 QueryOnCountersTest::sessionQueryIncludeAllCounters
1 parent ff142b7 commit c9ef278

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

ravendb/tests/counters_tests/test_query_on_counters.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,60 @@ def test_session_query_include_counter_and_document(self):
326326

327327
self.assertEqual(1, session.advanced.number_of_requests)
328328

329+
def test_session_query_include_all_counters(self):
330+
with self.store.open_session() as session:
331+
session.store(Order(company="companies/1-A"), "orders/1-A")
332+
session.store(Order(company="companies/2-A"), "orders/2-A")
333+
session.store(Order(company="companies/3-A"), "orders/3-A")
334+
335+
session.counters_for("orders/1-A").increment("Downloads", 100)
336+
session.counters_for("orders/2-A").increment("Downloads", 200)
337+
session.counters_for("orders/3-A").increment("Downloads", 300)
338+
339+
session.counters_for("orders/1-A").increment("Likes", 1000)
340+
session.counters_for("orders/2-A").increment("Likes", 2000)
341+
342+
session.counters_for("orders/1-A").increment("Votes", 10000)
343+
session.counters_for("orders/3-A").increment("Cats", 5)
344+
345+
session.save_changes()
346+
347+
with self.store.open_session() as session:
348+
query = session.query(object_type=Order).include(lambda i: i.include_all_counters())
349+
350+
self.assertEqual("from 'Orders' include counters()", query._to_string())
351+
352+
query_result = list(query)
353+
self.assertEqual(1, session.advanced.number_of_requests)
354+
355+
# included counters should be in cache
356+
order = query_result[0]
357+
self.assertEqual("orders/1-A", order.Id)
358+
359+
dic = session.counters_for_entity(order).get_all()
360+
self.assertEqual(3, len(dic))
361+
self.assertIn(("downloads", 100), dic.items())
362+
self.assertIn(("likes", 1000), dic.items())
363+
self.assertIn(("votes", 10000), dic.items())
364+
365+
order = query_result[1]
366+
self.assertEqual("orders/2-A", order.Id)
367+
368+
dic = session.counters_for_entity(order).get_all()
369+
self.assertEqual(2, len(dic))
370+
self.assertIn(("downloads", 200), dic.items())
371+
self.assertIn(("likes", 2000), dic.items())
372+
373+
order = query_result[2]
374+
self.assertEqual("orders/3-A", order.Id)
375+
376+
dic = session.counters_for_entity(order).get_all()
377+
self.assertEqual(2, len(dic))
378+
self.assertIn(("downloads", 300), dic.items())
379+
self.assertIn(("cats", 5), dic.items())
380+
381+
self.assertEqual(1, session.advanced.number_of_requests)
382+
329383
def test_session_query_include_all_counters_of_document_and_of_related_document(self):
330384
with self.store.open_session() as session:
331385
session.store(Order(employee="employees/1-A"), "orders/1-A")

0 commit comments

Comments
 (0)