14
14
LABELS_REMOVED ,
15
15
NODES_CREATED ,
16
16
NODES_DELETED ,
17
+ OPERATIONS_COMMITTED ,
18
+ OPERATIONS_MISSING ,
17
19
PLANNING_TIME ,
18
20
PROCESSING_TIME ,
19
21
PROPERTIES_SET ,
@@ -63,6 +65,8 @@ def test_neo4j_write_metrics_default_initialization():
63
65
assert_that (metrics .constraints_removed , equal_to (0 ))
64
66
assert_that (metrics .indexes_added , equal_to (0 ))
65
67
assert_that (metrics .indexes_removed , equal_to (0 ))
68
+ assert_that (metrics .operations_committed , equal_to (0 ))
69
+ assert_that (metrics .operations_missing , equal_to (0 ))
66
70
67
71
68
72
def test_neo4j_write_metrics_custom_initialization ():
@@ -78,6 +82,8 @@ def test_neo4j_write_metrics_custom_initialization():
78
82
constraints_removed = 1 ,
79
83
indexes_added = 3 ,
80
84
indexes_removed = 1 ,
85
+ operations_committed = 7 ,
86
+ operations_missing = 1 ,
81
87
)
82
88
assert_that (metrics .nodes_created , equal_to (5 ))
83
89
assert_that (metrics .nodes_deleted , equal_to (2 ))
@@ -90,6 +96,8 @@ def test_neo4j_write_metrics_custom_initialization():
90
96
assert_that (metrics .constraints_removed , equal_to (1 ))
91
97
assert_that (metrics .indexes_added , equal_to (3 ))
92
98
assert_that (metrics .indexes_removed , equal_to (1 ))
99
+ assert_that (metrics .operations_committed , equal_to (7 ))
100
+ assert_that (metrics .operations_missing , equal_to (1 ))
93
101
94
102
95
103
def test_neo4j_query_statistics_default_initialization ():
@@ -162,6 +170,10 @@ def test_neo4j_query_statistics_from_result_without_apoc():
162
170
assert_that (stats .write_metrics .indexes_added , equal_to (3 ))
163
171
assert_that (stats .write_metrics .indexes_removed , equal_to (1 ))
164
172
173
+ # Operations committed/missing should remain defaults for non-APOC
174
+ assert_that (stats .write_metrics .operations_committed , equal_to (0 ))
175
+ assert_that (stats .write_metrics .operations_missing , equal_to (0 ))
176
+
165
177
assert_that (stats .was_terminated , equal_to (False ))
166
178
assert_that (stats .retries , equal_to (0 ))
167
179
assert_that (stats .error_messages , empty ())
@@ -203,6 +215,8 @@ def test_neo4j_query_statistics_from_result_with_apoc():
203
215
wasTerminated = True ,
204
216
retries = 2 ,
205
217
errorMessages = {"batch1" : "error1" , "batch2" : "error2" },
218
+ committedOperations = 13 ,
219
+ failedOperations = 2 ,
206
220
updateStatistics = apoc_update_stats ,
207
221
)
208
222
@@ -220,6 +234,8 @@ def test_neo4j_query_statistics_from_result_with_apoc():
220
234
assert_that (stats .write_metrics .properties_set , equal_to (20 ))
221
235
assert_that (stats .write_metrics .labels_added , equal_to (5 ))
222
236
assert_that (stats .write_metrics .labels_removed , equal_to (2 ))
237
+ assert_that (stats .write_metrics .operations_committed , equal_to (13 ))
238
+ assert_that (stats .write_metrics .operations_missing , equal_to (0 ))
223
239
224
240
assert_that (stats .was_terminated , equal_to (True ))
225
241
assert_that (stats .retries , equal_to (2 ))
@@ -240,6 +256,8 @@ def test_neo4j_query_statistics_from_result_with_apoc_no_update_stats():
240
256
wasTerminated = False ,
241
257
retries = 1 ,
242
258
errorMessages = {},
259
+ committedOperations = 0 ,
260
+ failedOperations = 4 ,
243
261
updateStatistics = None ,
244
262
)
245
263
@@ -250,6 +268,10 @@ def test_neo4j_query_statistics_from_result_with_apoc_no_update_stats():
250
268
assert_that (stats .timing .apoc_time_ms , equal_to (1500 ))
251
269
assert_that (stats .error_messages , empty ())
252
270
271
+ # Operations committed/missing inferred from APOC response
272
+ assert_that (stats .write_metrics .operations_committed , equal_to (0 ))
273
+ assert_that (stats .write_metrics .operations_missing , equal_to (4 ))
274
+
253
275
# Write metrics should be defaults since no update statistics
254
276
assert_that (stats .write_metrics .nodes_created , equal_to (0 ))
255
277
assert_that (stats .write_metrics .relationships_created , equal_to (0 ))
@@ -367,6 +389,8 @@ def test_update_metrics_from_summary(mocker):
367
389
constraints_removed = 1 ,
368
390
indexes_added = 3 ,
369
391
indexes_removed = 1 ,
392
+ operations_committed = 7 ,
393
+ operations_missing = 1 ,
370
394
)
371
395
372
396
stats = Neo4jQueryStatistics (
@@ -396,13 +420,15 @@ def test_update_metrics_from_summary(mocker):
396
420
mocker .call (CONSTRAINTS_REMOVED , 1 ),
397
421
mocker .call (INDEXES_ADDED , 3 ),
398
422
mocker .call (INDEXES_REMOVED , 1 ),
423
+ mocker .call (OPERATIONS_COMMITTED , 7 ),
424
+ mocker .call (OPERATIONS_MISSING , 1 ),
399
425
mocker .call (WAS_TERMINATED , 1 ), # True converted to int
400
426
mocker .call (RETRIES , 2 ),
401
427
mocker .call (ERROR_MESSAGES , 2 ), # len(error_messages)
402
428
]
403
429
404
430
mock_metrics .increment .assert_has_calls (expected_calls , any_order = True )
405
- assert_that (mock_metrics .increment .call_count , equal_to (18 ))
431
+ assert_that (mock_metrics .increment .call_count , equal_to (20 ))
406
432
407
433
408
434
def test_metric_constants_are_defined ():
@@ -423,6 +449,8 @@ def test_metric_constants_are_defined():
423
449
CONSTRAINTS_REMOVED ,
424
450
INDEXES_ADDED ,
425
451
INDEXES_REMOVED ,
452
+ OPERATIONS_COMMITTED ,
453
+ OPERATIONS_MISSING ,
426
454
WAS_TERMINATED ,
427
455
RETRIES ,
428
456
ERROR_MESSAGES ,
0 commit comments