[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