diff options
author | Marcello Stanisci <stanisci.m@gmail.com> | 2017-11-25 10:40:25 +0100 |
---|---|---|
committer | Marcello Stanisci <stanisci.m@gmail.com> | 2017-11-25 10:40:25 +0100 |
commit | 924a8d24255637bfb0053a54a5d4ca997a59ca91 (patch) | |
tree | 050109b3c86d67573c3bed93322cab8ea5b9a4f0 /talerdonations | |
parent | 4ed7b8ab800d1e0bb8d186ff1025a12a7d7f4dbd (diff) | |
download | donations-924a8d24255637bfb0053a54a5d4ca997a59ca91.tar.gz donations-924a8d24255637bfb0053a54a5d4ca997a59ca91.tar.bz2 donations-924a8d24255637bfb0053a54a5d4ca997a59ca91.zip |
testcase
Diffstat (limited to 'talerdonations')
-rw-r--r-- | talerdonations/tests.conf | 5 | ||||
-rw-r--r-- | talerdonations/tests.py | 66 |
2 files changed, 71 insertions, 0 deletions
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() |