From 86d6ff8b63935155059402f32e6c55fb43f8ed67 Mon Sep 17 00:00:00 2001 From: tomasgodoi Date: Tue, 29 Aug 2017 01:21:32 -0300 Subject: [PATCH] Including travis tests. --- .travis.yml | 5 ++--- tests/docker/Dockerfile | 22 ++++++---------------- tests/test_decks.py | 16 ++++++++++++++++ tests/test_misc.py | 10 ++++++++++ tests/util.py | 11 +++++++++++ 5 files changed, 45 insertions(+), 19 deletions(-) create mode 100644 tests/test_decks.py create mode 100644 tests/test_misc.py create mode 100644 tests/util.py diff --git a/.travis.yml b/.travis.yml index 44c576b..2a1a2fb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,6 @@ python: install: - docker build -f tests/docker/Dockerfile -t txgio/anki-connect . script: - - docker run -ti -d --rm -p 8765:8765 txgio/anki-connect + - docker run -ti -d --rm -p 8888:8765 -e ANKICONNECT_BIND_ADDRESS=0.0.0.0 txgio/anki-connect - sleep 5 - - > - curl localhost:8765 -X POST -s -d '{"action": "version"}' \ No newline at end of file + - python -m unittest discover -v \ No newline at end of file diff --git a/tests/docker/Dockerfile b/tests/docker/Dockerfile index e4c0e9e..6d5a8fe 100644 --- a/tests/docker/Dockerfile +++ b/tests/docker/Dockerfile @@ -1,24 +1,14 @@ -FROM txgio/anki +FROM txgio/anki:2.0.45 -USER root -RUN apt-get update -RUN apt-get install -y xvfb -USER anki-user +RUN apt-get update && \ + apt-get install -y xvfb -RUN mkdir -p /home/anki-user/Documents/Anki/addons +COPY AnkiConnect.py /data/addons/AnkiConnect.py -COPY AnkiConnect.py /home/anki-user/Documents/Anki/addons - -ENV ANKICONNECT_BIND_ADDRESS 0.0.0.0 - -COPY tests/docker/prefs.db /home/anki-user/Documents/Anki/prefs.db +COPY tests/docker/prefs.db /data/prefs.db ADD tests/docker/entrypoint.sh /entrypoint.sh -USER root -RUN chmod +x /entrypoint.sh -USER anki-user - ENTRYPOINT ["/entrypoint.sh"] -CMD /bin/bash -c "(/usr/bin/ibus-daemon -xd; /usr/bin/anki;)" \ No newline at end of file +CMD ["anki", "-b", "/data"] \ No newline at end of file diff --git a/tests/test_decks.py b/tests/test_decks.py new file mode 100644 index 0000000..f4a79e8 --- /dev/null +++ b/tests/test_decks.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +import unittest +from unittest import TestCase +from util import callAnkiConnectEndpoint + +class TestDeckNames(TestCase): + + def test_deckNames(self): + response = callAnkiConnectEndpoint({'action': 'deckNames'}) + self.assertEqual(['Default'], response) + +class TestGetDeckConfig(TestCase): + + def test_getDeckConfig(self): + response = callAnkiConnectEndpoint({'action': 'getDeckConfig', 'params': {'deck': 'Default'}}) + self.assertDictContainsSubset({'name': 'Default', 'replayq': True}, response) \ No newline at end of file diff --git a/tests/test_misc.py b/tests/test_misc.py new file mode 100644 index 0000000..99d9448 --- /dev/null +++ b/tests/test_misc.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +import unittest +from unittest import TestCase +from util import callAnkiConnectEndpoint + +class TestVersion(TestCase): + + def test_version(self): + response = callAnkiConnectEndpoint({'action': 'version'}) + self.assertEqual(4, response) \ No newline at end of file diff --git a/tests/util.py b/tests/util.py new file mode 100644 index 0000000..bf121a0 --- /dev/null +++ b/tests/util.py @@ -0,0 +1,11 @@ +import json +import urllib +import urllib2 + +def callAnkiConnectEndpoint(data): + url = 'http://docker:8888' + dumpedData = json.dumps(data) + req = urllib2.Request(url, dumpedData) + response = urllib2.urlopen(req).read() + responseData = json.loads(response) + return responseData \ No newline at end of file