[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
- [GNUnet-SVN] [taler-blog] branch master updated (3ce3aeb -> 8d8aade),
gnunet <=