Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : bkabrda-workspace
---------------------------------------------------------------
commit e9724c2fcf404fae63f274b17a1bd428605efed8
Author: Bohuslav Kabrda <bkabrda(a)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: