apache-airflow-providers-mysql 6.3.3rc1__tar.gz → 6.3.4rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/PKG-INFO +9 -10
  2. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/README.rst +5 -6
  3. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/docs/changelog.rst +24 -0
  4. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/docs/index.rst +6 -8
  5. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/provider.yaml +2 -1
  6. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/pyproject.toml +5 -5
  7. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/src/airflow/providers/mysql/__init__.py +1 -1
  8. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/src/airflow/providers/mysql/hooks/mysql.py +2 -0
  9. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/tests/unit/mysql/hooks/test_mysql.py +17 -1
  10. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/docs/.latest-doc-only-change.txt +0 -0
  11. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/docs/commits.rst +0 -0
  12. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/docs/conf.py +0 -0
  13. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/docs/connections/mysql.rst +0 -0
  14. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/docs/installing-providers-from-sources.rst +0 -0
  15. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/docs/integration-logos/MySQL.png +0 -0
  16. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/docs/operators.rst +0 -0
  17. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/docs/redirects.txt +0 -0
  18. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/docs/security.rst +0 -0
  19. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/src/airflow/__init__.py +0 -0
  20. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/src/airflow/providers/__init__.py +0 -0
  21. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/src/airflow/providers/mysql/LICENSE +0 -0
  22. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/src/airflow/providers/mysql/assets/__init__.py +0 -0
  23. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/src/airflow/providers/mysql/assets/mysql.py +0 -0
  24. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/src/airflow/providers/mysql/get_provider_info.py +0 -0
  25. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/src/airflow/providers/mysql/hooks/__init__.py +0 -0
  26. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/src/airflow/providers/mysql/transfers/__init__.py +0 -0
  27. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/src/airflow/providers/mysql/transfers/presto_to_mysql.py +0 -0
  28. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/src/airflow/providers/mysql/transfers/s3_to_mysql.py +0 -0
  29. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/src/airflow/providers/mysql/transfers/trino_to_mysql.py +0 -0
  30. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/src/airflow/providers/mysql/transfers/vertica_to_mysql.py +0 -0
  31. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/src/airflow/providers/mysql/version_compat.py +0 -0
  32. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/tests/conftest.py +0 -0
  33. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/tests/system/__init__.py +0 -0
  34. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/tests/system/mysql/__init__.py +0 -0
  35. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/tests/system/mysql/example_mysql.py +0 -0
  36. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/tests/unit/__init__.py +0 -0
  37. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/tests/unit/mysql/__init__.py +0 -0
  38. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/tests/unit/mysql/assets/__init__.py +0 -0
  39. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/tests/unit/mysql/assets/test_mysql.py +0 -0
  40. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/tests/unit/mysql/hooks/__init__.py +0 -0
  41. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/tests/unit/mysql/hooks/test_mysql_connector_python.py +0 -0
  42. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/tests/unit/mysql/transfers/__init__.py +0 -0
  43. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/tests/unit/mysql/transfers/test_presto_to_mysql.py +0 -0
  44. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/tests/unit/mysql/transfers/test_s3_to_mysql.py +0 -0
  45. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/tests/unit/mysql/transfers/test_trino_to_mysql.py +0 -0
  46. {apache_airflow_providers_mysql-6.3.3rc1 → apache_airflow_providers_mysql-6.3.4rc1}/tests/unit/mysql/transfers/test_vertica_to_mysql.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-mysql
3
- Version: 6.3.3rc1
3
+ Version: 6.3.4rc1
4
4
  Summary: Provider package apache-airflow-providers-mysql for Apache Airflow
5
5
  Keywords: airflow-provider,mysql,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
@@ -23,7 +23,7 @@ Classifier: Topic :: System :: Monitoring
23
23
  Requires-Dist: apache-airflow>=2.10.0rc1
24
24
  Requires-Dist: apache-airflow-providers-common-sql>=1.20.0rc1
25
25
  Requires-Dist: mysqlclient>=2.2.5; sys_platform != "darwin"
26
- Requires-Dist: mysql-connector-python>=9.0.0
26
+ Requires-Dist: mysql-connector-python>=9.1.0
27
27
  Requires-Dist: aiomysql>=0.2.0
28
28
  Requires-Dist: apache-airflow-providers-amazon ; extra == "amazon"
29
29
  Requires-Dist: apache-airflow-providers-openlineage ; extra == "openlineage"
@@ -31,8 +31,8 @@ Requires-Dist: apache-airflow-providers-presto ; extra == "presto"
31
31
  Requires-Dist: apache-airflow-providers-trino ; extra == "trino"
32
32
  Requires-Dist: apache-airflow-providers-vertica ; extra == "vertica"
33
33
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
34
- Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.3.3/changelog.html
35
- Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.3.3
34
+ Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.3.4/changelog.html
35
+ Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.3.4
36
36
  Project-URL: Mastodon, https://fosstodon.org/@airflow
37
37
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
38
38
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -69,9 +69,8 @@ Provides-Extra: vertica
69
69
 
70
70
  Package ``apache-airflow-providers-mysql``
71
71
 
72
- Release: ``6.3.3``
72
+ Release: ``6.3.4``
73
73
 
74
- Release Date: ``|PypiReleaseDate|``
75
74
 
76
75
  `MySQL <https://www.mysql.com/>`__
77
76
 
@@ -83,12 +82,12 @@ This is a provider package for ``mysql`` provider. All classes for this provider
83
82
  are in ``airflow.providers.mysql`` python package.
84
83
 
85
84
  You can find package information and changelog for the provider
86
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.3/>`_.
85
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.4/>`_.
87
86
 
88
87
  Installation
89
88
  ------------
90
89
 
91
- You can install this package on top of an existing Airflow 2 installation (see ``Requirements`` below
90
+ You can install this package on top of an existing Airflow installation (see ``Requirements`` below
92
91
  for the minimum Airflow version supported) via
93
92
  ``pip install apache-airflow-providers-mysql``
94
93
 
@@ -103,7 +102,7 @@ PIP package Version required
103
102
  ``apache-airflow`` ``>=2.10.0``
104
103
  ``apache-airflow-providers-common-sql`` ``>=1.20.0``
105
104
  ``mysqlclient`` ``>=2.2.5; sys_platform != "darwin"``
106
- ``mysql-connector-python`` ``>=9.0.0``
105
+ ``mysql-connector-python`` ``>=9.1.0``
107
106
  ``aiomysql`` ``>=0.2.0``
108
107
  ======================================= =====================================
109
108
 
@@ -132,5 +131,5 @@ Dependent package
132
131
  ============================================================================================================== ===============
133
132
 
134
133
  The changelog for the provider package can be found in the
135
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.3/changelog.html>`_.
134
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.4/changelog.html>`_.
136
135
 
@@ -23,9 +23,8 @@
23
23
 
24
24
  Package ``apache-airflow-providers-mysql``
25
25
 
26
- Release: ``6.3.3``
26
+ Release: ``6.3.4``
27
27
 
28
- Release Date: ``|PypiReleaseDate|``
29
28
 
30
29
  `MySQL <https://www.mysql.com/>`__
31
30
 
@@ -37,12 +36,12 @@ This is a provider package for ``mysql`` provider. All classes for this provider
37
36
  are in ``airflow.providers.mysql`` python package.
38
37
 
39
38
  You can find package information and changelog for the provider
40
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.3/>`_.
39
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.4/>`_.
41
40
 
42
41
  Installation
43
42
  ------------
44
43
 
45
- You can install this package on top of an existing Airflow 2 installation (see ``Requirements`` below
44
+ You can install this package on top of an existing Airflow installation (see ``Requirements`` below
46
45
  for the minimum Airflow version supported) via
47
46
  ``pip install apache-airflow-providers-mysql``
48
47
 
@@ -57,7 +56,7 @@ PIP package Version required
57
56
  ``apache-airflow`` ``>=2.10.0``
58
57
  ``apache-airflow-providers-common-sql`` ``>=1.20.0``
59
58
  ``mysqlclient`` ``>=2.2.5; sys_platform != "darwin"``
60
- ``mysql-connector-python`` ``>=9.0.0``
59
+ ``mysql-connector-python`` ``>=9.1.0``
61
60
  ``aiomysql`` ``>=0.2.0``
62
61
  ======================================= =====================================
63
62
 
@@ -86,4 +85,4 @@ Dependent package
86
85
  ============================================================================================================== ===============
87
86
 
88
87
  The changelog for the provider package can be found in the
89
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.3/changelog.html>`_.
88
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-mysql/6.3.4/changelog.html>`_.
@@ -26,6 +26,30 @@
26
26
  Changelog
27
27
  ---------
28
28
 
29
+ 6.3.4
30
+ .....
31
+
32
+
33
+ Release Date: ``|PypiReleaseDate|``
34
+
35
+ Misc
36
+ ~~~~
37
+
38
+ * ``Bump mysql-connector-python>=9.1.0 to support SQLAlchemy 2.0 (#52233)``
39
+ * ``Add optional SQLA logging/diagnostics (#54315)``
40
+
41
+ Doc-only
42
+ ~~~~~~~~
43
+
44
+ * ``Make term Dag consistent in providers docs (#55101)``
45
+
46
+ .. Below changes are excluded from the changelog. Move them to
47
+ appropriate section above if needed. Do not delete the lines(!):
48
+ * ``Switch pre-commit to prek (#54258)``
49
+
50
+ .. Review and move the new changes to one of the sections above:
51
+ * ``Fix Airflow 2 reference in README/index of providers (#55240)``
52
+
29
53
  6.3.3
30
54
  .....
31
55
 
@@ -56,7 +56,7 @@
56
56
  :maxdepth: 1
57
57
  :caption: Resources
58
58
 
59
- Example DAGs <https://github.com/apache/airflow/tree/providers-mysql/|version|/providers/mysql/tests/system/mysql>
59
+ Example Dags <https://github.com/apache/airflow/tree/providers-mysql/|version|/providers/mysql/tests/system/mysql>
60
60
  PyPI Repository <https://pypi.org/project/apache-airflow-providers-mysql/>
61
61
  Installing from sources <installing-providers-from-sources>
62
62
 
@@ -77,9 +77,7 @@ apache-airflow-providers-mysql package
77
77
  `MySQL <https://www.mysql.com/>`__
78
78
 
79
79
 
80
- Release: 6.3.3
81
-
82
- Release Date: ``|PypiReleaseDate|``
80
+ Release: 6.3.4
83
81
 
84
82
  Provider package
85
83
  ----------------
@@ -90,7 +88,7 @@ All classes for this package are included in the ``airflow.providers.mysql`` pyt
90
88
  Installation
91
89
  ------------
92
90
 
93
- You can install this package on top of an existing Airflow 2 installation via
91
+ You can install this package on top of an existing Airflow installation via
94
92
  ``pip install apache-airflow-providers-mysql``.
95
93
  For the minimum Airflow version supported, see ``Requirements`` below.
96
94
 
@@ -105,7 +103,7 @@ PIP package Version required
105
103
  ``apache-airflow`` ``>=2.10.0``
106
104
  ``apache-airflow-providers-common-sql`` ``>=1.20.0``
107
105
  ``mysqlclient`` ``>=2.2.5; sys_platform != "darwin"``
108
- ``mysql-connector-python`` ``>=9.0.0``
106
+ ``mysql-connector-python`` ``>=9.1.0``
109
107
  ``aiomysql`` ``>=0.2.0``
110
108
  ======================================= =====================================
111
109
 
@@ -139,5 +137,5 @@ Downloading official packages
139
137
  You can download officially released packages and verify their checksums and signatures from the
140
138
  `Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
141
139
 
142
- * `The apache-airflow-providers-mysql 6.3.3 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.3.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.3.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.3.tar.gz.sha512>`__)
143
- * `The apache-airflow-providers-mysql 6.3.3 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.3-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.3-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.3-py3-none-any.whl.sha512>`__)
140
+ * `The apache-airflow-providers-mysql 6.3.4 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4.tar.gz.sha512>`__)
141
+ * `The apache-airflow-providers-mysql 6.3.4 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_mysql-6.3.4-py3-none-any.whl.sha512>`__)
@@ -22,12 +22,13 @@ description: |
22
22
  `MySQL <https://www.mysql.com/>`__
23
23
 
24
24
  state: ready
25
- source-date-epoch: 1753691629
25
+ source-date-epoch: 1756877094
26
26
  # Note that those versions are maintained by release manager - do not update them manually
27
27
  # with the exception of case where other provider in sources has >= new provider version.
28
28
  # In such case adding >= NEW_VERSION and bumping to NEW_VERSION in a provider have
29
29
  # to be done in the same PR
30
30
  versions:
31
+ - 6.3.4
31
32
  - 6.3.3
32
33
  - 6.3.2
33
34
  - 6.3.1
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
25
25
 
26
26
  [project]
27
27
  name = "apache-airflow-providers-mysql"
28
- version = "6.3.3rc1"
28
+ version = "6.3.4rc1"
29
29
  description = "Provider package apache-airflow-providers-mysql for Apache Airflow"
30
30
  readme = "README.rst"
31
31
  authors = [
@@ -54,7 +54,7 @@ requires-python = ">=3.10"
54
54
 
55
55
  # The dependencies should be modified in place in the generated file.
56
56
  # Any change in the dependencies is preserved when the file is regenerated
57
- # Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
57
+ # Make sure to run ``prek update-providers-dependencies --all-files``
58
58
  # After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
59
59
  dependencies = [
60
60
  "apache-airflow>=2.10.0rc1",
@@ -63,7 +63,7 @@ dependencies = [
63
63
  # Install and compile, and it's really only used by MySQL provider, so we can skip it on MacOS
64
64
  # Instead, if someone attempts to use it on MacOS, they will get explanatory error on how to install it
65
65
  'mysqlclient>=2.2.5; sys_platform != "darwin"',
66
- 'mysql-connector-python>=9.0.0',
66
+ 'mysql-connector-python>=9.1.0',
67
67
  "aiomysql>=0.2.0",
68
68
  ]
69
69
 
@@ -129,8 +129,8 @@ apache-airflow-providers-common-sql = {workspace = true}
129
129
  apache-airflow-providers-standard = {workspace = true}
130
130
 
131
131
  [project.urls]
132
- "Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.3.3"
133
- "Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.3.3/changelog.html"
132
+ "Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.3.4"
133
+ "Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-mysql/6.3.4/changelog.html"
134
134
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
135
135
  "Source Code" = "https://github.com/apache/airflow"
136
136
  "Slack Chat" = "https://s.apache.org/airflow-slack"
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "6.3.3"
32
+ __version__ = "6.3.4"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.10.0"
@@ -378,6 +378,8 @@ class MySqlHook(DbApiHook):
378
378
  # Determine URI prefix based on client
379
379
  if client_name == "mysql-connector-python":
380
380
  uri_prefix = "mysql+mysqlconnector://"
381
+ elif client_name == "pymysql":
382
+ uri_prefix = "mysql+pymysql://"
381
383
  else: # default: mysqlclient
382
384
  uri_prefix = "mysql://"
383
385
 
@@ -36,7 +36,11 @@ except ImportError:
36
36
  MYSQL_AVAILABLE = False
37
37
 
38
38
  from airflow.providers.mysql.hooks.mysql import MySqlHook
39
- from airflow.utils import timezone
39
+
40
+ try:
41
+ from airflow.sdk import timezone
42
+ except ImportError:
43
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
40
44
 
41
45
  from tests_common.test_utils.asserts import assert_equal_ignore_multiple_spaces
42
46
 
@@ -125,6 +129,18 @@ class TestMySqlHookConn:
125
129
  "mysql+mysqlconnector://user%40domain:password@host/schema",
126
130
  id="mysql_connector_python",
127
131
  ),
132
+ pytest.param(
133
+ {
134
+ "login": "user@domain",
135
+ "password": "password",
136
+ "host": "host",
137
+ "schema": "schema",
138
+ "port": None,
139
+ "extra": json.dumps({"client": "pymysql"}),
140
+ },
141
+ "mysql+pymysql://user%40domain:password@host/schema",
142
+ id="mysql_connector_pymysql",
143
+ ),
128
144
  pytest.param(
129
145
  {
130
146
  "login": "user@domain",