Skip to content

Commit ad1bf9e

Browse files
committed
RDBC-680 RavenDB_15313Test::getCountersOperationShouldFilterDuplicateNames_PostGet
1 parent 1feb4de commit ad1bf9e

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
from ravendb.documents.operations.counters import GetCountersOperation
2+
from ravendb.tests.test_base import TestBase, User
3+
4+
5+
class TestRavenDB15313(TestBase):
6+
def setUp(self):
7+
super(TestRavenDB15313, self).setUp()
8+
9+
def test_get_counters_operation_should_filter_duplicate_names__post_get(self):
10+
doc_id = "users/1"
11+
12+
names = []
13+
dict = {}
14+
15+
with self.store.open_session() as session:
16+
session.store(User(), doc_id)
17+
18+
cf = session.counters_for(doc_id)
19+
20+
for i in range(1024):
21+
if i % 4 == 0:
22+
name = "abc"
23+
elif i % 10 == 0:
24+
name = "xyz"
25+
else:
26+
name = f"likes{i}"
27+
28+
names.append(name)
29+
30+
old_val = dict.get(name, None)
31+
dict[name] = (old_val + i) if old_val is not None else i
32+
33+
cf.increment(name, i)
34+
35+
session.save_changes()
36+
37+
vals = self.store.operations.send(GetCountersOperation(doc_id, names))
38+
39+
expected_count = len(dict)
40+
41+
self.assertEqual(expected_count, len(vals.counters))
42+
43+
hs = list(set(names))
44+
hs_names = list(filter(lambda x: True if (hs.remove(x) if x in hs else False) is None else False, names)) # :D
45+
expected_vals = list(map(lambda x: dict.get(x, None), hs_names))
46+
47+
for i in range(len(hs_names)):
48+
name = hs_names[i]
49+
self.assertEqual(
50+
next(filter(lambda c: c.counter_name == name, vals.counters)).total_value, expected_vals[i]
51+
)

0 commit comments

Comments
 (0)