mirror of
https://github.com/internetarchive/warcprox.git
synced 2025-01-18 13:22:09 +01:00
tests using docker to containerize rethinkdb fixture
This commit is contained in:
parent
3b52b05329
commit
aa080ce2e9
21
tests/Dockerfile
Normal file
21
tests/Dockerfile
Normal file
@ -0,0 +1,21 @@
|
||||
FROM phusion/baseimage
|
||||
MAINTAINER Noah Levitt <nlevitt@archive.org>
|
||||
|
||||
# see https://github.com/stuartpb/rethinkdb-dockerfiles/blob/master/trusty/2.1.3/Dockerfile
|
||||
|
||||
ENV LANG=C.UTF-8
|
||||
|
||||
RUN apt-get update && apt-get --auto-remove -y dist-upgrade
|
||||
|
||||
# Add the RethinkDB repository and public key
|
||||
# "RethinkDB Packaging <packaging@rethinkdb.com>" http://download.rethinkdb.com/apt/pubkey.gpg
|
||||
RUN apt-key adv --keyserver pgp.mit.edu --recv-keys 1614552E5765227AEC39EFCFA7E00EF33A8F2399 \
|
||||
&& echo "deb http://download.rethinkdb.com/apt trusty main" > /etc/apt/sources.list.d/rethinkdb.list \
|
||||
&& apt-get update && apt-get -y install rethinkdb
|
||||
|
||||
RUN mkdir -vp /etc/service/rethinkdb \
|
||||
&& echo "#!/bin/sh\nrethinkdb --bind 0.0.0.0 --runuser rethinkdb --rungroup rethinkdb\n" > /etc/service/rethinkdb/run \
|
||||
&& chmod a+x /etc/service/rethinkdb/run
|
||||
|
||||
RUN apt-get -y install python-virtualenv
|
||||
|
15
tests/run-tests.sh
Executable file
15
tests/run-tests.sh
Executable file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
docker build -t internetarchive/rethinkdb $script_dir || exit 1
|
||||
|
||||
for python in python2.7 python3.4
|
||||
do
|
||||
docker run --rm -i -t --volume="$script_dir/..:/rethinkstuff" internetarchive/rethinkdb /sbin/my_init -- \
|
||||
bash -c "cd /rethinkstuff && virtualenv -p $python /tmp/venv \
|
||||
&& source /tmp/venv/bin/activate \
|
||||
&& pip install pytest . \
|
||||
&& py.test -v -s tests"
|
||||
done
|
||||
|
27
tests/test_rethinker.py
Normal file
27
tests/test_rethinker.py
Normal file
@ -0,0 +1,27 @@
|
||||
import rethinkstuff
|
||||
import logging
|
||||
import sys
|
||||
import types
|
||||
|
||||
logging.basicConfig(stream=sys.stderr, level=logging.INFO,
|
||||
format="%(asctime)s %(process)d %(levelname)s %(threadName)s %(name)s.%(funcName)s(%(filename)s:%(lineno)d) %(message)s")
|
||||
|
||||
def test_rethinker():
|
||||
r = rethinkstuff.Rethinker()
|
||||
result = r.db_create("my_db").run()
|
||||
assert result["dbs_created"] == 1
|
||||
|
||||
r = rethinkstuff.Rethinker(db="my_db")
|
||||
assert r.table_list().run() == []
|
||||
result = r.table_create("my_table").run()
|
||||
assert result["tables_created"] == 1
|
||||
|
||||
assert r.table("my_table").index_create("foo").run() == {"created": 1}
|
||||
|
||||
result = r.table("my_table").insert(({"foo":i,"bar":"repeat"*i} for i in range(2000))).run()
|
||||
assert len(result["generated_keys"]) == 2000
|
||||
assert result["inserted"] == 2000
|
||||
|
||||
result = r.table("my_table").run()
|
||||
assert isinstance(result, types.GeneratorType)
|
||||
|
Loading…
x
Reference in New Issue
Block a user