diff options
author | Michał Górny <mgorny@gentoo.org> | 2020-06-11 22:18:16 +0200 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2020-06-11 22:33:02 +0200 |
commit | 0e2e2731b6f02a900bf2ab99b03496c10e5da089 (patch) | |
tree | 9f1e33d4692af35acbddc9e72a8b5fce3e7a7916 | |
parent | www-client/chromium: beta channel bump to 84.0.4147.45 (diff) | |
download | gentoo-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.ebuild | 55 |
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 |