#!/usr/bin/env python3 import unittest from talersurvey.survey import survey from mock import patch, MagicMock from talersurvey.talerconfig import TalerConfig TC = TalerConfig.from_env() CURRENCY = TC["taler"]["currency"].value_string(required=True) class SurveyTestCase(unittest.TestCase): def setUp(self): survey.app.testing = True self.app = survey.app.test_client() @patch("requests.post") def test_authorize(self, mocked_post): ret_post = MagicMock() ret_post.status_code = 200 ret_post.json.return_value = { "tip_id": "Jeppo02", "tip_token": "mytiptoken", "exchange_uri": "http://exchange.example.com/", "expiration": "/Date(2018)/"} mocked_post.return_value = ret_post self.app.post("/submit-survey") mocked_post.assert_called_with( "http://backend.test.taler.net/tip-authorize", json={ "pickup_url": "http://localhost/tip-pickup", "amount": { "value": 1, "fraction": 0, "currency": CURRENCY}, "instance": "default", "justification": "Payment methods survey"}) @patch("requests.post") def test_pick(self, mocked_post): ret_post = MagicMock() ret_post.status_code = 200 ret_post.json.return_value = {} mocked_post.return_value = ret_post self.app.post("/tip-pickup", data="{}", content_type="application/json") mocked_post.assert_called_with( "http://backend.test.taler.net/tip-pickup", json={}) if __name__ == "__main__": unittest.main()