@@ -79,11 +79,10 @@ def graph(count: int):
79
79
}
80
80
81
81
topic = f"test.metadata.{ os .getpid ()} "
82
- _precreate_topic (topic )
83
82
subKey = "foo"
84
83
pubKey = ["mapped_a" , "mapped_b" , "mapped_c" ]
85
84
86
- c = csp .count (csp .timer (timedelta (seconds = 0. 1 )))
85
+ c = csp .count (csp .timer (timedelta (seconds = 1 )))
87
86
t = csp .sample (c , csp .const ("foo" ))
88
87
89
88
pubStruct = MetaPubData .collectts (
@@ -104,22 +103,27 @@ def graph(count: int):
104
103
)
105
104
106
105
csp .add_graph_output ("sub_data" , sub_data )
107
- # csp.print('sub', sub_data)
106
+ csp .print ('sub' , sub_data )
108
107
# Wait for at least count ticks and until we get a live tick
109
- done_flag = csp .count (sub_data ) >= count
110
- done_flag = csp .and_ (done_flag , sub_data .mapped_live is True )
108
+ done_flag = csp .and_ (csp .count (sub_data ) >= count , sub_data .mapped_live == True ) # noqa: E712
111
109
stop = csp .filter (done_flag , done_flag )
112
110
csp .stop_engine (stop )
113
111
114
- count = 5
115
- results = csp .run (graph , count , starttime = datetime .utcnow (), endtime = timedelta (seconds = 30 ), realtime = True )
112
+ # warm up the topic
113
+ results = csp .run (graph , 1 , starttime = datetime .utcnow (), endtime = timedelta (seconds = 3 ), realtime = True )
114
+
115
+ # now send some live in
116
+ results = csp .run (graph , 5 , starttime = datetime .utcnow (), endtime = timedelta (seconds = 20 ), realtime = True )
116
117
assert len (results ["sub_data" ]) >= 5
117
118
print (results )
118
119
for result in results ["sub_data" ]:
119
120
assert result [1 ].mapped_partition >= 0
120
121
assert result [1 ].mapped_offset >= 0
121
122
assert result [1 ].mapped_live is not None
122
123
assert result [1 ].mapped_timestamp < datetime .utcnow ()
124
+ # first record should be non live
125
+ assert results ["sub_data" ][0 ][1 ].mapped_live is False
126
+ # last record should be live
123
127
assert results ["sub_data" ][- 1 ][1 ].mapped_live
124
128
125
129
@pytest .mark .skipif (not os .environ .get ("CSP_TEST_KAFKA" ), reason = "Skipping kafka adapter tests" )
@@ -145,8 +149,7 @@ def graph(symbols: list, count: int):
145
149
struct_field_map = {"b" : "b2" , "i" : "i2" , "d" : "d2" , "s" : "s2" , "dt" : "dt2" }
146
150
147
151
done_flags = []
148
- topic = f"mktdata.{ os .getpid ()} "
149
- _precreate_topic (topic )
152
+
150
153
for symbol in symbols :
151
154
kafkaadapter .publish (msg_mapper , topic , symbol , b , field_map = "b" )
152
155
kafkaadapter .publish (msg_mapper , topic , symbol , i , field_map = "i" )
@@ -183,10 +186,12 @@ def graph(symbols: list, count: int):
183
186
stop = csp .filter (stop , stop )
184
187
csp .stop_engine (stop )
185
188
189
+ topic = f"mktdata.{ os .getpid ()} "
190
+ _precreate_topic (topic )
186
191
symbols = ["AAPL" , "MSFT" ]
187
192
count = 100
188
193
results = csp .run (
189
- graph , symbols , count , starttime = datetime .utcnow (), endtime = timedelta (seconds = 30 ), realtime = True
194
+ graph , symbols , count , starttime = datetime .utcnow (), endtime = timedelta (seconds = 10 ), realtime = True
190
195
)
191
196
for symbol in symbols :
192
197
pub = results [f"pall_{ symbol } " ]
@@ -212,7 +217,7 @@ def pub_graph():
212
217
csp .stop_engine (stop )
213
218
# csp.print('pub', struct)
214
219
215
- csp .run (pub_graph , starttime = datetime .utcnow (), endtime = timedelta (seconds = 30 ), realtime = True )
220
+ csp .run (pub_graph , starttime = datetime .utcnow (), endtime = timedelta (seconds = 10 ), realtime = True )
216
221
217
222
# grab start/end times
218
223
def get_times_graph ():
@@ -232,7 +237,7 @@ def get_times_graph():
232
237
# csp.print('sub', data)
233
238
# csp.print('status', kafkaadapter.status())
234
239
235
- all_data = csp .run (get_times_graph , starttime = datetime .utcnow (), endtime = timedelta (seconds = 30 ), realtime = True )[
240
+ all_data = csp .run (get_times_graph , starttime = datetime .utcnow (), endtime = timedelta (seconds = 10 ), realtime = True )[
236
241
"data"
237
242
]
238
243
min_time = all_data [0 ][1 ].dt
@@ -258,7 +263,7 @@ def get_data(start_offset, expected_count):
258
263
KafkaStartOffset .EARLIEST ,
259
264
10 ,
260
265
starttime = datetime .utcnow (),
261
- endtime = timedelta (seconds = 30 ),
266
+ endtime = timedelta (seconds = 10 ),
262
267
realtime = True ,
263
268
)["data" ]
264
269
# print(res)
@@ -276,7 +281,7 @@ def get_data(start_offset, expected_count):
276
281
assert len (res ) == 0
277
282
278
283
res = csp .run (
279
- get_data , KafkaStartOffset .START_TIME , 10 , starttime = min_time , endtime = timedelta (seconds = 30 ), realtime = True
284
+ get_data , KafkaStartOffset .START_TIME , 10 , starttime = min_time , endtime = timedelta (seconds = 10 ), realtime = True
280
285
)["data" ]
281
286
assert len (res ) == 10
282
287
@@ -287,12 +292,12 @@ def get_data(start_offset, expected_count):
287
292
stime = all_data [2 ][1 ].dt + timedelta (milliseconds = 1 )
288
293
expected = [x for x in all_data if x [1 ].dt >= stime ]
289
294
res = csp .run (
290
- get_data , stime , len (expected ), starttime = datetime .utcnow (), endtime = timedelta (seconds = 30 ), realtime = True
295
+ get_data , stime , len (expected ), starttime = datetime .utcnow (), endtime = timedelta (seconds = 10 ), realtime = True
291
296
)["data" ]
292
297
assert len (res ) == len (expected )
293
298
294
299
res = csp .run (
295
- get_data , timedelta (seconds = 0 ), len (expected ), starttime = stime , endtime = timedelta (seconds = 30 ), realtime = True
300
+ get_data , timedelta (seconds = 0 ), len (expected ), starttime = stime , endtime = timedelta (seconds = 10 ), realtime = True
296
301
)["data" ]
297
302
assert len (res ) == len (expected )
298
303
@@ -314,8 +319,6 @@ def graph(symbols: list, count: int):
314
319
msg_mapper = RawBytesMessageMapper ()
315
320
316
321
done_flags = []
317
- topic = f"test_str.{ os .getpid ()} "
318
- _precreate_topic (topic )
319
322
for symbol in symbols :
320
323
topic = f"test_str.{ os .getpid ()} "
321
324
kafkaadapter .publish (msg_mapper , topic , symbol , d )
@@ -356,10 +359,13 @@ def graph(symbols: list, count: int):
356
359
stop = csp .filter (stop , stop )
357
360
csp .stop_engine (stop )
358
361
362
+ topic = f"test_str.{ os .getpid ()} "
363
+ _precreate_topic (topic )
364
+
359
365
symbols = ["AAPL" , "MSFT" ]
360
366
count = 10
361
367
results = csp .run (
362
- graph , symbols , count , starttime = datetime .utcnow (), endtime = timedelta (seconds = 30 ), realtime = True
368
+ graph , symbols , count , starttime = datetime .utcnow (), endtime = timedelta (seconds = 10 ), realtime = True
363
369
)
364
370
# print(results)
365
371
for symbol in symbols :
0 commit comments