oz123 10 лет назад
Родитель
Сommit
1639ede285
4 измененных файлов с 15 добавлено и 4 удалено
  1. 1 0
      .travis.yml
  2. 7 1
      pwman/data/drivers/mysql.py
  3. 6 2
      pwman/tests/test_mysql.py
  4. 1 1
      setup.py

+ 1 - 0
.travis.yml

@@ -17,6 +17,7 @@ before_install:
   - sudo apt-get install python-mysqldb
 # command to install dependencies, e.g. pip install -r requirements.txt --use-mirrors
 install: 
+  - "pip install pymysql"   
   - "pip install -r requirements.txt"
   - "pip install coveralls"
   - "pip install ."

+ 7 - 1
pwman/data/drivers/mysql.py

@@ -24,7 +24,13 @@
 """MySQL Database implementation."""
 from __future__ import print_function
 from pwman.data.database import Database, __DB_FORMAT__
-import MySQLdb as mysql
+import sys
+
+if sys.version_info.major > 2:  # pragma: no cover
+    import pymysql as mysql
+    mysql.install_as_MySQLdb()
+else:
+    import MySQLdb as mysql
 
 
 class MySQLDatabase(Database):

+ 6 - 2
pwman/tests/test_mysql.py

@@ -23,7 +23,11 @@ if sys.version_info.major > 2:  # pragma: no cover
     from urllib.parse import urlparse
 else:  # pragma: no cover
     from urlparse import urlparse
-import MySQLdb
+if sys.version_info.major > 2:
+    import pymysql as mysql
+    mysql.install_as_MySQLdb()
+else:
+    import MySQLdb as mysql
 from pwman.data.drivers.mysql import MySQLDatabase
 from pwman.util.crypto_engine import CryptoEngine
 
@@ -49,7 +53,7 @@ class TestMySQLDatabase(unittest.TestCase):
         self.db._con.commit()
 
     def test_1_con(self):
-        self.assertIsInstance(self.db._con, MySQLdb.connections.Connection)
+        self.assertIsInstance(self.db._con, mysql.connections.Connection)
 
     def test_2_create_tables(self):
         self.db._create_tables()

+ 1 - 1
setup.py

@@ -299,7 +299,7 @@ def describe():
     des = Popen('git describe', shell=True, stdout=PIPE)
     ver = des.stdout.readlines()
     if ver:
-        return ver[0].strip()
+        return ver[0].decode().strip()
     else:
         return pwman.version