[copr] bkabrda-workspace: Couple of fixes and adapted tests (d470a3a)
bkabrda at fedoraproject.org
bkabrda at fedoraproject.org
Mon Nov 26 12:01:40 UTC 2012
Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : bkabrda-workspace
>---------------------------------------------------------------
commit d470a3a2ce2326e1fc27de4785c88e2683f463ed
Author: Bohuslav Kabrda <bkabrda at redhat.com>
Date: Mon Nov 26 13:01:29 2012 +0100
Couple of fixes and adapted tests
>---------------------------------------------------------------
wsgi/coprs/templates/coprs/_permissions_table.html | 6 ++--
wsgi/coprs/views/coprs_ns/coprs_general.py | 11 ++++++--
.../tests/test_views/test_coprs_ns/test_general.py | 24 +++++++------------
3 files changed, 20 insertions(+), 21 deletions(-)
diff --git a/wsgi/coprs/templates/coprs/_permissions_table.html b/wsgi/coprs/templates/coprs/_permissions_table.html
index 8434f4b..78ff2ff 100644
--- a/wsgi/coprs/templates/coprs/_permissions_table.html
+++ b/wsgi/coprs/templates/coprs/_permissions_table.html
@@ -1,6 +1,6 @@
{% macro permissions_table(permissions, copr, permissions_applier_form) %}
{% if permissions or permissions_applier_form %}
- {% if permissions_applier_form %}
+ {% if permissions_applier_form and g.user %}
<form action="{{ url_for('coprs_ns.copr_permissions_applier_change', username = copr.owner.name, coprname = copr.name)}}" method=post>
{{ permissions_applier_form.csrf_token }}
{% endif %}
@@ -11,7 +11,7 @@
<tr><td>{{ perm.user.name }}</td><td>{{ perm.copr_builder|perm_type_from_num }}</td><td>{{ perm.copr_admin|perm_type_from_num }}</tr>
{% endif %}
{% endfor %}
- {% if permissions_applier_form %}
+ {% if permissions_applier_form and g.user %}
<tr>
<td>{{ g.user.name }}</td>
<td>{{ permissions_applier_form.copr_builder|safe }}</td>
@@ -19,7 +19,7 @@
</tr>
{% endif %}
</table>
- {% if permissions_applier_form %}
+ {% if permissions_applier_form and g.user %}
<input type=submit value=Submit>
</form>
{% endif %}
diff --git a/wsgi/coprs/views/coprs_ns/coprs_general.py b/wsgi/coprs/views/coprs_ns/coprs_general.py
index 2adc495..0a3cccf 100644
--- a/wsgi/coprs/views/coprs_ns/coprs_general.py
+++ b/wsgi/coprs/views/coprs_ns/coprs_general.py
@@ -78,7 +78,12 @@ def copr_detail(username, coprname):
return page_not_found('Copr with name {0} does not exist.'.format(coprname))
permissions = coprs_logic.CoprsPermissionLogic.get_for_copr(flask.g.user, copr).all()
- permission_applier_form = forms.PermissionsApplierFormFactory.create_form_cls(flask.g.user.permissions_for_copr(copr))()
+ if flask.g.user:
+ user_perm = flask.g.user.permissions_for_copr(copr)
+ else:
+ user_perm = None
+
+ permission_applier_form = forms.PermissionsApplierFormFactory.create_form_cls(user_perm)()
return flask.render_template('coprs/detail.html',
copr = copr,
build_form = build_form,
@@ -144,8 +149,8 @@ def copr_permissions_applier_change(username, coprname):
else: # TODO: pull this into logic
new_builder = int(applier_permissions_form.copr_builder.data)
new_admin = int(applier_permissions_form.copr_admin.data)
+ approved_num = helpers.PermissionEnum.num('Approved')
if permission:
- approved_num = helpers.PermissionEnum.num('Approved')
prev_builder = permission.copr_builder
prev_admin = permission.copr_admin
# if we had Approved before, we can have it now, otherwise not
@@ -158,7 +163,7 @@ def copr_permissions_applier_change(username, coprname):
db.session.commit()
flask.flash('Successfuly updated your permissions in Copr "{0}".'.format(copr.name))
else:
- if new_builder == approved_num or new_admin == aproved_num:
+ if new_builder == approved_num or new_admin == approved_num:
flask.flash('User can\'t approve himself.')
else:
perm = models.CoprPermission(user = flask.g.user, copr = copr, copr_builder = new_builder, copr_admin = new_admin)
diff --git a/wsgi/tests/test_views/test_coprs_ns/test_general.py b/wsgi/tests/test_views/test_coprs_ns/test_general.py
index af8ebe1..5cd3457 100644
--- a/wsgi/tests/test_views/test_coprs_ns/test_general.py
+++ b/wsgi/tests/test_views/test_coprs_ns/test_general.py
@@ -119,32 +119,24 @@ class TestCoprDetail(CoprsTestCase):
r = self.tc.get('/coprs/detail/{0}/{1}/'.format(self.u2.name, self.c3.name))
assert '<form' not in r.data
- def test_copr_detail_allows_asking_for_building(self, f_users, f_coprs):
+ def test_copr_detail_allows_asking_for_permissions(self, f_users, f_coprs, f_copr_permissions):
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 '<input type=submit value="Apply for building">' in r.data
+ # u1 is approved builder, check for that
+ assert '<option selected value="2">Approved</option>' in r.data
- def test_copr_detail_doesnt_allow_owner_to_ask_for_building(self, f_users, f_coprs):
+ def test_copr_detail_doesnt_allow_owner_to_ask_for_permissions(self, f_users, f_coprs):
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 '<input type=submit value="Apply for building">' not in r.data
-
- def test_copr_detail_allows_giving_up_building(self, f_users, f_coprs, f_copr_permissions):
- 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 '<input type=submit value="Give up building">' in r.data
+ assert '/permissions_applier_change/' not in r.data
class TestCoprEdit(CoprsTestCase):
def test_edit_prefills_id(self, f_users, f_coprs):
@@ -165,8 +157,10 @@ class TestCoprEdit(CoprsTestCase):
self.db.session.add_all([self.u2, self.c3])
r = c.get('/coprs/detail/{0}/{1}/edit/'.format(self.u2.name, self.c3.name))
- assert '<input id="user_3" name="user_3" type="checkbox" value="y">' in r.data
- assert '<input id="user_1" name="user_1" type="checkbox" value="y">' in r.data
+ print r.data
+ assert r.data.count('No Action') == 2
+ 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):
More information about the copr-devel
mailing list