#!/usr/bin/env python3 import unittest import logging from mock import patch, MagicMock from .blog import blog from .talerconfig import TalerConfig TC = TalerConfig.from_env() CURRENCY = TC["taler"]["currency"].value_string(required=True) LOGGER = logging.getLogger(__name__) class BlogTestCase(unittest.TestCase): def setUp(self): blog.app.testing = True self.app = blog.app.test_client() self.instance = TC["blog"]["instance"].value_string(required=True) @patch("requests.get") @patch("requests.post") @patch("flask.session") @unittest.skip("API changed") def test_refund(self, mocked_session, mocked_post, mocked_get): # Test GET ret_get = MagicMock() ret_get.status_code = 200 ret_get.json.return_value = {"error": "mocckky error"} mocked_get.return_value = ret_get response = self.app.get("/refund?order_id=99") mocked_get.assert_called_with( "http://backend.test.taler.net/refund", params={"order_id": "99", "instance": self.instance}) # Test POST mocked_session.get.return_value = {"mocckky": 99} ret_post = MagicMock() ret_post.status_code = 200 mocked_post.return_value = ret_post response = self.app.post("/refund", data={"article_name": "mocckky"}) mocked_post.assert_called_with( "http://backend.test.taler.net/refund", json={ "order_id": 99, "refund": { "value": 0, "fraction": 50000000, "currency": CURRENCY}, "reason": "Demo reimbursement", "instance": self.instance}) if __name__ == "__main__": unittest.main()