File python-PyMySQL.spec of Package python-PyMySQL

# spec file for package python-PyMySQL
# Copyright (c) 2024 SUSE LLC
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via

# mariadb-rpm-macros is either not available or not sufficient for Leaps
%if 0%{?suse_version} > 1500
%bcond_without tests
%bcond_with tests

Name:           python-PyMySQL
Version:        1.1.1
Release:        0
Summary:        Pure Python MySQL Driver
License:        MIT
Group:          Development/Languages/Python
BuildRequires:  %{python_module base >= 3.7}
BuildRequires:  %{python_module cryptography}
BuildRequires:  %{python_module pip}
BuildRequires:  %{python_module pytest}
BuildRequires:  %{python_module wheel}
%if %{with tests}
BuildRequires:  mariadb-rpm-macros
# will be removed with next release
BuildRequires:  fdupes
BuildRequires:  python-rpm-macros
Requires:       python-cryptography
BuildArch:      noarch

This package contains a pure-Python MySQL client library. Documentation on the
MySQL client/server protocol can be found here:

The goal of pymysql is to be a drop-in replacement for MySQLdb and work on
CPython 2.3+, Jython, IronPython, PyPy and Python 3. We test for compatibility
by simply changing the import statements in the Django MySQL backend and running
its unit tests as well as running it against the MySQLdb and myconnpy unit tests.

%autosetup -p1 -n PyMySQL-%{version}
# remove unwanted shebang
sed -i '1 { /^#!/ d }' pymysql/tests/thirdparty/test_MySQLdb/*.py


%python_expand %fdupes %{buildroot}%{$python_sitelib}

%if %{with tests}
# Needs mysql server
#%%python_expand PYTHONPATH=%%{buildroot}%%{$python_sitelib} py.test-%%{$python_bin_suffix} -v
# start the mariadb server
%mysql_testserver_start -u $dbuser -p $dbuserpw -d $dbname1:$dbname2 -t 3306
# creating client config, see
cat << EOF > pymysql/tests/databases.json
   "database":"$dbname1", "use_unicode": true, "local_infile": true},
# running the test
export USER="$dbuser"
export PASSWORD="$dbuserpw"
# test_json is broken for mariadb 11.0.2
%pytest pymysql/tests  -k 'not (test_stored_procedures or test_json)' || exit_code=1
# stopping mariadb
exit $exit_code

%files %{python_files}
%license LICENSE

openSUSE Build Service is sponsored by