|
|
|
# Copyright 1999-2021 Gentoo Authors
|
|
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
|
|
|
|
EAPI=7
|
|
|
|
|
|
|
|
PYTHON_COMPAT=( python3_{7..9} )
|
|
|
|
inherit distutils-r1
|
|
|
|
|
|
|
|
DESCRIPTION="A Python Object-Document-Mapper for working with MongoDB"
|
|
|
|
HOMEPAGE="https://github.com/MongoEngine/mongoengine/"
|
|
|
|
SRC_URI="https://github.com/MongoEngine/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
|
|
|
|
|
|
|
LICENSE="BSD"
|
|
|
|
SLOT="0"
|
|
|
|
KEYWORDS="amd64"
|
|
|
|
|
|
|
|
RDEPEND="dev-python/blinker[${PYTHON_USEDEP}]
|
|
|
|
dev-python/pillow[${PYTHON_USEDEP}]
|
|
|
|
dev-python/pymongo[${PYTHON_USEDEP}]"
|
|
|
|
BDEPEND="
|
|
|
|
test? (
|
|
|
|
dev-db/mongodb
|
|
|
|
dev-python/mongomock[${PYTHON_USEDEP}]
|
|
|
|
)"
|
|
|
|
|
|
|
|
distutils_enable_tests pytest
|
|
|
|
|
|
|
|
src_prepare() {
|
|
|
|
# TODO: investigate
|
|
|
|
sed -e 's:test_covered_index:_&:' \
|
|
|
|
-i tests/document/test_indexes.py || die
|
|
|
|
# no $eval
|
|
|
|
sed -e 's:test_exec_js_field_sub:_&:' \
|
|
|
|
-e 's:test_exec_js_query:_&:' \
|
|
|
|
-e 's:test_item_frequencies_normalize:_&:' \
|
|
|
|
-e 's:test_item_frequencies_with_0_values:_&:' \
|
|
|
|
-e 's:test_item_frequencies_with_False_values:_&:' \
|
|
|
|
-e 's:test_item_frequencies_with_null_embedded:_&:' \
|
|
|
|
-i tests/queryset/test_queryset.py || die
|
|
|
|
# TODO: investigate (wrong order? bad comparison?)
|
|
|
|
sed -e 's:test_distinct_ListField_EmbeddedDocumentField:_&:' \
|
|
|
|
-i tests/queryset/test_queryset.py || die
|
|
|
|
|
|
|
|
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
|
|
|
|
}
|