4
4
import functools
5
5
import os
6
6
import re
7
- import sys
8
7
from unittest .mock import MagicMock , patch
9
8
10
9
import pytest
17
16
DATABASE_URLS = [url .strip () for url in os .environ ["TEST_DATABASE_URLS" ].split ("," )]
18
17
19
18
20
- def mysql_versions (wrapped_func ):
21
- """
22
- Decorator used to handle multiple versions of Python for mysql drivers
23
- """
24
-
25
- @functools .wraps (wrapped_func )
26
- def check (* args , ** kwargs ): # pragma: no cover
27
- url = DatabaseURL (kwargs ["database_url" ])
28
- if url .scheme in ["mysql" , "mysql+aiomysql" ] and sys .version_info >= (3 , 10 ):
29
- pytest .skip ("aiomysql supports python 3.9 and lower" )
30
- if url .scheme == "mysql+asyncmy" and sys .version_info < (3 , 7 ):
31
- pytest .skip ("asyncmy supports python 3.7 and higher" )
32
- return wrapped_func (* args , ** kwargs )
33
-
34
- return check
35
-
36
-
37
19
class AsyncMock (MagicMock ):
38
20
async def __call__ (self , * args , ** kwargs ):
39
21
return super (AsyncMock , self ).__call__ (* args , ** kwargs )
@@ -145,7 +127,6 @@ def run_sync(*args, **kwargs):
145
127
146
128
147
129
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
148
- @mysql_versions
149
130
@async_adapter
150
131
async def test_queries (database_url ):
151
132
"""
@@ -223,7 +204,6 @@ async def test_queries(database_url):
223
204
224
205
225
206
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
226
- @mysql_versions
227
207
@async_adapter
228
208
async def test_queries_raw (database_url ):
229
209
"""
@@ -285,7 +265,6 @@ async def test_queries_raw(database_url):
285
265
286
266
287
267
@py
10000
test .mark .parametrize ("database_url" , DATABASE_URLS )
288
- @mysql_versions
289
268
@async_adapter
290
269
async def test_ddl_queries (database_url ):
291
270
"""
@@ -305,7 +284,6 @@ async def test_ddl_queries(database_url):
305
284
306
285
@pytest .mark .parametrize ("exception" , [Exception , asyncio .CancelledError ])
307
286
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
308
- @mysql_versions
309
287
@async_adapter
310
288
async def test_queries_after_error (database_url , exception ):
311
289
"""
@@ -327,7 +305,6 @@ async def test_queries_after_error(database_url, exception):
327
305
328
306
329
307
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
330
- @mysql_versions
331
308
@async_adapter
332
309
async def test_results_support_mapping_interface (database_url ):
333
310
"""
@@ -356,7 +333,6 @@ async def test_results_support_mapping_interface(database_url):
356
333
357
334
358
335
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
359
- @mysql_versions
360
336
@async_adapter
361
337
async def test_results_support_column_reference (database_url ):
362
338
"""
@@ -388,7 +364,6 @@ async def test_results_support_column_reference(database_url):
388
364
389
365
390
366
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
391
- @mysql_versions
392
367
@async_adapter
393
368
async def test_result_values_allow_duplicate_names (database_url ):
394
369
"""
@@ -405,7 +380,6 @@ async def test_result_values_allow_duplicate_names(database_url):
405
380
406
381
407
382
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
408
- @mysql_versions
409
383
@async_adapter
410
384
async def test_fetch_one_returning_no_results (database_url ):
411
385
"""
@@ -420,7 +394,6 @@ async def test_fetch_one_returning_no_results(database_url):
420
394
421
395
422
396
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
423
- @mysql_versions
424
397
@async_adapter
425
398
async def test_execute_return_val (database_url ):
426
399
"""
@@ -447,7 +420,6 @@ async def test_execute_return_val(database_url):
447
420
448
421
449
422
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
450
- @mysql_versions
451
423
@async_adapter
452
424
async def test_rollback_isolation (database_url ):
453
425
"""
@@ -467,7 +439,6 @@ async def test_rollback_isolation(database_url):
467
439
468
440
469
441
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
470
- @mysql_versions
471
442
@async_adapter
472
443
async def test_rollback_isolation_with_contextmanager (database_url ):
473
444
"""
@@ -490,7 +461,6 @@ async def test_rollback_isolation_with_contextmanager(database_url):
490
461
491
462
492
463
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
493
- @mysql_versions
494
464
@async_adapter
495
465
async def test_transaction_commit (database_url ):
496
466
"""
@@ -508,7 +478,6 @@ async def test_transaction_commit(database_url):
508
478
509
479
510
480
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
511
- @mysql_versions
512
481
@async_adapter
513
482
async def test_transaction_commit_serializable (database_url ):
514
483
"""
@@ -553,7 +522,6 @@ def delete_independently():
553
522
554
523
555
524
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
556
- @mysql_versions
557
525
@async_adapter
558
526
async def test_transaction_rollback (database_url ):
559
527
"""
@@ -576,7 +544,6 @@ async def test_transaction_rollback(database_url):
576
544
577
545
578
546
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
579
- @mysql_versions
580
547
@async_adapter
581
548
async def test_transaction_commit_low_level (database_url ):
582
549
"""
@@ -600,7 +567,6 @@ async def test_transaction_commit_low_level(database_url):
600
567
601
568
602
569
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
603
- @mysql_versions
604
570
@async_adapter
605
571
async def test_transaction_rollback_low_level (database_url ):
606
572
"""
@@ -625,7 +591,6 @@ async def test_transaction_rollback_low_level(database_url):
625
591
626
592
627
593
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
628
- @mysql_versions
629
594
@async_adapter
630
595
async def test_transaction_decorator (database_url ):
631
596
"""
@@ -656,7 +621,6 @@ async def insert_data(raise_exception):
656
621
657
622
658
623
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
659
- @mysql_versions
660
624
@async_adapter
661
625
async def test_datetime_field (database_url ):
662
626
"""
@@ -681,7 +645,6 @@ async def test_datetime_field(database_url):
681
645
682
646
683
647
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
684
- @mysql_versions
685
648
@async_adapter
686
649
async def test_decimal_field (database_url ):
687
650
"""
@@ -709,7 +672,6 @@ async def test_decimal_field(database_url):
709
672
710
673
711
674
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
712
- @mysql_versions
713
675
@async_adapter
714
676
async def test_json_field (database_url ):
715
677
"""
@@ -732,7 +694,6 @@ async def test_json_field(database_url):
732
694
733
695
734
696
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
735
- @mysql_versions
736
697
@async_adapter
737
698
async def test_custom_field (database_url ):
738
699
"""
@@ -758,7 +719,6 @@ async def test_custom_field(database_url):
758
719
759
720
760
721
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
761
- @mysql_versions
762
722
@async_adapter
763
723
async def test_connections_isolation (database_url ):
764
724
"""
@@ -781,7 +741,6 @@ async def test_connections_isolation(database_url):
781
741
782
742
783
743
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
784
- @mysql_versions
785
744
@async_adapter
786
745
async def test_commit_on_root_transaction (database_url ):
787
746
"""
@@ -806,7 +765,6 @@ async def test_commit_on_root_transaction(database_url):
806
765
807
766
808
767
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
809
- @mysql_versions
810
768
@async_adapter
811
769
async def test_connect_and_disconnect (database_url ):
812
770
"""
@@ -830,7 +788,6 @@ async def test_connect_and_disconnect(database_url):
830
788
831
789
832
790
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
833
- @mysql_versions
834
791
@async_adapter
835
792
async def test_connection_context (database_url ):
836
793
"""
@@ -872,7 +829,6 @@ async def get_connection_2():
872
829
873
830
874
831
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
875
- @mysql_versions
876
832
@async_adapter
877
833
async def test_connection_context_with_raw_connection (database_url ):
878
834
"""
@@ -886,7 +842,6 @@ async def test_connection_context_with_raw_connection(database_url):
886
842
887
843
888
844
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
889
- @mysql_versions
890
845
@async_adapter
891
846
async def test_queries_with_expose_backend_connection (database_url ):
892
847
"""
@@ -993,7 +948,6 @@ async def test_queries_with_expose_backend_connection(database_url):
993
948
994
949
995
950
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
996
- @mysql_versions
997
951
@async_adapter
998
952
async def test_database_url_interface (database_url ):
999
953
"""
@@ -1072,7 +1026,6 @@ async def test_iterate_outside_transaction_with_values(database_url):
1072
1026
1073
1027
1074
1028
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
1075
- @mysql_versions
1076
1029
@async_adapter
1077
1030
async def test_iterate_outside_transaction_with_temp_table (database_url ):
1078
1031
"""
@@ -1102,7 +1055,6 @@ async def test_iterate_outside_transaction_with_temp_table(database_url):
1102
1055
1103
1056
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
1104
1057
@pytest .mark .parametrize ("select_query" , [notes .select (), "SELECT * FROM notes" ])
1105
- @mysql_versions
1106
1058
@async_adapter
1107
1059
async def test_column_names (database_url , select_query ):
1108
1060
"""
@@ -1170,7 +1122,6 @@ async def test_posgres_interface(database_url):
1170
1122
1171
1123
1172
1124
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
1173
- @mysql_versions
1174
1125
@async_adapter
1175
1126
async def test_postcompile_queries (database_url ):
1176
1127
"""
@@ -1188,7 +1139,6 @@ async def test_postcompile_queries(database_url):
1188
1139
1189
1140
1190
1141
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
1191
- @mysql_versions
1192
1142
@async_adapter
1193
1143
async def test_result_named_access (database_url ):
1194
1144
async with Database (database_url ) as database :
@@ -1204,7 +1154,6 @@ async def test_result_named_access(database_url):
1204
1154
1205
1155
1206
1156
@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
1207
- @mysql_versions
1208
1157
@async_adapter
1209
1158
async def test_mapping_property_interface (database_url ):
1210
1159
"""
0 commit comments