@@ -279,7 +279,7 @@ def test_executemany_comment(self):
279
279
connect_module = mock .MagicMock ()
280
280
connect_module .__name__ = "test"
281
281
connect_module .__version__ = mock .MagicMock ()
282
- connect_module .__libpq_version__ = 123
282
+ connect_module .pq . version . return_value = 123
283
283
connect_module .apilevel = 123
284
284
connect_module .threadsafety = 123
285
285
connect_module .paramstyle = "test"
@@ -312,7 +312,7 @@ def test_executemany_comment_stmt_enabled(self):
312
312
connect_module = mock .MagicMock ()
313
313
connect_module .__name__ = "test"
314
314
connect_module .__version__ = mock .MagicMock ()
315
- connect_module .__libpq_version__ = 123
315
+ connect_module .pq . version . return_value = 123
316
316
connect_module .apilevel = 123
317
317
connect_module .threadsafety = 123
318
318
connect_module .paramstyle = "test"
@@ -420,7 +420,7 @@ def test_executemany_comment_stmt_enabled_matches_db_statement_attribute(
420
420
):
421
421
connect_module = mock .MagicMock ()
422
422
connect_module .__version__ = mock .MagicMock ()
423
- connect_module .__libpq_version__ = 123
423
+ connect_module .pq . version . return_value = 123
424
424
connect_module .apilevel = 123
425
425
connect_module .threadsafety = 123
426
426
connect_module .paramstyle = "test"
@@ -456,12 +456,12 @@ def test_executemany_comment_stmt_enabled_matches_db_statement_attribute(
456
456
).group ()
457
457
self .assertEqual (cursor_span_id , db_statement_span_id )
458
458
459
- def test_compatible_build_version_psycopg_psycopg2_libpq (self ):
459
+ def test_compatible_build_version_psycopg2_libpq (self ):
460
460
connect_module = mock .MagicMock ()
461
461
connect_module .__name__ = "test"
462
462
connect_module .__version__ = mock .MagicMock ()
463
- connect_module .pq = mock . MagicMock ()
464
- connect_module .pq . __build_version__ = 123
463
+ connect_module .pq . version . side_effect = AttributeError
464
+ connect_module .__libpq_version__ = 123
465
465
connect_module .apilevel = 123
466
466
connect_module .threadsafety = 123
467
467
connect_module .paramstyle = "test"
@@ -490,14 +490,47 @@ def test_compatible_build_version_psycopg_psycopg2_libpq(self):
490
490
"Select 1;" ,
491
491
)
492
492
493
- def test_compatible_build_version_psycopg_psycopg2_libpq_stmt_enabled (
493
+ def test_compatible_build_version_psycopg_libpq (self ):
494
+ connect_module = mock .MagicMock ()
495
+ connect_module .__name__ = "test"
496
+ connect_module .__version__ = mock .MagicMock ()
497
+ connect_module .pq .version .return_value = 123
498
+ connect_module .apilevel = 123
499
+ connect_module .threadsafety = 123
500
+ connect_module .paramstyle = "test"
501
+
502
+ db_integration = dbapi .DatabaseApiIntegration (
503
+ "instrumenting_module_test_name" ,
504
+ "postgresql" ,
505
+ enable_commenter = True ,
506
+ commenter_options = {"db_driver" : False , "dbapi_level" : False },
507
+ connect_module = connect_module ,
508
+ )
509
+ mock_connection = db_integration .wrapped_connection (
510
+ mock_connect , {}, {}
511
+ )
512
+ cursor = mock_connection .cursor ()
513
+ cursor .executemany ("Select 1;" )
514
+ self .assertRegex (
515
+ cursor .query ,
516
+ r"Select 1 /\*dbapi_threadsafety=123,driver_paramstyle='test',libpq_version=123,traceparent='\d{1,2}-[a-zA-Z0-9_]{32}-[a-zA-Z0-9_]{16}-\d{1,2}'\*/;" ,
517
+ )
518
+ spans_list = self .memory_exporter .get_finished_spans ()
519
+ self .assertEqual (len (spans_list ), 1 )
520
+ span = spans_list [0 ]
521
+ self .assertEqual (
522
+ span .attributes [SpanAttributes .DB_STATEMENT ],
523
+ "Select 1;" ,
524
+ )
525
+
526
+ def test_no_libpq_version_when_we_dont_instrument_the_root_module (
494
527
self ,
495
528
):
496
529
connect_module = mock .MagicMock ()
497
530
connect_module .__name__ = "test"
498
531
connect_module .__version__ = mock .MagicMock ()
499
- connect_module .pq = mock . MagicMock ()
500
- connect_module .pq . __build_version__ = 123
532
+ connect_module .pq . version . side_effect = AttributeError
533
+ connect_module .__libpq_version__ = None
501
534
connect_module .apilevel = 123
502
535
connect_module .threadsafety = 123
503
536
connect_module .paramstyle = "test"
@@ -517,20 +550,21 @@ def test_compatible_build_version_psycopg_psycopg2_libpq_stmt_enabled(
517
550
cursor .executemany ("Select 1;" )
518
551
self .assertRegex (
519
552
cursor .query ,
520
- r"Select 1 /\*dbapi_threadsafety=123,driver_paramstyle='test',libpq_version=123, traceparent='\d{1,2}-[a-zA-Z0-9_]{32}-[a-zA-Z0-9_]{16}-\d{1,2}'\*/;" ,
553
+ r"Select 1 /\*dbapi_threadsafety=123,driver_paramstyle='test',traceparent='\d{1,2}-[a-zA-Z0-9_]{32}-[a-zA-Z0-9_]{16}-\d{1,2}'\*/;" ,
521
554
)
522
555
spans_list = self .memory_exporter .get_finished_spans ()
523
556
self .assertEqual (len (spans_list ), 1 )
524
557
span = spans_list [0 ]
525
558
self .assertRegex (
526
559
span .attributes [SpanAttributes .DB_STATEMENT ],
527
- r"Select 1 /\*dbapi_threadsafety=123,driver_paramstyle='test',libpq_version=123, traceparent='\d{1,2}-[a-zA-Z0-9_]{32}-[a-zA-Z0-9_]{16}-\d{1,2}'\*/;" ,
560
+ r"Select 1 /\*dbapi_threadsafety=123,driver_paramstyle='test',traceparent='\d{1,2}-[a-zA-Z0-9_]{32}-[a-zA-Z0-9_]{16}-\d{1,2}'\*/;" ,
528
561
)
529
562
530
563
def test_executemany_psycopg2_integration_comment (self ):
531
564
connect_module = mock .MagicMock ()
532
565
connect_module .__name__ = "psycopg2"
533
566
connect_module .__version__ = "1.2.3"
567
+ connect_module .pq .version .side_effect = AttributeError
534
568
connect_module .__libpq_version__ = 123
535
569
connect_module .apilevel = 123
536
570
connect_module .threadsafety = 123
@@ -564,6 +598,7 @@ def test_executemany_psycopg2_integration_comment_stmt_enabled(self):
564
598
connect_module = mock .MagicMock ()
565
599
connect_module .__name__ = "psycopg2"
566
600
connect_module .__version__ = "1.2.3"
601
+ connect_module .pq .version .side_effect = AttributeError
567
602
connect_module .__libpq_version__ = 123
568
603
connect_module .apilevel = 123
569
604
connect_module .threadsafety = 123
@@ -598,8 +633,7 @@ def test_executemany_psycopg_integration_comment(self):
598
633
connect_module = mock .MagicMock ()
599
634
connect_module .__name__ = "psycopg"
600
635
connect_module .__version__ = "1.2.3"
601
- connect_module .pq = mock .MagicMock ()
602
- connect_module .pq .__build_version__ = 123
636
+ connect_module .pq .version .return_value = 123
603
637
connect_module .apilevel = 123
604
638
connect_module .threadsafety = 123
605
639
connect_module .paramstyle = "test"
@@ -632,8 +666,7 @@ def test_executemany_psycopg_integration_comment_stmt_enabled(self):
632
666
connect_module = mock .MagicMock ()
633
667
connect_module .__name__ = "psycopg"
634
668
connect_module .__version__ = "1.2.3"
635
- connect_module .pq = mock .MagicMock ()
636
- connect_module .pq .__build_version__ = 123
669
+ connect_module .pq .version .return_value = 123
637
670
connect_module .apilevel = 123
638
671
connect_module .threadsafety = 123
639
672
connect_module .paramstyle = "test"
@@ -887,8 +920,7 @@ def test_executemany_pymysql_integration_comment_stmt_enabled(self):
887
920
def test_executemany_flask_integration_comment (self ):
888
921
connect_module = mock .MagicMock ()
889
922
connect_module .__name__ = "test"
890
- connect_module .__version__ = mock .MagicMock ()
891
- connect_module .__libpq_version__ = 123
923
+ connect_module .pq .version .return_value = 123
892
924
connect_module .apilevel = 123
893
925
connect_module .threadsafety = 123
894
926
connect_module .paramstyle = "test"
@@ -904,7 +936,7 @@ def test_executemany_flask_integration_comment(self):
904
936
sqlcommenter_context = context .set_value (
905
937
"SQLCOMMENTER_ORM_TAGS_AND_VALUES" , {"flask" : 1 }, current_context
906
938
)
907
- context .attach (sqlcommenter_context )
939
+ token = context .attach (sqlcommenter_context )
908
940
909
941
mock_connection = db_integration .wrapped_connection (
910
942
mock_connect , {}, {}
@@ -923,16 +955,13 @@ def test_executemany_flask_integration_comment(self):
923
955
"Select 1;" ,
924
956
)
925
957
926
- clear_context = context .set_value (
927
- "SQLCOMMENTER_ORM_TAGS_AND_VALUES" , {}, current_context
928
- )
929
- context .attach (clear_context )
958
+ context .detach (token )
930
959
931
960
def test_executemany_flask_integration_comment_stmt_enabled (self ):
932
961
connect_module = mock .MagicMock ()
933
962
connect_module .__name__ = "test"
934
963
connect_module .__version__ = mock .MagicMock ()
935
- connect_module .__libpq_version__ = 123
964
+ connect_module .pq . version . return_value = 123
936
965
connect_module .apilevel = 123
937
966
connect_module .threadsafety = 123
938
967
connect_module .paramstyle = "test"
@@ -949,7 +978,7 @@ def test_executemany_flask_integration_comment_stmt_enabled(self):
949
978
sqlcommenter_context = context .set_value (
950
979
"SQLCOMMENTER_ORM_TAGS_AND_VALUES" , {"flask" : 1 }, current_context
951
980
)
952
- context .attach (sqlcommenter_context )
981
+ token = context .attach (sqlcommenter_context )
953
982
954
983
mock_connection = db_integration .wrapped_connection (
955
984
mock_connect , {}, {}
@@ -968,10 +997,7 @@ def test_executemany_flask_integration_comment_stmt_enabled(self):
968
997
r"Select 1 /\*dbapi_threadsafety=123,driver_paramstyle='test',flask=1,libpq_version=123,traceparent='\d{1,2}-[a-zA-Z0-9_]{32}-[a-zA-Z0-9_]{16}-\d{1,2}'\*/;" ,
969
998
)
970
999
971
- clear_context = context .set_value (
972
- "SQLCOMMENTER_ORM_TAGS_AND_VALUES" , {}, current_context
973
- )
974
- context .attach (clear_context )
1000
+ context .detach (token )
975
1001
976
1002
def test_callproc (self ):
977
1003
db_integration = dbapi .DatabaseApiIntegration (
@@ -1096,7 +1122,7 @@ def test_non_string_sql_conversion(self):
1096
1122
connect_module = mock .MagicMock ()
1097
1123
connect_module .__name__ = "test"
1098
1124
connect_module .__version__ = "1.0"
1099
- connect_module .__libpq_version__ = 123
1125
+ connect_module .pq . version . return_value = 123
1100
1126
connect_module .apilevel = "2.0"
1101
1127
connect_module .threadsafety = 1
1102
1128
connect_module .paramstyle = "test"
0 commit comments