commit: c7717708c0eb326a6fffafb90f08f4ea07616463 Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Tue Apr 13 13:28:57 2021 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Tue Apr 13 13:29:05 2021 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c7717708
dev-python/mongoengine: Run local mongodb instance for testing Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> dev-python/mongoengine/mongoengine-0.23.0.ebuild | 37 ++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/dev-python/mongoengine/mongoengine-0.23.0.ebuild b/dev-python/mongoengine/mongoengine-0.23.0.ebuild index d6ca245f7e8..70ccf79efec 100644 --- a/dev-python/mongoengine/mongoengine-0.23.0.ebuild +++ b/dev-python/mongoengine/mongoengine-0.23.0.ebuild @@ -13,8 +13,6 @@ SRC_URI="https://github.com/MongoEngine/${PN}/archive/v${PV}.tar.gz -> ${P}.tar. LICENSE="BSD" SLOT="0" KEYWORDS="~amd64 ~x86" -# TODO: make it run a local database server -RESTRICT="test" RDEPEND="dev-python/blinker[${PYTHON_USEDEP}] dev-python/pillow[${PYTHON_USEDEP}] @@ -42,3 +40,38 @@ src_prepare() { distutils-r1_src_prepare } + +python_test() { + local dbpath=${TMPDIR}/mongo.db + local logpath=${TMPDIR}/mongod.log + + mkdir -p "${dbpath}" || die + ebegin "Trying to start mongod on port ${DB_PORT}" + + LC_ALL=C \ + mongod --dbpath "${dbpath}" --nojournal \ + --bind_ip 127.0.0.1 --port 27017 \ + --unixSocketPrefix "${TMPDIR}" \ + --logpath "${logpath}" --fork || die + sleep 2 + + # Now we need to check if the server actually started... + if [[ -S "${TMPDIR}"/mongodb-27017.sock ]]; then + # yay! + eend 0 + else + eend 1 + eerror "Unable to start mongod for tests. See the server log:" + eerror " ${logpath}" + die "Unable to start mongod for tests." + fi + + local failed + nonfatal epytest || failed=1 + + mongod --dbpath "${dbpath}" --shutdown || die + + [[ ${failed} ]] && die "Tests fail with ${EPYTHON}" + + rm -rf "${dbpath}" || die +}