@@ -209,6 +209,34 @@ def test_lora_lru_cache_model_manager(dist_init, dummy_model):
209
209
assert manager .activate_lora (3 )
210
210
assert manager .lora_index_to_id [0 ] == 2
211
211
assert manager .lora_index_to_id [1 ] == 3
212
+ assert manager .pin_lora (2 )
213
+ assert manager .lora_index_to_id [0 ] == 2
214
+ assert manager .lora_index_to_id [1 ] == 3
215
+ assert manager .activate_lora (1 )
216
+ assert manager .lora_index_to_id [0 ] == 2
217
+ assert manager .lora_index_to_id [1 ] == 1
218
+ assert manager .deactivate_lora (2 )
219
+ assert manager .lora_index_to_id [0 ] is None
220
+ assert manager .lora_index_to_id [1 ] == 1
221
+ assert manager .activate_lora (3 )
222
+ assert manager .lora_index_to_id [0 ] == 3
223
+ assert manager .lora_index_to_id [1 ] == 1
224
+ assert manager .pin_lora (3 )
225
+ assert manager .pin_lora (1 )
226
+ with pytest .raises (RuntimeError ):
227
+ assert manager .pin_lora (2 )
228
+ assert manager .lora_index_to_id [0 ] == 3
229
+ assert manager .lora_index_to_id [1 ] == 1
230
+ with pytest .raises (RuntimeError ):
231
+ assert manager .activate_lora (2 )
232
+
233
+ assert manager .deactivate_lora (3 )
234
+ assert manager .pin_lora (2 )
235
+ assert manager .lora_index_to_id [0 ] == 2
236
+ assert manager .lora_index_to_id [1 ] == 1
237
+ assert manager .remove_lora (3 )
238
+ with pytest .raises (ValueError ):
239
+ assert manager .pin_lora (3 )
212
240
213
241
214
242
def test_lru_lora_model_manager (dist_init , dummy_model ):
@@ -288,6 +316,42 @@ def test_lru_lora_model_manager(dist_init, dummy_model):
288
316
assert set (manager .list_loras ()) == set ()
289
317
assert all (x is None for x in manager .lora_index_to_id )
290
318
319
+ # pinning
320
+ assert manager .add_lora (model_lora3 )
321
+ assert manager .activate_lora (3 )
322
+ assert manager .add_lora (model_lora4 )
323
+ assert manager .activate_lora (4 )
324
+ assert set (manager .list_loras ()) == {3 , 4 }
325
+ with pytest .raises (ValueError ):
326
+ assert manager .pin_lora (1 )
327
+ assert manager .pin_lora (3 )
328
+ # Remove manually
329
+ assert manager .remove_lora (3 )
330
+ assert not manager .remove_lora (3 )
331
+
332
+ assert set (manager .list_loras ()) == {4 }
333
+ assert manager .lora_index_to_id [0 ] is None
334
+ assert manager .lora_index_to_id [1 ] == 4
335
+
336
+ assert manager .add_lora (model_lora1 )
337
+ assert manager .pin_lora (1 )
338
+ assert manager .add_lora (model_lora2 )
339
+ assert manager .activate_lora (2 )
340
+
341
+ assert set (manager .list_loras ()) == {1 , 2 }
342
+ assert manager .lora_index_to_id [0 ] == 1
343
+ assert manager .lora_index_to_id [1 ] == 2
344
+
345
+ assert manager .remove_oldest_lora ()
346
+ assert set (manager .list_loras ()) == {1 }
347
+ assert manager .lora_index_to_id [0 ] == 1
348
+ assert manager .lora_index_to_id [1 ] is None
349
+
350
+ with pytest .raises (RuntimeError ):
351
+ assert manager .remove_oldest_lora ()
352
+
353
+ assert set (manager .list_loras ()) == {1 }
354
+
291
355
292
356
def test_lru_cache_worker_lora_manager (llama_2_7b_model_extra_embeddings ,
293
357
sql_lora_files ):
0 commit comments