[copr] bkabrda-workspace: Fix showing cancel build button (e9724c2)

bkabrda at fedoraproject.org bkabrda at fedoraproject.org
Wed Nov 28 17:18:55 UTC 2012


Repository : http://git.fedorahosted.org/cgit/copr.git

On branch  : bkabrda-workspace

>---------------------------------------------------------------

commit e9724c2fcf404fae63f274b17a1bd428605efed8
Author: Bohuslav Kabrda <bkabrda at redhat.com>
Date:   Wed Nov 28 18:18:38 2012 +0100

    Fix showing cancel build button


>---------------------------------------------------------------

 .../coprs/templates/coprs/_builds_table.html       |    8 +++++-
 .../coprs/templates/coprs/_coprs_forms.html        |    2 +-
 coprs_frontend/coprs/templates/coprs/detail.html   |    2 +-
 .../coprs/templates/coprs/show_builds.html         |    2 +-
 .../tests/test_views/test_coprs_ns/test_general.py |   24 +++++++++++++++++++-
 5 files changed, 33 insertions(+), 5 deletions(-)

diff --git a/coprs_frontend/coprs/templates/coprs/_builds_table.html b/coprs_frontend/coprs/templates/coprs/_builds_table.html
index 9366bdb..8b7082c 100644
--- a/coprs_frontend/coprs/templates/coprs/_builds_table.html
+++ b/coprs_frontend/coprs/templates/coprs/_builds_table.html
@@ -20,7 +20,13 @@
         <td>{{ build.ended_on|date_from_secs or 'Not yet' }}</td>
         <td>{{ build.state }}</td>
         <td>{{ build.results }}</td>
-        <td>{{ copr_build_cancel_form(build) }}</td>
+        <td>
+          {% if g.user and g.user == build.user %}
+            {{ copr_build_cancel_form(build) }}
+          {% else %}
+            ---
+          {% endif %}
+        </td>
       </tr>
       <tr>
         <td colspan=7>
diff --git a/coprs_frontend/coprs/templates/coprs/_coprs_forms.html b/coprs_frontend/coprs/templates/coprs/_coprs_forms.html
index 02c632e..98e9b40 100644
--- a/coprs_frontend/coprs/templates/coprs/_coprs_forms.html
+++ b/coprs_frontend/coprs/templates/coprs/_coprs_forms.html
@@ -63,7 +63,7 @@
 
 {% macro copr_build_cancel_form(build) %}
   {% if build.cancelable %}
-    <form action="{{ url_for('coprs_ns.copr_cancel_build', username = build.copr.owner.name, coprname = build.copr.name, build_id = build.id)}}">
+    <form action="{{ url_for('coprs_ns.copr_cancel_build', username = build.copr.owner.name, coprname = build.copr.name, build_id = build.id)}}" method=post>
       <input type=submit value=Cancel>
     </form>
   {% endif %}
diff --git a/coprs_frontend/coprs/templates/coprs/detail.html b/coprs_frontend/coprs/templates/coprs/detail.html
index 30b653c..7f6a977 100644
--- a/coprs_frontend/coprs/templates/coprs/detail.html
+++ b/coprs_frontend/coprs/templates/coprs/detail.html
@@ -1,7 +1,7 @@
 {% extends "layout.html" %}
 {% block title %}{{ copr.owner.name }}/{{ copr.name }} Copr{% endblock %}
 {% block header %}Information for Copr {{ copr.owner.name }}/{{ copr.name }}{% endblock %}
-{% from "coprs/_builds_table.html" import builds_table %}
+{% from "coprs/_builds_table.html" import builds_table with context %}
 {% from "coprs/_permissions_table.html" import permissions_table with context%}
 {% from "coprs/_coprs_forms.html" import copr_build_form,
                                          copr_build_cancel_form with context %}
diff --git a/coprs_frontend/coprs/templates/coprs/show_builds.html b/coprs_frontend/coprs/templates/coprs/show_builds.html
index 2432088..cf19cb8 100644
--- a/coprs_frontend/coprs/templates/coprs/show_builds.html
+++ b/coprs_frontend/coprs/templates/coprs/show_builds.html
@@ -2,7 +2,7 @@
 {% block title %}Builds in {{ request.view_args['name'] }}{% endblock %}
 {% block header %}Builds in {{ request.view_args['name'] }} Copr{% endblock %}
 {% from "_helpers.html" import render_pagination %}
-{% from "coprs/_builds_table.html" import builds_table %}
+{% from "coprs/_builds_table.html" import builds_table with context %}
 {% from "coprs/_coprs_forms.html" import copr_build_cancel_form %}
 {% block body %}
   {{ builds_table(builds) }}
diff --git a/coprs_frontend/tests/test_views/test_coprs_ns/test_general.py b/coprs_frontend/tests/test_views/test_coprs_ns/test_general.py
index f57efe9..57c3d7b 100644
--- a/coprs_frontend/tests/test_views/test_coprs_ns/test_general.py
+++ b/coprs_frontend/tests/test_views/test_coprs_ns/test_general.py
@@ -138,6 +138,29 @@ class TestCoprDetail(CoprsTestCase):
             r = c.get('/coprs/detail/{0}/{1}/'.format(self.u2.name, self.c2.name))
             assert '/permissions_applier_change/' not in r.data
 
+    def test_copr_detail_doesnt_show_cancel_build_for_anonymous(self, f_users, f_coprs, f_builds):
+        r = self.tc.get('/coprs/detail/{0}/{1}/'.format(self.u2.name, self.c2.name))
+        assert '/cancel_build/' not in r.data
+
+    def test_copr_detail_doesnt_allow_non_submitter_to_cancel_build(self, f_users, f_coprs, f_builds):
+        with self.tc as c:
+            with c.session_transaction() as s:
+                s['openid'] = self.u1.openid_name
+
+            self.db.session.add_all([self.u2, self.c2])
+            r = c.get('/coprs/detail/{0}/{1}/'.format(self.u2.name, self.c2.name))
+            assert '/cancel_build/' not in r.data
+
+    def test_copr_detail_allows_submitter_to_cancel_build(self, f_users, f_coprs, f_builds):
+        with self.tc as c:
+            with c.session_transaction() as s:
+                s['openid'] = self.u2.openid_name
+
+            self.db.session.add_all([self.u2, self.c2])
+            r = c.get('/coprs/detail/{0}/{1}/'.format(self.u2.name, self.c2.name))
+            assert '/cancel_build/' in r.data
+
+
 class TestCoprEdit(CoprsTestCase):
     def test_edit_prefills_id(self, f_users, f_coprs):
         with self.tc as c:
@@ -161,7 +184,6 @@ class TestCoprEdit(CoprsTestCase):
             assert '<input id="copr_builder_1" name="copr_builder_1" type="checkbox" value="y">' in r.data
             assert '<input checked id="copr_admin_1" name="copr_admin_1" type="checkbox" value="y">' in r.data
 
-
 class TestCoprUpdate(CoprsTestCase):
     def test_update_no_changes(self, f_users, f_coprs):
         with self.tc as c:



More information about the copr-devel mailing list