Browse Source

Make the unit-tests pass on the python-wtforms 2.2+

Signed-off-by: Pierre-Yves Chibon <pingou@pingoured.fr>
Pierre-Yves Chibon 6 years ago
parent
commit
3e9b1df0f5

+ 12 - 0
tests/__init__.py

@@ -428,6 +428,18 @@ class SimplePagureTest(unittest.TestCase):
         return output.get_data(as_text=True).split(
             'name="csrf_token" type="hidden" value="')[1].split('">')[0]
 
+    def get_wtforms_version(self):
+        """Returns the wtforms version as a tuple."""
+        import wtforms
+        wtforms_v = wtforms.__version__.split('.')
+        for idx, val in enumerate(wtforms_v):
+            try:
+                val = int(val)
+            except ValueError:
+                pass
+            wtforms_v[idx] = val
+        return tuple(wtforms_v)
+
     def assertURLEqual(self, url_1, url_2):
         url_parsed_1 = list(urlparse(url_1))
         url_parsed_1[4] = parse_qs(url_parsed_1[4])

+ 88 - 32
tests/test_pagure_flask_ui_app.py

@@ -637,9 +637,15 @@ class PagureFlaskApptests(tests.Modeltests):
             self.assertIn(
                 '<div class="card-header">\n          Basic Information\n'
                 '      </div>', output_text)
-            self.assertIn(
-                '<textarea class="form-control" id="ssh_key" name="ssh_key">'
-                '</textarea>', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<textarea class="form-control" '
+                    'id="ssh_key" name="ssh_key" required></textarea>',
+                    output_text)
+            else:
+                self.assertIn(
+                    '<textarea class="form-control" '
+                    'id="ssh_key" name="ssh_key"></textarea>', output_text)
 
             csrf_token = output_text.split(
                 'name="csrf_token" type="hidden" value="')[1].split('">')[0]
@@ -687,9 +693,15 @@ class PagureFlaskApptests(tests.Modeltests):
             self.assertIn(
                 '<div class="card-header">\n          Basic Information\n'
                 '      </div>', output_text)
-            self.assertIn(
-                '<textarea class="form-control" id="ssh_key" name="ssh_key">'
-                'ssh-rsa AAAA', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<textarea class="form-control" '
+                    'id="ssh_key" name="ssh_key" required>ssh-rsa AAAA',
+                    output_text)
+            else:
+                self.assertIn(
+                    '<textarea class="form-control" '
+                    'id="ssh_key" name="ssh_key">ssh-rsa AAAA', output_text)
 
             ast.return_value = True
             output = self.app.get('/settings/')
@@ -799,9 +811,14 @@ class PagureFlaskApptests(tests.Modeltests):
             self.assertIn(
                 '<div class="card-header">\n          Basic Information\n'
                 '      </div>', output_text)
-            self.assertIn(
-                '<textarea class="form-control" id="ssh_key" name="ssh_key">'
-                '</textarea>', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<textarea class="form-control" id="ssh_key" name="ssh_key" '
+                    'required></textarea>', output_text)
+            else:
+                self.assertIn(
+                    '<textarea class="form-control" id="ssh_key" name="ssh_key">'
+                    '</textarea>', output_text)
 
             csrf_token = output_text.split(
                 'name="csrf_token" type="hidden" value="')[1].split('">')[0]
@@ -943,9 +960,15 @@ class PagureFlaskApptests(tests.Modeltests):
             self.assertIn(
                 '<div class="card-header">\n          Basic Information\n'
                 '      </div>', output_text)
-            self.assertIn(
-                '<textarea class="form-control form-control-error" id="ssh_key" name="ssh_key">'
-                '</textarea>', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<textarea class="form-control form-control-error" '
+                    'id="ssh_key" name="ssh_key" required></textarea>',
+                    output_text)
+            else:
+                self.assertIn(
+                    '<textarea class="form-control form-control-error" '
+                    'id="ssh_key" name="ssh_key"></textarea>', output_text)
 
             csrf_token = output_text.split(
                 'name="csrf_token" type="hidden" value="')[1].split('">')[0]
@@ -961,12 +984,18 @@ class PagureFlaskApptests(tests.Modeltests):
             self.assertIn(
                 '<div class="card-header">\n          Basic Information\n'
                 '      </div>', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<textarea class="form-control" '
+                    'id="ssh_key" name="ssh_key" required></textarea>',
+                    output_text)
+            else:
+                self.assertIn(
+                    '<textarea class="form-control" '
+                    'id="ssh_key" name="ssh_key"></textarea>', output_text)
             self.assertIn(
-                '<textarea class="form-control" id="ssh_key" name="ssh_key">'
-                '</textarea>', output_text)
-            self.assertIn(
-                '</button>\n                      You must always have at least one email',
-                output_text)
+                '</button>\n                      You must always have at '
+                'least one email', output_text)
 
         user.username = 'pingou'
         with tests.user_set(self.app.application, user):
@@ -976,9 +1005,15 @@ class PagureFlaskApptests(tests.Modeltests):
             self.assertIn(
                 '<div class="card-header">\n          Basic Information\n'
                 '      </div>', output_text)
-            self.assertIn(
-                '<textarea class="form-control form-control-error" id="ssh_key" name="ssh_key">'
-                '</textarea>', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<textarea class="form-control form-control-error" '
+                    'id="ssh_key" name="ssh_key" required></textarea>',
+                    output_text)
+            else:
+                self.assertIn(
+                    '<textarea class="form-control form-control-error" '
+                    'id="ssh_key" name="ssh_key"></textarea>', output_text)
 
             csrf_token = output_text.split(
                 'name="csrf_token" type="hidden" value="')[1].split('">')[0]
@@ -1055,9 +1090,14 @@ class PagureFlaskApptests(tests.Modeltests):
             self.assertEqual(output.status_code, 200)
             output_text = output.get_data(as_text=True)
             self.assertIn("<strong>Add new email</strong>", output_text)
-            self.assertIn(
-                '<input class="form-control form-control-error" id="email" '
-                'name="email" type="text" value="">', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<input class="form-control form-control-error" id="email" '
+                    'name="email" required type="text" value="">', output_text)
+            else:
+                self.assertIn(
+                    '<input class="form-control form-control-error" id="email" '
+                    'name="email" type="text" value="">', output_text)
 
         user.username = 'pingou'
         with tests.user_set(self.app.application, user):
@@ -1065,9 +1105,14 @@ class PagureFlaskApptests(tests.Modeltests):
             self.assertEqual(output.status_code, 200)
             output_text = output.get_data(as_text=True)
             self.assertIn("<strong>Add new email</strong>", output_text)
-            self.assertIn(
-                '<input class="form-control form-control-error" id="email" '
-                'name="email" type="text" value="">', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<input class="form-control form-control-error" id="email" '
+                    'name="email" required type="text" value="">', output_text)
+            else:
+                self.assertIn(
+                    '<input class="form-control form-control-error" id="email" '
+                    'name="email" type="text" value="">', output_text)
 
             csrf_token = output_text.split(
                 'name="csrf_token" type="hidden" value="')[1].split('">')[0]
@@ -1181,9 +1226,15 @@ class PagureFlaskApptests(tests.Modeltests):
             self.assertIn(
                 '<div class="card-header">\n          Basic Information\n'
                 '      </div>', output_text)
-            self.assertIn(
-                '<textarea class="form-control" id="ssh_key" name="ssh_key">'
-                '</textarea>', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<textarea class="form-control" '
+                    'id="ssh_key" name="ssh_key" required></textarea>',
+                    output_text)
+            else:
+                self.assertIn(
+                    '<textarea class="form-control" '
+                    'id="ssh_key" name="ssh_key"></textarea>', output_text)
 
             csrf_token = output_text.split(
                 'name="csrf_token" type="hidden" value="')[1].split('">')[0]
@@ -1277,9 +1328,14 @@ class PagureFlaskApptests(tests.Modeltests):
             self.assertIn(
                 '<div class="card-header">\n          Basic Information\n'
                 '      </div>', output_text)
-            self.assertIn(
-                '<textarea class="form-control" id="ssh_key" name="ssh_key">'
-                '</textarea>', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<textarea class="form-control" id="ssh_key" name="ssh_key" '
+                    'required></textarea>', output_text)
+            else:
+                self.assertIn(
+                    '<textarea class="form-control" id="ssh_key" name="ssh_key">'
+                    '</textarea>', output_text)
 
             csrf_token = output_text.split(
                 'name="csrf_token" type="hidden" value="')[1].split('">')[0]

+ 10 - 4
tests/test_pagure_flask_ui_plugins_mail.py

@@ -109,10 +109,16 @@ class PagureFlaskPluginMailtests(tests.SimplePagureTest):
             self.assertIn('<h3>Mail settings</h3>', output_text)
             self.assertNotIn(
                 '</button>\n                      Hook activated', output_text)
-            self.assertIn(
-                '<input class="form-control" id="mail_to" name="mail_to" '
-                'type="text" value=""></td>\n<td class="errors">'
-                'This field is required.</td>', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<input class="form-control" id="mail_to" name="mail_to" '
+                    'required type="text" value=""></td>\n<td class="errors">'
+                    'This field is required.</td>', output_text)
+            else:
+                self.assertIn(
+                    '<input class="form-control" id="mail_to" name="mail_to" '
+                    'type="text" value=""></td>\n<td class="errors">'
+                    'This field is required.</td>', output_text)
             self.assertIn(
                 '<input checked class="form-control" id="active" name="active" '
                 'type="checkbox" value="y">', output_text)

+ 48 - 18
tests/test_pagure_flask_ui_plugins_noff.py

@@ -45,9 +45,14 @@ class PagureFlaskPluginNoFFtests(tests.SimplePagureTest):
             self.assertIn(
                 '<h3>Block non fast-forward pushes settings</h3>',
                 output_text)
-            self.assertIn(
-                '<input class="form-control" id="branches" name="branches" '
-                'type="text" value=""></td>', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<input class="form-control" id="branches" name="branches" '
+                    'required type="text" value=""></td>', output_text)
+            else:
+                self.assertIn(
+                    '<input class="form-control" id="branches" name="branches" '
+                    'type="text" value=""></td>', output_text)
             self.assertTrue(
                 '<input class="form-control" id="active" name="active" '
                 'type="checkbox" value="y">' in output_text)
@@ -67,9 +72,14 @@ class PagureFlaskPluginNoFFtests(tests.SimplePagureTest):
             self.assertIn(
                 '<h3>Block non fast-forward pushes settings</h3>',
                 output_text)
-            self.assertIn(
-                '<input class="form-control" id="branches" name="branches" '
-                'type="text" value="">', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<input class="form-control" id="branches" name="branches" '
+                    'required type="text" value=""></td>', output_text)
+            else:
+                self.assertIn(
+                    '<input class="form-control" id="branches" name="branches" '
+                    'type="text" value=""></td>', output_text)
             self.assertTrue(
                 '<input class="form-control" id="active" name="active" '
                 'type="checkbox" value="y">' in output_text)
@@ -99,9 +109,14 @@ class PagureFlaskPluginNoFFtests(tests.SimplePagureTest):
             self.assertIn(
                 '<h3>Block non fast-forward pushes settings</h3>',
                 output_text)
-            self.assertIn(
-                '<input class="form-control" id="branches" name="branches" '
-                'type="text" value="">', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<input class="form-control" id="branches" name="branches" '
+                    'required type="text" value=""></td>', output_text)
+            else:
+                self.assertIn(
+                    '<input class="form-control" id="branches" name="branches" '
+                    'type="text" value=""></td>', output_text)
             self.assertTrue(
                 '<input class="form-control" id="active" name="active" '
                 'type="checkbox" value="y">' in output_text)
@@ -126,9 +141,14 @@ class PagureFlaskPluginNoFFtests(tests.SimplePagureTest):
             self.assertNotIn(
                 '</button>\n                      Hook activated',
                 output_text)
-            self.assertIn(
-                '<input class="form-control" id="branches" name="branches" '
-                'type="text" value="">', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<input class="form-control" id="branches" name="branches" '
+                    'required type="text" value=""></td>', output_text)
+            else:
+                self.assertIn(
+                    '<input class="form-control" id="branches" name="branches" '
+                    'type="text" value=""></td>', output_text)
             self.assertTrue(
                 '<input checked class="form-control" id="active" name="active" '
                 'type="checkbox" value="y">' in output_text)
@@ -165,9 +185,14 @@ class PagureFlaskPluginNoFFtests(tests.SimplePagureTest):
             self.assertIn(
                 '<h3>Block non fast-forward pushes settings</h3>',
                 output_text)
-            self.assertIn(
-                '<input class="form-control" id="branches" name="branches" '
-                'type="text" value="master">', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<input class="form-control" id="branches" name="branches" '
+                    'required type="text" value="master"></td>', output_text)
+            else:
+                self.assertIn(
+                    '<input class="form-control" id="branches" name="branches" '
+                    'type="text" value="master"></td>', output_text)
             self.assertIn(
                 '<input checked class="form-control" id="active" name="active" '
                 'type="checkbox" value="y">', output_text)
@@ -199,9 +224,14 @@ class PagureFlaskPluginNoFFtests(tests.SimplePagureTest):
             self.assertIn(
                 '<h3>Block non fast-forward pushes settings</h3>',
                 output_text)
-            self.assertIn(
-                '<input class="form-control" id="branches" name="branches" '
-                'type="text" value="">', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<input class="form-control" id="branches" name="branches" '
+                    'required type="text" value=""></td>', output_text)
+            else:
+                self.assertIn(
+                    '<input class="form-control" id="branches" name="branches" '
+                    'type="text" value=""></td>', output_text)
             self.assertIn(
                 '<input class="form-control" id="active" name="active" '
                 'type="checkbox" value="y">', output_text)

+ 23 - 8
tests/test_pagure_flask_ui_plugins_pagure_ci.py

@@ -179,14 +179,29 @@ class PagureFlaskPluginPagureCItests(tests.SimplePagureTest):
             self.assertIn('<h3>Pagure CI settings</h3>', output_text)
             self.assertFalse(
                 '</button>\n                      Hook activated' in output_text)
-            self.assertIn(
-                '<td><input class="form-control" id="ci_url" name="ci_url" type="text" value="">'
-                '</td>\n<td class="errors">This field is required.</td>',
-                output_text)
-            self.assertIn(
-                '<td><input class="form-control" id="ci_job" name="ci_job" type="text" value="">'
-                '</td>\n<td class="errors">This field is required.</td>',
-                output_text)
+
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<td><input class="form-control" id="ci_url" '
+                    'name="ci_url" required type="text" value="">'
+                    '</td>\n<td class="errors">This field is required.</td>',
+                    output_text)
+                self.assertIn(
+                    '<td><input class="form-control" id="ci_job" '
+                    'name="ci_job" required type="text" value="">'
+                    '</td>\n<td class="errors">This field is required.</td>',
+                    output_text)
+            else:
+                self.assertIn(
+                    '<td><input class="form-control" id="ci_url" '
+                    'name="ci_url" type="text" value="">'
+                    '</td>\n<td class="errors">This field is required.</td>',
+                    output_text)
+                self.assertIn(
+                    '<td><input class="form-control" id="ci_job" '
+                    'name="ci_job" type="text" value="">'
+                    '</td>\n<td class="errors">This field is required.</td>',
+                    output_text)
             self.assertIn(
                 '<input checked class="form-control" id="active_commit" '
                 'name="active_commit" type="checkbox" value="y">', output_text)

+ 34 - 13
tests/test_pagure_flask_ui_repo.py

@@ -4505,9 +4505,14 @@ index 0000000..fb7093d
             self.assertIn(
                 '<title>Settings - test - Pagure</title>', output_text)
             self.assertIn('<h3>Settings for test</h3>', output_text)
-            self.assertIn(
-                '<select class="c-select" id="branches" name="branches">'
-                '</select>', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<select class="c-select" id="branches" name="branches" '
+                    'required></select>', output_text)
+            else:
+                self.assertIn(
+                    '<select class="c-select" id="branches" name="branches">'
+                    '</select>', output_text)
             csrf_token = output_text.split(
                 'name="csrf_token" type="hidden" value="')[1].split('">')[0]
 
@@ -4542,11 +4547,19 @@ index 0000000..fb7093d
             self.assertIn(
                 '<title>Settings - test - Pagure</title>', output_text)
             self.assertIn('<h3>Settings for test</h3>', output_text)
-            self.assertIn(
-                '<select class="c-select" id="branches" name="branches">'
-                '<option selected value="feature">feature</option>'
-                '<option value="master">master</option>'
-                '</select>', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<select class="c-select" id="branches" name="branches" '
+                    'required>'
+                    '<option selected value="feature">feature</option>'
+                    '<option value="master">master</option>'
+                    '</select>', output_text)
+            else:
+                self.assertIn(
+                    '<select class="c-select" id="branches" name="branches">'
+                    '<option selected value="feature">feature</option>'
+                    '<option value="master">master</option>'
+                    '</select>', output_text)
             self.assertIn(
                 '</button>\n                      Default branch updated '
                 'to feature', output_text)
@@ -4564,11 +4577,19 @@ index 0000000..fb7093d
             self.assertIn(
                 '<title>Settings - test - Pagure</title>', output_text)
             self.assertIn('<h3>Settings for test</h3>', output_text)
-            self.assertIn(
-                '<select class="c-select" id="branches" name="branches">'
-                '<option value="feature">feature</option>'
-                '<option selected value="master">master</option>'
-                '</select>', output_text)
+            if self.get_wtforms_version() >= (2, 2):
+                self.assertIn(
+                    '<select class="c-select" id="branches" name="branches" '
+                    'required>'
+                    '<option value="feature">feature</option>'
+                    '<option selected value="master">master</option>'
+                    '</select>', output_text)
+            else:
+                self.assertIn(
+                    '<select class="c-select" id="branches" name="branches">'
+                    '<option value="feature">feature</option>'
+                    '<option selected value="master">master</option>'
+                    '</select>', output_text)
             self.assertIn(
                 '</button>\n                      Default branch updated '
                 'to master', output_text)