1
0

Accepting request 811739 from devel:languages:python

OBS-URL: https://build.opensuse.org/request/show/811739
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-PyMySQL?expand=0&rev=12
This commit is contained in:
Dominique Leuenberger 2020-06-09 22:46:49 +00:00 committed by Git OBS Bridge
commit 28f801ec6d
4 changed files with 530 additions and 5 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:d8c059dcd81dedb85a9f034d5e22dcb4442c0b201908bede99e306d65ea7c8e7 oid sha256:5a85599a69b51db185f9447ba5034501482496e481574bce972c7dcb5abe1d57
size 75293 size 86715

View File

@ -0,0 +1,485 @@
Index: PyMySQL-0.9.3/pymysql/tests/__init__.py
===================================================================
--- PyMySQL-0.9.3.orig/pymysql/tests/__init__.py 2018-06-27 09:28:18.000000000 +0200
+++ PyMySQL-0.9.3/pymysql/tests/__init__.py 2020-06-03 10:13:17.705278419 +0200
@@ -14,5 +14,5 @@ from pymysql.tests.test_optionfile impor
from pymysql.tests.thirdparty import *
if __name__ == "__main__":
- import unittest2
- unittest2.main()
+ import unittest
+ unittest.main()
Index: PyMySQL-0.9.3/pymysql/tests/base.py
===================================================================
--- PyMySQL-0.9.3.orig/pymysql/tests/base.py 2018-12-17 13:00:21.000000000 +0100
+++ PyMySQL-0.9.3/pymysql/tests/base.py 2020-06-03 10:13:17.705278419 +0200
@@ -3,14 +3,33 @@ import json
import os
import re
import warnings
-
-import unittest2
+import unittest
import pymysql
from .._compat import CPYTHON
-class PyMySQLTestCase(unittest2.TestCase):
+if CPYTHON:
+ import atexit
+ gc.set_debug(gc.DEBUG_UNCOLLECTABLE)
+
+ @atexit.register
+ def report_uncollectable():
+ import gc
+ if not gc.garbage:
+ print("No garbages!")
+ return
+ print('uncollectable objects')
+ for obj in gc.garbage:
+ print(obj)
+ if hasattr(obj, '__dict__'):
+ print(obj.__dict__)
+ for ref in gc.get_referrers(obj):
+ print("referrer:", ref)
+ print('---')
+
+
+class PyMySQLTestCase(unittest.TestCase):
# You can specify your test environment creating a file named
# "databases.json" or editing the `databases` variable below.
fname = os.path.join(os.path.dirname(__file__), "databases.json")
@@ -97,7 +116,6 @@ class PyMySQLTestCase(unittest2.TestCase
"""Ensure cycles are collected via gc.
Runs additional times on non-CPython platforms.
-
"""
gc.collect()
if not CPYTHON:
Index: PyMySQL-0.9.3/pymysql/tests/test_basic.py
===================================================================
--- PyMySQL-0.9.3.orig/pymysql/tests/test_basic.py 2018-12-18 10:58:59.000000000 +0100
+++ PyMySQL-0.9.3/pymysql/tests/test_basic.py 2020-06-03 10:13:17.705278419 +0200
@@ -4,7 +4,7 @@ import json
import time
import warnings
-from unittest2 import SkipTest
+import pytest
from pymysql import util
import pymysql.cursors
@@ -143,7 +143,7 @@ class TestConversion(base.PyMySQLTestCas
conn = self.connect()
if not self.mysql_server_is(conn, (5, 6, 4)):
- raise SkipTest("target backend does not support microseconds")
+ pytest.skip("target backend does not support microseconds")
c = conn.cursor()
dt = datetime.datetime(2013, 11, 12, 9, 9, 9, 123450)
c.execute("create table test_datetime (id int, ts datetime(6))")
@@ -256,7 +256,7 @@ class TestCursor(base.PyMySQLTestCase):
args["charset"] = "utf8mb4"
conn = pymysql.connect(**args)
if not self.mysql_server_is(conn, (5, 7, 0)):
- raise SkipTest("JSON type is not supported on MySQL <= 5.6")
+ pytest.skip("JSON type is not supported on MySQL <= 5.6")
self.safe_create_table(conn, "test_json", """\
create table test_json (
Index: PyMySQL-0.9.3/pymysql/tests/test_connection.py
===================================================================
--- PyMySQL-0.9.3.orig/pymysql/tests/test_connection.py 2018-12-18 10:58:59.000000000 +0100
+++ PyMySQL-0.9.3/pymysql/tests/test_connection.py 2020-06-03 10:13:17.705278419 +0200
@@ -1,7 +1,7 @@
import datetime
import sys
import time
-import unittest2
+import pytest
import pymysql
from pymysql.tests import base
from pymysql._compat import text_type
@@ -100,14 +100,14 @@ class TestAuthentication(base.PyMySQLTes
def test_plugin(self):
conn = self.connect()
if not self.mysql_server_is(conn, (5, 5, 0)):
- raise unittest2.SkipTest("MySQL-5.5 required for plugins")
+ pytest.skip("MySQL-5.5 required for plugins")
cur = conn.cursor()
cur.execute("select plugin from mysql.user where concat(user, '@', host)=current_user()")
for r in cur:
self.assertIn(conn._auth_plugin_name, (r[0], 'mysql_native_password'))
- @unittest2.skipUnless(socket_auth, "connection to unix_socket required")
- @unittest2.skipIf(socket_found, "socket plugin already installed")
+ @pytest.mark.skipif(not socket_auth, reason="connection to unix_socket required")
+ @pytest.mark.skipif(socket_found, reason="socket plugin already installed")
def testSocketAuthInstallPlugin(self):
# needs plugin. lets install it.
cur = self.connect().cursor()
@@ -124,13 +124,13 @@ class TestAuthentication(base.PyMySQLTes
self.realtestSocketAuth()
except pymysql.err.InternalError:
TestAuthentication.socket_found = False
- raise unittest2.SkipTest('we couldn\'t install the socket plugin')
+ pytest.skip('we couldn\'t install the socket plugin')
finally:
if TestAuthentication.socket_found:
cur.execute("uninstall plugin %s" % self.socket_plugin_name)
- @unittest2.skipUnless(socket_auth, "connection to unix_socket required")
- @unittest2.skipUnless(socket_found, "no socket plugin")
+ @pytest.mark.skipif(not socket_auth, reason="connection to unix_socket required")
+ @pytest.mark.skipif(not socket_found, reason="no socket plugin")
def testSocketAuth(self):
self.realtestSocketAuth()
@@ -179,8 +179,8 @@ class TestAuthentication(base.PyMySQLTes
self.con=con
- @unittest2.skipUnless(socket_auth, "connection to unix_socket required")
- @unittest2.skipIf(two_questions_found, "two_questions plugin already installed")
+ @pytest.mark.skipif(not socket_auth, reason="connection to unix_socket required")
+ @pytest.mark.skipif(two_questions_found, reason="two_questions plugin already installed")
def testDialogAuthTwoQuestionsInstallPlugin(self):
# needs plugin. lets install it.
cur = self.connect().cursor()
@@ -189,13 +189,13 @@ class TestAuthentication(base.PyMySQLTes
TestAuthentication.two_questions_found = True
self.realTestDialogAuthTwoQuestions()
except pymysql.err.InternalError:
- raise unittest2.SkipTest('we couldn\'t install the two_questions plugin')
+ pytest.skip('we couldn\'t install the two_questions plugin')
finally:
if TestAuthentication.two_questions_found:
cur.execute("uninstall plugin two_questions")
- @unittest2.skipUnless(socket_auth, "connection to unix_socket required")
- @unittest2.skipUnless(two_questions_found, "no two questions auth plugin")
+ @pytest.mark.skipif(not socket_auth, reason="connection to unix_socket required")
+ @pytest.mark.skipif(not two_questions_found, reason="no two questions auth plugin")
def testDialogAuthTwoQuestions(self):
self.realTestDialogAuthTwoQuestions()
@@ -209,8 +209,8 @@ class TestAuthentication(base.PyMySQLTes
pymysql.connect(user='pymysql_2q', **self.db)
pymysql.connect(user='pymysql_2q', auth_plugin_map={b'dialog': TestAuthentication.Dialog}, **self.db)
- @unittest2.skipUnless(socket_auth, "connection to unix_socket required")
- @unittest2.skipIf(three_attempts_found, "three_attempts plugin already installed")
+ @pytest.mark.skipif(not socket_auth, reason="connection to unix_socket required")
+ @pytest.mark.skipif(three_attempts_found, reason="three_attempts plugin already installed")
def testDialogAuthThreeAttemptsQuestionsInstallPlugin(self):
# needs plugin. lets install it.
cur = self.connect().cursor()
@@ -219,13 +219,13 @@ class TestAuthentication(base.PyMySQLTes
TestAuthentication.three_attempts_found = True
self.realTestDialogAuthThreeAttempts()
except pymysql.err.InternalError:
- raise unittest2.SkipTest('we couldn\'t install the three_attempts plugin')
+ pytest.skip('we couldn\'t install the three_attempts plugin')
finally:
if TestAuthentication.three_attempts_found:
cur.execute("uninstall plugin three_attempts")
- @unittest2.skipUnless(socket_auth, "connection to unix_socket required")
- @unittest2.skipUnless(three_attempts_found, "no three attempts plugin")
+ @pytest.mark.skipif(not socket_auth, reason="connection to unix_socket required")
+ @pytest.mark.skipif(not three_attempts_found, reason="no three attempts plugin")
def testDialogAuthThreeAttempts(self):
self.realTestDialogAuthThreeAttempts()
@@ -250,10 +250,10 @@ class TestAuthentication(base.PyMySQLTes
with self.assertRaises(pymysql.err.OperationalError):
pymysql.connect(user='pymysql_3a', auth_plugin_map={b'dialog': TestAuthentication.Dialog}, **self.db)
- @unittest2.skipUnless(socket_auth, "connection to unix_socket required")
- @unittest2.skipIf(pam_found, "pam plugin already installed")
- @unittest2.skipIf(os.environ.get('PASSWORD') is None, "PASSWORD env var required")
- @unittest2.skipIf(os.environ.get('PAMSERVICE') is None, "PAMSERVICE env var required")
+ @pytest.mark.skipif(not socket_auth, reason="connection to unix_socket required")
+ @pytest.mark.skipif(pam_found, reason="pam plugin already installed")
+ @pytest.mark.skipif(os.environ.get('PASSWORD') is None, reason="PASSWORD env var required")
+ @pytest.mark.skipif(os.environ.get('PAMSERVICE') is None, reason="PAMSERVICE env var required")
def testPamAuthInstallPlugin(self):
# needs plugin. lets install it.
cur = self.connect().cursor()
@@ -262,16 +262,16 @@ class TestAuthentication(base.PyMySQLTes
TestAuthentication.pam_found = True
self.realTestPamAuth()
except pymysql.err.InternalError:
- raise unittest2.SkipTest('we couldn\'t install the auth_pam plugin')
+ pytest.skip('we couldn\'t install the auth_pam plugin')
finally:
if TestAuthentication.pam_found:
cur.execute("uninstall plugin pam")
- @unittest2.skipUnless(socket_auth, "connection to unix_socket required")
- @unittest2.skipUnless(pam_found, "no pam plugin")
- @unittest2.skipIf(os.environ.get('PASSWORD') is None, "PASSWORD env var required")
- @unittest2.skipIf(os.environ.get('PAMSERVICE') is None, "PAMSERVICE env var required")
+ @pytest.mark.skipif(not socket_auth, reason="connection to unix_socket required")
+ @pytest.mark.skipif(not pam_found, reason="no pam plugin")
+ @pytest.mark.skipif(os.environ.get('PASSWORD') is None, reason="PASSWORD env var required")
+ @pytest.mark.skipif(os.environ.get('PAMSERVICE') is None, reason="PAMSERVICE env var required")
def testPamAuth(self):
self.realTestPamAuth()
@@ -311,16 +311,16 @@ class TestAuthentication(base.PyMySQLTes
# select old_password("crummy p\tassword");
#| old_password("crummy p\tassword") |
#| 2a01785203b08770 |
- @unittest2.skipUnless(socket_auth, "connection to unix_socket required")
- @unittest2.skipUnless(mysql_old_password_found, "no mysql_old_password plugin")
+ @pytest.mark.skipif(not socket_auth, reason="connection to unix_socket required")
+ @pytest.mark.skipif(not mysql_old_password_found, reason="no mysql_old_password plugin")
def testMySQLOldPasswordAuth(self):
conn = self.connect()
if self.mysql_server_is(conn, (5, 7, 0)):
- raise unittest2.SkipTest('Old passwords aren\'t supported in 5.7')
+ pytest.skip('Old passwords aren\'t supported in 5.7')
# pymysql.err.OperationalError: (1045, "Access denied for user 'old_pass_user'@'localhost' (using password: YES)")
# from login in MySQL-5.6
if self.mysql_server_is(conn, (5, 6, 0)):
- raise unittest2.SkipTest('Old passwords don\'t authenticate in 5.6')
+ pytest.skip('Old passwords don\'t authenticate in 5.6')
db = self.db.copy()
db['password'] = "crummy p\tassword"
c = conn.cursor()
@@ -354,8 +354,8 @@ class TestAuthentication(base.PyMySQLTes
cur.execute("SELECT VERSION()")
c.execute('set global secure_auth=%r' % secure_auth_setting)
- @unittest2.skipUnless(socket_auth, "connection to unix_socket required")
- @unittest2.skipUnless(sha256_password_found, "no sha256 password authentication plugin found")
+ @pytest.mark.skipif(not socket_auth, reason="connection to unix_socket required")
+ @pytest.mark.skipif(not sha256_password_found, reason="no sha256 password authentication plugin found")
def testAuthSHA256(self):
conn = self.connect()
c = conn.cursor()
Index: PyMySQL-0.9.3/pymysql/tests/test_err.py
===================================================================
--- PyMySQL-0.9.3.orig/pymysql/tests/test_err.py 2016-09-01 13:09:00.000000000 +0200
+++ PyMySQL-0.9.3/pymysql/tests/test_err.py 2020-06-03 10:13:17.705278419 +0200
@@ -1,4 +1,4 @@
-import unittest2
+import unittest
from pymysql import err
@@ -6,7 +6,7 @@ from pymysql import err
__all__ = ["TestRaiseException"]
-class TestRaiseException(unittest2.TestCase):
+class TestRaiseException(unittest.TestCase):
def test_raise_mysql_exception(self):
data = b"\xff\x15\x04Access denied"
Index: PyMySQL-0.9.3/pymysql/tests/test_issues.py
===================================================================
--- PyMySQL-0.9.3.orig/pymysql/tests/test_issues.py 2018-12-18 10:58:59.000000000 +0100
+++ PyMySQL-0.9.3/pymysql/tests/test_issues.py 2020-06-03 10:13:17.705278419 +0200
@@ -3,11 +3,12 @@ import time
import warnings
import sys
+import pytest
+
import pymysql
from pymysql import cursors
from pymysql._compat import text_type
from pymysql.tests import base
-import unittest2
try:
import imp
@@ -145,7 +146,7 @@ KEY (`station`,`dh`,`echeance`)) ENGINE=
finally:
c.execute("drop table issue16")
- @unittest2.skip("test_issue_17() requires a custom, legacy MySQL configuration and will not be run.")
+ @pytest.mark.skip("test_issue_17() requires a custom, legacy MySQL configuration and will not be run.")
def test_issue_17(self):
"""could not connect mysql use passwod"""
conn = self.connect()
@@ -189,7 +190,7 @@ class TestNewIssues(base.PyMySQLTestCase
c.execute(u"select name from hei\xdfe")
self.assertEqual(u"Pi\xdfata", c.fetchone()[0])
- @unittest2.skip("This test requires manual intervention")
+ @pytest.mark.skip("This test requires manual intervention")
def test_issue_35(self):
conn = self.connect()
c = conn.cursor()
Index: PyMySQL-0.9.3/pymysql/tests/test_nextset.py
===================================================================
--- PyMySQL-0.9.3.orig/pymysql/tests/test_nextset.py 2018-05-07 13:40:08.000000000 +0200
+++ PyMySQL-0.9.3/pymysql/tests/test_nextset.py 2020-06-03 10:13:17.705278419 +0200
@@ -1,4 +1,4 @@
-import unittest2
+import pytest
import pymysql
from pymysql import util
@@ -50,7 +50,7 @@ class TestNextset(base.PyMySQLTestCase):
self.assertEqual([(2,)], list(cur))
self.assertFalse(bool(cur.nextset()))
- @unittest2.expectedFailure
+ @pytest.mark.xfail
def test_multi_cursor(self):
con = self.connect(client_flag=CLIENT.MULTI_STATEMENTS)
cur1 = con.cursor()
Index: PyMySQL-0.9.3/pymysql/tests/thirdparty/__init__.py
===================================================================
--- PyMySQL-0.9.3.orig/pymysql/tests/thirdparty/__init__.py 2014-08-29 13:32:54.000000000 +0200
+++ PyMySQL-0.9.3/pymysql/tests/thirdparty/__init__.py 2020-06-03 10:13:17.705278419 +0200
@@ -1,8 +1,5 @@
from .test_MySQLdb import *
if __name__ == "__main__":
- try:
- import unittest2 as unittest
- except ImportError:
- import unittest
+ import unittest
unittest.main()
Index: PyMySQL-0.9.3/pymysql/tests/thirdparty/test_MySQLdb/capabilities.py
===================================================================
--- PyMySQL-0.9.3.orig/pymysql/tests/thirdparty/test_MySQLdb/capabilities.py 2018-05-07 13:40:08.000000000 +0200
+++ PyMySQL-0.9.3/pymysql/tests/thirdparty/test_MySQLdb/capabilities.py 2020-06-03 10:13:17.705278419 +0200
@@ -6,10 +6,7 @@
"""
import sys
from time import time
-try:
- import unittest2 as unittest
-except ImportError:
- import unittest
+import unittest
PY2 = sys.version_info[0] == 2
Index: PyMySQL-0.9.3/pymysql/tests/thirdparty/test_MySQLdb/dbapi20.py
===================================================================
--- PyMySQL-0.9.3.orig/pymysql/tests/thirdparty/test_MySQLdb/dbapi20.py 2018-03-26 09:46:10.000000000 +0200
+++ PyMySQL-0.9.3/pymysql/tests/thirdparty/test_MySQLdb/dbapi20.py 2020-06-03 10:13:17.705278419 +0200
@@ -14,12 +14,8 @@ __rcs_id__ = '$Id$'
__version__ = '$Revision$'[11:-2]
__author__ = 'Stuart Bishop <zen@shangri-la.dropbear.id.au>'
-try:
- import unittest2 as unittest
-except ImportError:
- import unittest
-
import time
+import unittest
# $Log$
# Revision 1.1.2.1 2006/02/25 03:44:32 adustman
Index: PyMySQL-0.9.3/pymysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_capabilities.py
===================================================================
--- PyMySQL-0.9.3.orig/pymysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_capabilities.py 2018-05-07 13:55:31.000000000 +0200
+++ PyMySQL-0.9.3/pymysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_capabilities.py 2020-06-03 10:13:17.705278419 +0200
@@ -1,8 +1,5 @@
from . import capabilities
-try:
- import unittest2 as unittest
-except ImportError:
- import unittest
+import unittest
import pymysql
from pymysql.tests import base
import warnings
Index: PyMySQL-0.9.3/pymysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_dbapi20.py
===================================================================
--- PyMySQL-0.9.3.orig/pymysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_dbapi20.py 2018-03-26 09:46:10.000000000 +0200
+++ PyMySQL-0.9.3/pymysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_dbapi20.py 2020-06-03 10:13:17.705278419 +0200
@@ -2,10 +2,7 @@ from . import dbapi20
import pymysql
from pymysql.tests import base
-try:
- import unittest2 as unittest
-except ImportError:
- import unittest
+import unittest
class test_MySQLdb(dbapi20.DatabaseAPI20Test):
Index: PyMySQL-0.9.3/pymysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_nonstandard.py
===================================================================
--- PyMySQL-0.9.3.orig/pymysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_nonstandard.py 2018-03-26 09:46:10.000000000 +0200
+++ PyMySQL-0.9.3/pymysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_nonstandard.py 2020-06-03 10:13:17.705278419 +0200
@@ -1,8 +1,5 @@
import sys
-try:
- import unittest2 as unittest
-except ImportError:
- import unittest
+import unittest
import pymysql
_mysql = pymysql
Index: PyMySQL-0.9.3/runtests.py
===================================================================
--- PyMySQL-0.9.3.orig/runtests.py 2018-06-27 11:32:13.000000000 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,31 +0,0 @@
-#!/usr/bin/env python
-import unittest2
-
-from pymysql._compat import PYPY, JYTHON, IRONPYTHON
-
-#import pymysql
-#pymysql.connections.DEBUG = True
-#pymysql._auth.DEBUG = True
-
-if not (PYPY or JYTHON or IRONPYTHON):
- import atexit
- import gc
- gc.set_debug(gc.DEBUG_UNCOLLECTABLE)
-
- @atexit.register
- def report_uncollectable():
- import gc
- if not gc.garbage:
- print("No garbages!")
- return
- print('uncollectable objects')
- for obj in gc.garbage:
- print(obj)
- if hasattr(obj, '__dict__'):
- print(obj.__dict__)
- for ref in gc.get_referrers(obj):
- print("referrer:", ref)
- print('---')
-
-import pymysql.tests
-unittest2.main(pymysql.tests, verbosity=2)
Index: PyMySQL-0.9.3/tox.ini
===================================================================
--- PyMySQL-0.9.3.orig/tox.ini 2018-12-17 12:37:20.000000000 +0100
+++ PyMySQL-0.9.3/tox.ini 2020-06-03 10:13:17.705278419 +0200
@@ -1,10 +1,9 @@
[tox]
-envlist = py27,py34,py35,py36,py37,pypy,pypy3
+envlist = py27,py35,py36,py37,pypy,pypy3
[testenv]
-commands = coverage run ./runtests.py
-deps = unittest2
- coverage
+commands = pytest -v pymysql/tests/
+deps = coverage pytest
passenv = USER
PASSWORD
PAMSERVICE

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Thu Jun 4 09:21:14 UTC 2020 - pgajdos@suse.com
- test package with mariadb
- added patches
https://github.com/PyMySQL/PyMySQL/commit/a500fcd64d4500417540a2a2ff7b16a88d1872ad
+ python-PyMySQL-no-unittest2.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Mar 6 09:11:17 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com> Wed Mar 6 09:11:17 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>

View File

@ -1,7 +1,7 @@
# #
# spec file for package python-PyMySQL # spec file for package python-PyMySQL
# #
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2020 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -24,12 +24,14 @@ Summary: Pure Python MySQL Driver
License: MIT License: MIT
Group: Development/Languages/Python Group: Development/Languages/Python
URL: https://github.com/PyMySQL/PyMySQL/ URL: https://github.com/PyMySQL/PyMySQL/
Source: https://files.pythonhosted.org/packages/source/P/PyMySQL/PyMySQL-%{version}.tar.gz Source: https://github.com/PyMySQL/PyMySQL/archive/v%{version}.tar.gz#/PyMySQL-0.9.3.tar.gz
# https://github.com/PyMySQL/PyMySQL/commit/a500fcd64d4500417540a2a2ff7b16a88d1872ad
Patch0: python-PyMySQL-no-unittest2.patch
BuildRequires: %{python_module cryptography} BuildRequires: %{python_module cryptography}
BuildRequires: %{python_module pytest} BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools} BuildRequires: %{python_module setuptools}
BuildRequires: mariadb-rpm-macros
# will be removed with next release # will be removed with next release
BuildRequires: %{python_module unittest2}
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: python-rpm-macros BuildRequires: python-rpm-macros
Requires: python-cryptography Requires: python-cryptography
@ -48,6 +50,7 @@ its unit tests as well as running it against the MySQLdb and myconnpy unit tests
%prep %prep
%setup -q -n PyMySQL-%{version} %setup -q -n PyMySQL-%{version}
%patch0 -p1
# remove unwanted shebang # remove unwanted shebang
sed -i '1 { /^#!/ d }' pymysql/tests/thirdparty/test_MySQLdb/*.py sed -i '1 { /^#!/ d }' pymysql/tests/thirdparty/test_MySQLdb/*.py
@ -59,8 +62,37 @@ sed -i '1 { /^#!/ d }' pymysql/tests/thirdparty/test_MySQLdb/*.py
%python_expand %fdupes %{buildroot}%{$python_sitelib} %python_expand %fdupes %{buildroot}%{$python_sitelib}
%check %check
exit_code=0
dbuser='db_user'
dbuserpw='db_user_secret'
dbname1='test1'
dbname2='test2'
# Needs mysql server # Needs mysql server
#%%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} py.test-%{$python_bin_suffix} -v #%%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} py.test-%{$python_bin_suffix} -v
cconf=abuild-myclient.cnf
#
# start the mariadb server
#
%mysql_testserver_start -u $dbuser -p $dbuserpw -d $dbname1:$dbname2 -t 3306
#
# creating client config, see base.py
#
cat << EOF > pymysql/tests/databases.json
[{"host":"localhost","user":"$dbuser","passwd":"$dbuserpw",
"db":"$dbname1", "use_unicode": true, "local_infile": true},
{"host":"localhost","user":"$dbuser","passwd":"$dbuserpw","db":"$dbname2"}]
EOF
#
# running the test
#
export USER="$dbuser"
export PASSWORD="$dbuserpw"
%pytest pymysql/tests || exit_code=1
#
# stopping mariadb
#
%mysql_testserver_stop
exit $exit_code
%files %{python_files} %files %{python_files}
%license LICENSE %license LICENSE