@@ -31,8 +31,7 @@ def query_builder():
31
31
32
32
33
33
GREATEST_DAY = Timestamp (1998 , 3 , 25 , 2 , 0 , 1 )
34
- DEFAULT_EXECUTE_CHUNKS_IN_PARALLEL = True
35
- DEFAULT_CHUNK_SIZE = 1000
34
+ DEFAULT_CHUNK_SIZE = 100
36
35
DEFAULT_RETRIES_PER_CHUNK = 3
37
36
38
37
BASIC_NODE_TTL = TimeToLiveConfiguration (
@@ -46,7 +45,7 @@ def query_builder():
46
45
"iterate_params" : {"earliest_allowed_time" : GREATEST_DAY },
47
46
"batched_query" : DELETE_NODE_QUERY ,
48
47
"iterable_query" : "MATCH (x: TestNodeType) WHERE x.last_ingested_at <= $earliest_allowed_time RETURN id(x) as id" ,
49
- "execute_chunks_in_parallel" : DEFAULT_EXECUTE_CHUNKS_IN_PARALLEL ,
48
+ "execute_chunks_in_parallel" : False ,
50
49
"chunk_size" : DEFAULT_CHUNK_SIZE ,
51
50
"retries_per_chunk" : DEFAULT_RETRIES_PER_CHUNK ,
52
51
},
@@ -64,7 +63,7 @@ def query_builder():
64
63
"iterate_params" : {"earliest_allowed_time" : GREATEST_DAY },
65
64
"batched_query" : DELETE_NODE_QUERY ,
66
65
"iterable_query" : NODE_TTL_WITH_CUSTOM_QUERY .custom_query ,
67
- "execute_chunks_in_parallel" : DEFAULT_EXECUTE_CHUNKS_IN_PARALLEL ,
66
+ "execute_chunks_in_parallel" : False ,
68
67
"chunk_size" : DEFAULT_CHUNK_SIZE ,
69
68
"retries_per_chunk" : DEFAULT_RETRIES_PER_CHUNK ,
70
69
},
@@ -81,7 +80,7 @@ def query_builder():
81
80
"iterate_params" : {"earliest_allowed_time" : GREATEST_DAY },
82
81
"iterable_query" : "MATCH ()-[x: IS_RELATED_TO]->() WHERE x.last_ingested_at <= $earliest_allowed_time RETURN id(x) as id" ,
83
82
"batched_query" : DELETE_REL_QUERY ,
84
- "execute_chunks_in_parallel" : DEFAULT_EXECUTE_CHUNKS_IN_PARALLEL ,
83
+ "execute_chunks_in_parallel" : True ,
85
84
"chunk_size" : DEFAULT_CHUNK_SIZE ,
86
85
"retries_per_chunk" : DEFAULT_RETRIES_PER_CHUNK ,
87
86
},
@@ -99,12 +98,50 @@ def query_builder():
99
98
"iterate_params" : {"earliest_allowed_time" : GREATEST_DAY },
100
99
"iterable_query" : REL_TTL_WITH_CUSTOM_QUERY .custom_query ,
101
100
"batched_query" : DELETE_REL_QUERY ,
102
- "execute_chunks_in_parallel" : DEFAULT_EXECUTE_CHUNKS_IN_PARALLEL ,
101
+ "execute_chunks_in_parallel" : True ,
103
102
"chunk_size" : DEFAULT_CHUNK_SIZE ,
104
103
"retries_per_chunk" : DEFAULT_RETRIES_PER_CHUNK ,
105
104
},
106
105
)
107
106
107
+ NODE_TTL_WITH_BATCH_PARAMS = TimeToLiveConfiguration (
108
+ graph_object_type = GraphObjectType .NODE ,
109
+ object_type = "TestNodeType" ,
110
+ expiry_in_hours = 10 ,
111
+ batch_size = 200 ,
112
+ )
113
+
114
+ NODE_TTL_WITH_BATCH_PARAMS_EXPECTED_QUERY = Query (
115
+ COMMIT_QUERY ,
116
+ {
117
+ "iterate_params" : {"earliest_allowed_time" : GREATEST_DAY },
118
+ "batched_query" : DELETE_NODE_QUERY ,
119
+ "iterable_query" : "MATCH (x: TestNodeType) WHERE x.last_ingested_at <= $earliest_allowed_time RETURN id(x) as id" ,
120
+ "execute_chunks_in_parallel" : False ,
121
+ "chunk_size" : 200 ,
122
+ "retries_per_chunk" : DEFAULT_RETRIES_PER_CHUNK ,
123
+ },
124
+ )
125
+
126
+ REL_TTL_WITH_BATCH_PARAMS = TimeToLiveConfiguration (
127
+ graph_object_type = GraphObjectType .RELATIONSHIP ,
128
+ object_type = "IS_RELATED_TO" ,
129
+ expiry_in_hours = 10 ,
130
+ batch_size = 200 ,
131
+ )
132
+
133
+ REL_TTL_WITH_BATCH_PARAMS_EXPECTED_QUERY = Query (
134
+ COMMIT_QUERY ,
135
+ {
136
+ "iterate_params" : {"earliest_allowed_time" : GREATEST_DAY },
137
+ "iterable_query" : "MATCH ()-[x: IS_RELATED_TO]->() WHERE x.last_ingested_at <= $earliest_allowed_time RETURN id(x) as id" ,
138
+ "batched_query" : DELETE_REL_QUERY ,
139
+ "execute_chunks_in_parallel" : True ,
140
+ "chunk_size" : 200 ,
141
+ "retries_per_chunk" : DEFAULT_RETRIES_PER_CHUNK ,
142
+ },
143
+ )
144
+
108
145
109
146
@patch ("pandas.Timestamp.utcnow" )
110
147
@pytest .mark .parametrize (
@@ -114,14 +151,14 @@ def query_builder():
114
151
(NODE_TTL_WITH_CUSTOM_QUERY , NODE_TTL_WITH_CUSTOM_QUERY_EXPECTED_QUERY ),
115
152
(BASIC_REL_TTL , BASIC_REL_TTL_EXPECTED_QUERY ),
116
153
(REL_TTL_WITH_CUSTOM_QUERY , REL_TTL_WITH_CUSTOM_QUERY_EXPECTED_QUERY ),
154
+ (NODE_TTL_WITH_BATCH_PARAMS , NODE_TTL_WITH_BATCH_PARAMS_EXPECTED_QUERY ),
155
+ (REL_TTL_WITH_BATCH_PARAMS , REL_TTL_WITH_BATCH_PARAMS_EXPECTED_QUERY ),
117
156
],
118
157
)
119
158
def test_generates_expected_queries (mocked_utcnow , query_builder , ttl , expected_query ):
120
159
mocked_utcnow .return_value = Timestamp (1998 , 3 , 25 , 12 , 0 , 1 )
121
160
resultant_query = query_builder .generate_ttl_query_from_configuration (
122
161
ttl ,
123
- DEFAULT_CHUNK_SIZE ,
124
- DEFAULT_EXECUTE_CHUNKS_IN_PARALLEL ,
125
162
DEFAULT_RETRIES_PER_CHUNK ,
126
163
)
127
164
assert_that (resultant_query , equal_to (expected_query ))
0 commit comments