summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2020-06-11 22:18:16 +0200
committerMichał Górny <mgorny@gentoo.org>2020-06-11 22:33:02 +0200
commit0e2e2731b6f02a900bf2ab99b03496c10e5da089 (patch)
tree9f1e33d4692af35acbddc9e72a8b5fce3e7a7916
parentwww-client/chromium: beta channel bump to 84.0.4147.45 (diff)
downloadgentoo-0e2e2731b6f02a900bf2ab99b03496c10e5da089.tar.gz
gentoo-0e2e2731b6f02a900bf2ab99b03496c10e5da089.tar.bz2
gentoo-0e2e2731b6f02a900bf2ab99b03496c10e5da089.zip
dev-python/pymysql: Enable tests
Signed-off-by: Michał Górny <mgorny@gentoo.org>
-rw-r--r--dev-python/pymysql/pymysql-0.9.3.ebuild55
1 files changed, 51 insertions, 4 deletions
diff --git a/dev-python/pymysql/pymysql-0.9.3.ebuild b/dev-python/pymysql/pymysql-0.9.3.ebuild
index e0580ba49848..5ab0788a13a6 100644
--- a/dev-python/pymysql/pymysql-0.9.3.ebuild
+++ b/dev-python/pymysql/pymysql-0.9.3.ebuild
@@ -13,18 +13,65 @@ 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 )"
-S=${WORKDIR}/${MY_P}
+# 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=3306 \
+ --socket="${T}"/mysqld.sock \
+ --datadir="${T}"/mysql &
+ local pid=${!}
-DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+ # 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"
-# While tests exist, they require an unsecure server to run without manual config file
-RESTRICT="test"
+ # 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
+
+ distutils-r1_src_test
+
+ kill "${pid}"
+ wait "${pid}"
+}
python_test() {
${PYTHON} runtests.py || die