@@ -347,3 +347,81 @@ class ModelB(Model):
347
347
graph .merge (node , label_a , "a" )
348
348
assert node .identity != a_id
349
349
assert node .identity == b_id
350
+
351
+
352
+ def test_can_merge_node_with_merge_arguments (graph ):
353
+ graph .delete_all ()
354
+ a = Node ("Person" , name = "Alice" )
355
+ graph .merge (a , "Person" , "name" )
356
+ assert graph .nodes .match ("Person" , name = "Alice" ).first () == a
357
+
358
+
359
+ def test_can_merge_node_with_primary_label_and_key (graph ):
360
+ graph .delete_all ()
361
+ a = Node ("Person" , name = "Alice" )
362
+ a .__primarylabel__ = "Person"
363
+ a .__primarykey__ = "name"
364
+ graph .merge (a )
365
+ assert graph .nodes .match ("Person" , name = "Alice" ).first () == a
366
+
367
+
368
+ def test_can_merge_node_with_model (graph ):
369
+ from py2neo .ogm import Model
370
+
371
+ class Person (Model ):
372
+ __primarylabel__ = "Person"
373
+ __primarykey__ = "name"
374
+
375
+ graph .delete_all ()
376
+
377
+ a = Node ("Person" , name = "Alice" )
378
+ a .__model__ = Person
379
+ graph .merge (a )
380
+ assert graph .nodes .match ("Person" , name = "Alice" ).first () == a
381
+
382
+
383
+ def test_can_merge_node_with_model_overriding_arguments (graph ):
384
+ from py2neo .ogm import Model
385
+
386
+ class Person (Model ):
387
+ __primarylabel__ = "Person"
388
+ __primarykey__ = "name"
389
+
390
+ graph .delete_all ()
391
+
392
+ a = Node ("Person" , name = "Alice" )
393
+ a .__model__ = Person
394
+ graph .merge (a , "Human" , "nom" )
395
+ assert graph .nodes .match ("Person" , name = "Alice" ).first () == a
396
+
397
+
398
+ def test_can_merge_node_with_primary_label_overriding_model (graph ):
399
+ from py2neo .ogm import Model
400
+
401
+ class Person (Model ):
402
+ __primarylabel__ = "Human"
403
+ __primarykey__ = "name"
404
+
405
+ graph .delete_all ()
406
+
407
+ a = Node ("Person" , name = "Alice" )
408
+ a .__model__ = Person
409
+ a .__primarylabel__ = "Person"
410
+ graph .merge (a )
411
+ assert graph .nodes .match ("Person" , name = "Alice" ).first () == a
412
+
413
+
414
+ def test_can_merge_node_with_primary_key_overriding_model (graph ):
415
+ from py2neo .ogm import Model
416
+
417
+ class Person (Model ):
418
+ __primarylabel__ = "Person"
419
+ __primarykey__ = "nom"
420
+
421
+ graph .delete_all ()
422
+
423
+ a = Node ("Person" , name = "Alice" )
424
+ a .__model__ = Person
425
+ a .__primarykey__ = "name"
426
+ graph .merge (a )
427
+ assert graph .nodes .match ("Person" , name = "Alice" ).first () == a
0 commit comments