summaryrefslogtreecommitdiff
path: root/dev-python/pymysql
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/pymysql')
-rw-r--r--dev-python/pymysql/Manifest1
-rw-r--r--dev-python/pymysql/metadata.xml20
-rw-r--r--dev-python/pymysql/pymysql-0.9.3.ebuild96
3 files changed, 117 insertions, 0 deletions
diff --git a/dev-python/pymysql/Manifest b/dev-python/pymysql/Manifest
new file mode 100644
index 000000000000..d36aed3393ea
--- /dev/null
+++ b/dev-python/pymysql/Manifest
@@ -0,0 +1 @@
+DIST pymysql-0.9.3.tar.gz 86715 BLAKE2B 0ed09f7f5c47bd1fae52dd9d0ff0790367962d8e4b89d3933704b8b8d838e1f48b68455a9a3916318bf3c1c1f102fa11b4e1e3401d021f8a2d6137612a4affb9 SHA512 d906b7a6612d91db7d4f7f2d85a9375477e6655c568e0d1e7281ad0263d4a78f0ac4e80263605723f99e12db04c80f51c5c8ed79ed6f209a7afeb4b45bf40648
diff --git a/dev-python/pymysql/metadata.xml b/dev-python/pymysql/metadata.xml
new file mode 100644
index 000000000000..f645136da0e3
--- /dev/null
+++ b/dev-python/pymysql/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>grknight@gentoo.org</email>
+ <name>Brian Evans</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>mysql-bugs@gentoo.org</email>
+ <name>MySQL</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">PyMySQL/PyMySQL</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-python/pymysql/pymysql-0.9.3.ebuild b/dev-python/pymysql/pymysql-0.9.3.ebuild
new file mode 100644
index 000000000000..7346a5ab5fb2
--- /dev/null
+++ b/dev-python/pymysql/pymysql-0.9.3.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6..9} pypy3 )
+
+inherit distutils-r1
+
+MY_PN="PyMySQL"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Pure-Python MySQL Driver"
+HOMEPAGE="https://github.com/PyMySQL/PyMySQL"
+SRC_URI="https://github.com/${MY_PN}/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# TODO: support other mysql variants
+BDEPEND="
+ test? ( dev-db/mariadb[server] )"
+
+src_prepare() {
+ find -name '*.py' -exec sed -i -e 's:unittest2:unittest:' {} + || die
+ distutils-r1_src_prepare
+}
+
+src_test() {
+ mkdir -p "${T}"/mysql || die
+ "${BROOT}"/usr/share/mariadb/scripts/mysql_install_db \
+ --no-defaults \
+ --auth-root-authentication-method=normal \
+ --basedir="${BROOT}/usr" \
+ --datadir="${T}"/mysql || die
+ # TODO: random port
+ mysqld \
+ --no-defaults \
+ --character-set-server=utf8 \
+ --bind-address=127.0.0.1 \
+ --port=43306 \
+ --socket="${T}"/mysqld.sock \
+ --datadir="${T}"/mysql &
+ local pid=${!}
+
+ # wait for it to start
+ local i
+ for (( i = 0; i < 10; i++)); do
+ [[ -S ${T}/mysqld.sock ]] && break
+ sleep 1
+ done
+ [[ -S ${T}/mysqld.sock ]] || die "mysqld failed to start"
+
+ # create test databases
+ mysql -uroot --socket="${T}"/mysqld.sock -e '
+ create database test1 DEFAULT CHARACTER SET utf8mb4;
+ create database test2 DEFAULT CHARACTER SET utf8mb4;
+
+ create user test2 identified by "some password";
+ grant all on test2.* to test2;
+
+ create user test2@localhost identified by "some password";
+ grant all on test2.* to test2@localhost;
+ ' || die
+
+ cat > pymysql/tests/databases.json <<-EOF || die
+ [{
+ "host": "localhost",
+ "user": "root",
+ "passwd": "",
+ "db": "test1",
+ "use_unicode": true,
+ "local_infile": true,
+ "unix_socket": "${T}/mysqld.sock"
+ }, {
+ "host": "localhost",
+ "user": "root",
+ "passwd": "",
+ "db": "test2",
+ "unix_socket": "${T}/mysqld.sock"
+ }]
+ EOF
+
+ distutils-r1_src_test
+
+ kill "${pid}"
+ wait "${pid}"
+}
+
+python_test() {
+ ${PYTHON} runtests.py || die
+}