gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-blog] branch master updated (3ce3aeb -> 8d8aade)


From: gnunet
Subject: [GNUnet-SVN] [taler-blog] branch master updated (3ce3aeb -> 8d8aade)
Date: Thu, 04 Jan 2018 10:55:24 +0100

This is an automated email from the git hooks/post-receive script.

marcello pushed a change to branch master
in repository blog.

    from 3ce3aeb  some linting
     new 078cac0  suppressing output from noisy logger
     new 8d8aade  done with /refund test case

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .gitignore                | 15 +++++++++++++++
 talerblog/blog/blog.py    | 28 ++++++++++------------------
 talerblog/blog/content.py |  4 ++--
 talerblog/tests.py        | 39 +++++++++++++++++++++++++++++++++++++--
 4 files changed, 64 insertions(+), 22 deletions(-)
 create mode 100644 .gitignore

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..409c488
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,15 @@
+.eggs/
+Makefile
+aclocal.m4
+autom4te.cache/
+compile
+config.log
+config.status
+configure
+frontend-blog.wsgi
+install-sh
+missing
+taler-merchant-blog
+talerblog.egg-info/
+talerblog/__pycache__/
+talerblog/blog/__pycache__/
diff --git a/talerblog/blog/blog.py b/talerblog/blog/blog.py
index 54d77f0..fb3bbe8 100644
--- a/talerblog/blog/blog.py
+++ b/talerblog/blog/blog.py
@@ -33,25 +33,20 @@ from ..helpers import (make_url, \
 from ..blog.content import (ARTICLES, \
     get_article_file, get_image_file)
 
-LOGGER = logging.getLogger(__name__)
-
 BASE_DIR = os.path.dirname(os.path.abspath(__file__))
-
 app = flask.Flask(__name__, template_folder=BASE_DIR)
 app.debug = True
 app.secret_key = base64.b64encode(os.urandom(64)).decode('utf-8')
 
+LOGGER = logging.getLogger(__name__)
 TC = TalerConfig.from_env()
-
 BACKEND_URL = TC["frontends"]["backend"].value_string(required=True)
 CURRENCY = TC["taler"]["currency"].value_string(required=True)
 INSTANCE = TC["blog"]["instance"].value_string(required=True)
-
 ARTICLE_AMOUNT = dict(value=0, fraction=50000000, currency=CURRENCY)
 
 app.config.from_object(__name__)
 
-
 @app.context_processor
 def utility_processor():
     def url(my_url):
@@ -60,14 +55,12 @@ def utility_processor():
         return os.environ.get(name, default)
     return dict(url=url, env=env)
 
-
 @app.route("/")
 def index():
     return flask.render_template("templates/index.html",
                                  merchant_currency=CURRENCY,
                                  articles=ARTICLES.values())
 
-
 @app.route("/javascript")
 def javascript_licensing():
     return flask.render_template("templates/javascript.html")
@@ -95,16 +88,15 @@ def refund():
         response.headers["X-Taler-Refund-Url"] = make_url("/refund", 
("order_id", order_id))
         return response, 402
 
-    else:
-        order_id = expect_parameter("order_id", False)
-        if not order_id:
-            LOGGER.error("Missing parameter 'order_id'")
-            return flask.jsonify(dict(error="Missing parameter 'order_id'")), 
400
-        resp = requests.get(urljoin(BACKEND_URL, "refund"),
-                            params=dict(order_id=order_id, instance=INSTANCE))
-        if resp.status_code != 200:
-            return backend_error(resp)
-        return flask.jsonify(resp.json()), resp.status_code
+    order_id = expect_parameter("order_id", False)
+    if not order_id:
+        LOGGER.error("Missing parameter 'order_id'")
+        return flask.jsonify(dict(error="Missing parameter 'order_id'")), 400
+    resp = requests.get(urljoin(BACKEND_URL, "refund"),
+                        params=dict(order_id=order_id, instance=INSTANCE))
+    if resp.status_code != 200:
+        return backend_error(resp)
+    return flask.jsonify(resp.json()), resp.status_code
 
 
 @app.route("/generate-contract", methods=["GET"])
diff --git a/talerblog/blog/content.py b/talerblog/blog/content.py
index 1ddbf46..1a233bf 100644
--- a/talerblog/blog/content.py
+++ b/talerblog/blog/content.py
@@ -26,9 +26,9 @@ from bs4 import BeautifulSoup
 from pkg_resources import resource_stream, resource_filename
 
 LOGGER = logging.getLogger(__name__)
-
+NOISY_LOGGER = logging.getLogger("chardet.charsetprober")
+NOISY_LOGGER.setLevel(logging.INFO)
 Article = namedtuple("Article", "slug title teaser main_file extra_files")
-
 ARTICLES = OrderedDict()
 
 
diff --git a/talerblog/tests.py b/talerblog/tests.py
index 050d852..1cd5128 100644
--- a/talerblog/tests.py
+++ b/talerblog/tests.py
@@ -1,17 +1,52 @@
 #!/usr/bin/env python3
 
 import unittest
+import logging
 from mock import patch, MagicMock
-from talerblog.blog import blog
-from talerblog.talerconfig import TalerConfig
+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")
+    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})
 
     @patch("requests.post")
     def test_proposal_creation(self, mocked_post):

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]