Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master
---------------------------------------------------------------
commit f0f69abaaca6ee5d074a1cc7343e8e89995003d6
Author: Valentin Gologuzov <vgologuz(a)redhat.com>
Date: Fri Nov 13 17:00:56 2015 +0100
[frontend] Sending action to create gpg key right after the project creation
---------------------------------------------------------------
frontend/coprs_frontend/coprs/helpers.py | 1 +
.../coprs_frontend/coprs/logic/actions_logic.py | 19 +++++++++++++++++
frontend/coprs_frontend/coprs/logic/coprs_logic.py | 2 +
.../tests/test_logic/test_coprs_logic.py | 22 ++++++++++++++++++-
4 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/frontend/coprs_frontend/coprs/helpers.py
b/frontend/coprs_frontend/coprs/helpers.py
index e063b58..22f4ff0 100644
--- a/frontend/coprs_frontend/coprs/helpers.py
+++ b/frontend/coprs_frontend/coprs/helpers.py
@@ -66,6 +66,7 @@ class ActionTypeEnum(with_metaclass(EnumType, object)):
"legal-flag": 2,
"createrepo": 3,
"update_comps": 4,
+ "gen_gpg_key": 5,
}
diff --git a/frontend/coprs_frontend/coprs/logic/actions_logic.py
b/frontend/coprs_frontend/coprs/logic/actions_logic.py
index 8a5b92b..3ff0e31 100644
--- a/frontend/coprs_frontend/coprs/logic/actions_logic.py
+++ b/frontend/coprs_frontend/coprs/logic/actions_logic.py
@@ -141,3 +141,22 @@ class ActionsLogic(object):
created_on=int(time.time())
)
db.session.add(action)
+
+ @classmethod
+ def send_create_gpg_key(cls, copr):
+ """
+ :type copr: models.Copr
+ """
+
+ data_dict = {
+ "username": copr.owner.name,
+ "projectname": copr.name,
+ }
+
+ action = models.Action(
+ action_type=helpers.ActionTypeEnum("gen_gpg_key"),
+ object_type="copr",
+ data=json.dumps(data_dict),
+ created_on=int(time.time()),
+ )
+ db.session.add(action)
diff --git a/frontend/coprs_frontend/coprs/logic/coprs_logic.py
b/frontend/coprs_frontend/coprs/logic/coprs_logic.py
index c6fcbc9..33924e4 100644
--- a/frontend/coprs_frontend/coprs/logic/coprs_logic.py
+++ b/frontend/coprs_frontend/coprs/logic/coprs_logic.py
@@ -205,6 +205,8 @@ class CoprsLogic(object):
CoprsLogic.new(user, copr,
check_for_duplicates=check_for_duplicates)
CoprChrootsLogic.new_from_names(copr, selected_chroots)
+ ActionsLogic.send_create_gpg_key(copr)
+
return copr
@classmethod
diff --git a/frontend/coprs_frontend/tests/test_logic/test_coprs_logic.py
b/frontend/coprs_frontend/tests/test_logic/test_coprs_logic.py
index 38e1cbf..e659f17 100644
--- a/frontend/coprs_frontend/tests/test_logic/test_coprs_logic.py
+++ b/frontend/coprs_frontend/tests/test_logic/test_coprs_logic.py
@@ -1,10 +1,13 @@
+import json
import pytest
from coprs.exceptions import ActionInProgressException
from coprs.helpers import ActionTypeEnum
+from coprs.logic.actions_logic import ActionsLogic
from coprs.logic.coprs_logic import CoprsLogic
from coprs import models
+from coprs.logic.users_logic import UsersLogic
from tests.coprs_test_case import CoprsTestCase
@@ -52,5 +55,20 @@ class TestCoprsLogic(CoprsTestCase):
obtained = len(results)
expected = u1_count + u2_count
- # TODO: uncomment after fix in flask-whooshee will be released
- # assert obtained == expected
+
+ assert obtained == expected
+
+ def test_copr_logic_add_sends_create_gpg_key_action(self, f_users, f_mock_chroots,
f_db):
+ name = u"project_1"
+ selected_chroots = [self.mc1.name]
+
+ CoprsLogic.add(self.u1, name, selected_chroots)
+ self.db.session.commit()
+
+ actions = ActionsLogic.get_many(ActionTypeEnum("gen_gpg_key")).all()
+ assert len(actions) == 1
+ data = json.loads(actions[0].data)
+ assert data["username"] == self.u1.name
+ assert data["projectname"] == name
+
+