Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master
---------------------------------------------------------------
commit 49bad50c2f6c48feb5cd608e02dd77e53bd58a03
Author: Valentin Gologuzov <vgologuz(a)redhat.com>
Date: Mon Sep 22 17:00:54 2014 +0200
[backend] py3 compatibility
---------------------------------------------------------------
keygen/run/dev_run.py | 8 ++++++++
keygen/src/copr_keygen/__init__.py | 6 ++++--
keygen/src/copr_keygen/exceptions.py | 4 ++++
keygen/src/copr_keygen/logic.py | 2 +-
keygen/test/test_handles.py | 3 +--
keygen/test/test_logic.py | 2 +-
6 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/keygen/run/dev_run.py b/keygen/run/dev_run.py
new file mode 100755
index 0000000..dd051d5
--- /dev/null
+++ b/keygen/run/dev_run.py
@@ -0,0 +1,8 @@
+#!/usr/bin/env python
+
+import sys
+sys.path.append("../src/")
+from copr_keygen import app
+
+if __name__ == '__main__':
+ app.run()
diff --git a/keygen/src/copr_keygen/__init__.py b/keygen/src/copr_keygen/__init__.py
index 7fcb2a9..232f12d 100644
--- a/keygen/src/copr_keygen/__init__.py
+++ b/keygen/src/copr_keygen/__init__.py
@@ -60,7 +60,8 @@ def gen_key():
"""
try:
- query = json.loads(request.data)
+ charset = request.headers.get('charset', 'utf-8')
+ query = json.loads(request.data.decode(charset))
except Exception as e:
raise BadRequestException("Failed to parse request body:
{}".format(e))
@@ -95,7 +96,7 @@ def gen_key():
@app.errorhandler(KeygenServiceBaseException)
def handle_invalid_usage(error):
- response = Response(error.message,
content_type="text/plain;charset=UTF-8")
+ response = Response(error.msg, content_type="text/plain;charset=UTF-8")
response.status_code = error.status_code
response.data = str(error)
return response
@@ -110,3 +111,4 @@ def handle_invalid_usage(error):
## #cmd = "gpg --with-colons --fingerprint gafoo |
# awk -F: '$1 == "fpr" {print $10;}'"
# #TODO: complete implementation
+
diff --git a/keygen/src/copr_keygen/exceptions.py b/keygen/src/copr_keygen/exceptions.py
index 6378c84..f59e3d7 100644
--- a/keygen/src/copr_keygen/exceptions.py
+++ b/keygen/src/copr_keygen/exceptions.py
@@ -1,6 +1,10 @@
class KeygenServiceBaseException(Exception):
status_code = 500
+ @property
+ def msg(self):
+ return str(self)
+
def __init__(self, *args, **kwargs):
super(KeygenServiceBaseException, self).__init__(*args)
self.kwargs = kwargs
diff --git a/keygen/src/copr_keygen/logic.py b/keygen/src/copr_keygen/logic.py
index 88bcd64..779be8e 100644
--- a/keygen/src/copr_keygen/logic.py
+++ b/keygen/src/copr_keygen/logic.py
@@ -93,7 +93,7 @@ def create_new_key(
name_real=name_real,
comment=name_comment,
name_email=name_email,
- expire=expire or 0))
+ expire=expire or 0).encode('utf-8'))
cmd = [
app.config["GPG_BINARY"], "-v", "--batch",
diff --git a/keygen/test/test_handles.py b/keygen/test/test_handles.py
index d81b66f..5744fcc 100644
--- a/keygen/test/test_handles.py
+++ b/keygen/test/test_handles.py
@@ -17,7 +17,7 @@ def test_ping():
with app.test_client() as c:
rv = c.get('/ping')
assert rv.status_code == 200
- assert rv.data == "pong\n"
+ assert rv.data == b"pong\n"
json_data = json.dumps({
@@ -39,7 +39,6 @@ class TestGenKey(object):
create_new_key.return_value = None
with app.test_client() as c:
- #pass
rv = c.post('/gen_key', data=json_data)
assert rv.status_code == 201
diff --git a/keygen/test/test_logic.py b/keygen/test/test_logic.py
index c4b0dc1..1c80113 100644
--- a/keygen/test/test_logic.py
+++ b/keygen/test/test_logic.py
@@ -121,7 +121,7 @@ class TestUserExists(TestCase):
@mock.patch("copr_keygen.logic.user_exists")
@mock.patch("copr_keygen.logic.Popen")
-class TestCreateKey(TestCase):
+class TestGenKey(TestCase):
def test_simple_create(self, popen, user_exists):
"""
Check correct key generation.