44import functools
55import os
66import re
7- import sys
87from unittest .mock import MagicMock , patch
98
109import pytest
1716DATABASE_URLS = [url .strip () for url in os .environ ["TEST_DATABASE_URLS" ].split ("," )]
1817
1918
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-
3719class AsyncMock (MagicMock ):
3820 async def __call__ (self , * args , ** kwargs ):
3921 return super (AsyncMock , self ).__call__ (* args , ** kwargs )
@@ -145,7 +127,6 @@ def run_sync(*args, **kwargs):
145127
146128
147129@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
148- @mysql_versions
149130@async_adapter
150131async def test_queries (database_url ):
151132 """
@@ -223,7 +204,6 @@ async def test_queries(database_url):
223204
224205
225206@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
226- @mysql_versions
227207@async_adapter
228208async def test_queries_raw (database_url ):
229209 """
@@ -285,7 +265,6 @@ async def test_queries_raw(database_url):
285265
286266
287267@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
288- @mysql_versions
289268@async_adapter
290269async def test_ddl_queries (database_url ):
291270 """
@@ -305,7 +284,6 @@ async def test_ddl_queries(database_url):
305284
306285@pytest .mark .parametrize ("exception" , [Exception , asyncio .CancelledError ])
307286@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
308- @mysql_versions
309287@async_adapter
310288async def test_queries_after_error (database_url , exception ):
311289 """
@@ -327,7 +305,6 @@ async def test_queries_after_error(database_url, exception):
327305
328306
329307@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
330- @mysql_versions
331308@async_adapter
332309async def test_results_support_mapping_interface (database_url ):
333310 """
@@ -356,7 +333,6 @@ async def test_results_support_mapping_interface(database_url):
356333
357334
358335@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
359- @mysql_versions
360336@async_adapter
361337async def test_results_support_column_reference (database_url ):
362338 """
@@ -388,7 +364,6 @@ async def test_results_support_column_reference(database_url):
388364
389365
390366@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
391- @mysql_versions
392367@async_adapter
393368async def test_result_values_allow_duplicate_names (database_url ):
394369 """
@@ -405,7 +380,6 @@ async def test_result_values_allow_duplicate_names(database_url):
405380
406381
407382@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
408- @mysql_versions
409383@async_adapter
410384async def test_fetch_one_returning_no_results (database_url ):
411385 """
@@ -420,7 +394,6 @@ async def test_fetch_one_returning_no_results(database_url):
420394
421395
422396@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
423- @mysql_versions
424397@async_adapter
425398async def test_execute_return_val (database_url ):
426399 """
@@ -447,7 +420,6 @@ async def test_execute_return_val(database_url):
447420
448421
449422@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
450- @mysql_versions
451423@async_adapter
452424async def test_rollback_isolation (database_url ):
453425 """
@@ -467,7 +439,6 @@ async def test_rollback_isolation(database_url):
467439
468440
469441@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
470- @mysql_versions
471442@async_adapter
472443async def test_rollback_isolation_with_contextmanager (database_url ):
473444 """
@@ -490,7 +461,6 @@ async def test_rollback_isolation_with_contextmanager(database_url):
490461
491462
492463@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
493- @mysql_versions
494464@async_adapter
495465async def test_transaction_commit (database_url ):
496466 """
@@ -508,7 +478,6 @@ async def test_transaction_commit(database_url):
508478
509479
510480@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
511- @mysql_versions
512481@async_adapter
513482async def test_transaction_commit_serializable (database_url ):
514483 """
@@ -553,7 +522,6 @@ def delete_independently():
553522
554523
555524@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
556- @mysql_versions
557525@async_adapter
558526async def test_transaction_rollback (database_url ):
559527 """
@@ -576,7 +544,6 @@ async def test_transaction_rollback(database_url):
576544
577545
578546@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
579- @mysql_versions
580547@async_adapter
581548async def test_transaction_commit_low_level (database_url ):
582549 """
@@ -600,7 +567,6 @@ async def test_transaction_commit_low_level(database_url):
600567
601568
602569@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
603- @mysql_versions
604570@async_adapter
605571async def test_transaction_rollback_low_level (database_url ):
606572 """
@@ -625,7 +591,6 @@ async def test_transaction_rollback_low_level(database_url):
625591
626592
627593@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
628- @mysql_versions
629594@async_adapter
630595async def test_transaction_decorator (database_url ):
631596 """
@@ -656,7 +621,6 @@ async def insert_data(raise_exception):
656621
657622
658623@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
659- @mysql_versions
660624@async_adapter
661625async def test_datetime_field (database_url ):
662626 """
@@ -681,7 +645,6 @@ async def test_datetime_field(database_url):
681645
682646
683647@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
684- @mysql_versions
685648@async_adapter
686649async def test_decimal_field (database_url ):
687650 """
@@ -709,7 +672,6 @@ async def test_decimal_field(database_url):
709672
710673
711674@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
712- @mysql_versions
713675@async_adapter
714676async def test_json_field (database_url ):
715677 """
@@ -732,7 +694,6 @@ async def test_json_field(database_url):
732694
733695
734696@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
735- @mysql_versions
736697@async_adapter
737698async def test_custom_field (database_url ):
738699 """
@@ -758,7 +719,6 @@ async def test_custom_field(database_url):
758719
759720
760721@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
761- @mysql_versions
762722@async_adapter
763723async def test_connections_isolation (database_url ):
764724 """
@@ -781,7 +741,6 @@ async def test_connections_isolation(database_url):
781741
782742
783743@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
784- @mysql_versions
785744@async_adapter
786745async def test_commit_on_root_transaction (database_url ):
787746 """
@@ -806,7 +765,6 @@ async def test_commit_on_root_transaction(database_url):
806765
807766
808767@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
809- @mysql_versions
810768@async_adapter
811769async def test_connect_and_disconnect (database_url ):
812770 """
@@ -830,7 +788,6 @@ async def test_connect_and_disconnect(database_url):
830788
831789
832790@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
833- @mysql_versions
834791@async_adapter
835792async def test_connection_context (database_url ):
836793 """
@@ -872,7 +829,6 @@ async def get_connection_2():
872829
873830
874831@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
875- @mysql_versions
876832@async_adapter
877833async def test_connection_context_with_raw_connection (database_url ):
878834 """
@@ -886,7 +842,6 @@ async def test_connection_context_with_raw_connection(database_url):
886842
887843
888844@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
889- @mysql_versions
890845@async_adapter
891846async def test_queries_with_expose_backend_connection (database_url ):
892847 """
@@ -993,7 +948,6 @@ async def test_queries_with_expose_backend_connection(database_url):
993948
994949
995950@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
996- @mysql_versions
997951@async_adapter
998952async def test_database_url_interface (database_url ):
999953 """
@@ -1072,7 +1026,6 @@ async def test_iterate_outside_transaction_with_values(database_url):
10721026
10731027
10741028@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
1075- @mysql_versions
10761029@async_adapter
10771030async def test_iterate_outside_transaction_with_temp_table (database_url ):
10781031 """
@@ -1102,7 +1055,6 @@ async def test_iterate_outside_transaction_with_temp_table(database_url):
11021055
11031056@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
11041057@pytest .mark .parametrize ("select_query" , [notes .select (), "SELECT * FROM notes" ])
1105- @mysql_versions
11061058@async_adapter
11071059async def test_column_names (database_url , select_query ):
11081060 """
@@ -1170,7 +1122,6 @@ async def test_posgres_interface(database_url):
11701122
11711123
11721124@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
1173- @mysql_versions
11741125@async_adapter
11751126async def test_postcompile_queries (database_url ):
11761127 """
@@ -1188,7 +1139,6 @@ async def test_postcompile_queries(database_url):
11881139
11891140
11901141@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
1191- @mysql_versions
11921142@async_adapter
11931143async def test_result_named_access (database_url ):
11941144 async with Database (database_url ) as database :
@@ -1204,7 +1154,6 @@ async def test_result_named_access(database_url):
12041154
12051155
12061156@pytest .mark .parametrize ("database_url" , DATABASE_URLS )
1207- @mysql_versions
12081157@async_adapter
12091158async def test_mapping_property_interface (database_url ):
12101159 """
0 commit comments