summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcello Stanisci <stanisci.m@gmail.com>2017-11-25 10:40:25 +0100
committerMarcello Stanisci <stanisci.m@gmail.com>2017-11-25 10:40:25 +0100
commit924a8d24255637bfb0053a54a5d4ca997a59ca91 (patch)
tree050109b3c86d67573c3bed93322cab8ea5b9a4f0
parent4ed7b8ab800d1e0bb8d186ff1025a12a7d7f4dbd (diff)
downloaddonations-924a8d24255637bfb0053a54a5d4ca997a59ca91.tar.gz
donations-924a8d24255637bfb0053a54a5d4ca997a59ca91.tar.bz2
donations-924a8d24255637bfb0053a54a5d4ca997a59ca91.zip
testcase
-rw-r--r--Makefile.in2
-rw-r--r--talerdonations/tests.conf5
-rw-r--r--talerdonations/tests.py66
3 files changed, 72 insertions, 1 deletions
diff --git a/Makefile.in b/Makefile.in
index dbe1651..07f0eb9 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -48,5 +48,5 @@ install: $(templates) install-data
# run testcases
.PHONY: check
check:
- @export TALER_CONFIG_FILE=@abs_srcdir@/talersurvey/tests.conf; \
+ @export TALER_CONFIG_FILE=@abs_srcdir@/talerdonations/tests.conf; \
python3 talerdonations/tests.py
diff --git a/talerdonations/tests.conf b/talerdonations/tests.conf
index e69de29..8f18f90 100644
--- a/talerdonations/tests.conf
+++ b/talerdonations/tests.conf
@@ -0,0 +1,5 @@
+[taler]
+CURRENCY = TESTKUDOS
+
+[frontends]
+BACKEND = http://backend.test.taler.net/
diff --git a/talerdonations/tests.py b/talerdonations/tests.py
index e69de29..48ef764 100644
--- a/talerdonations/tests.py
+++ b/talerdonations/tests.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python3
+
+import unittest
+from mock import patch, MagicMock
+from talerdonations.donations import donations
+from talerdonations.talerconfig import TalerConfig
+from datetime import datetime
+
+tc = TalerConfig.from_env()
+CURRENCY = tc["taler"]["currency"].value_string(required=True)
+
+class DonationsTestCase(unittest.TestCase):
+ def setUp(self):
+ donations.app.testing = True
+ self.app = donations.app.test_client()
+
+ @patch("requests.post")
+ @patch("random.randint")
+ @patch("datetime.datetime")
+ def test_proposal_creation(self, mocked_datetime,
+ mocked_random, mocked_post):
+ mocked_datetime.today.return_value = datetime.today()
+ mocked_random.return_value = 333
+ order_id = "donation-%s-%X-%s" % \
+ ("Tor", mocked_random(), mocked_datetime.today().strftime("%H_%M_%S"))
+ ret_post = MagicMock()
+ ret_post.status_code = 200
+ ret_post.json.return_value = {}
+ mocked_post.return_value = ret_post
+ self.app.get(
+ "/generate-contract?nonce=44&donation_receiver=Tor&donation_amount=1.0")
+ mocked_post.assert_called_with(
+ "http://backend.test.taler.net/proposal", json={
+ "order": {
+ "summary": "Donation!",
+ "order_id": order_id,
+ "nonce": "44",
+ "amount": {
+ "value": 1,
+ "fraction": 0,
+ "currency": CURRENCY},
+ "max_fee": {
+ "value": 1,
+ "fraction": 0,
+ "currency": CURRENCY},
+ "order_id": order_id,
+ "products": [{
+ "description": "Donation to Tor",
+ "quantity": 1,
+ "product_id": 0,
+ "price": {
+ "value": 1,
+ "fraction": 0,
+ "currency": CURRENCY}}],
+ "fulfillment_url":
+ "http://localhost/fulfillment?order_id=%s" % order_id,
+ "pay_url": "http://localhost/pay",
+ "merchant": {
+ "instance": "Tor",
+ "address": "nowhere",
+ "name": "Kudos Inc.",
+ "jurisdiction": "none"}
+ }})
+
+if "__main__" == __name__:
+ unittest.main()