sh4nks 10 лет назад
Родитель
Сommit
df513f4782
2 измененных файлов с 26 добавлено и 23 удалено
  1. 11 10
      flaskbb/utils/widgets.py
  2. 15 13
      tests/unit/utils/test_widgets.py

+ 11 - 10
flaskbb/utils/widgets.py

@@ -40,16 +40,22 @@ class SelectBirthdayWidget(object):
         field_id = kwargs.pop('id', field.id)
         html = []
         allowed_format = ['%d', '%m', '%Y']
-        surrounded_div = kwargs.get('surrounded_div', None)
+        surrounded_div = kwargs.pop('surrounded_div', None)
+        css_class = kwargs.get('class', None)
 
         for date_format in field.format.split():
-            if (date_format in allowed_format):
+            if date_format in allowed_format:
                 choices = self.FORMAT_CHOICES[date_format]
                 id_suffix = date_format.replace('%', '-')
                 id_current = field_id + id_suffix
 
-                select_class = "{} {}".format(self.FORMAT_CLASSES[date_format],
-                                              kwargs['class'])
+                if css_class is not None:
+                    select_class = "{} {}".format(
+                        css_class, self.FORMAT_CLASSES[date_format]
+                    )
+                else:
+                    select_class = self.FORMAT_CLASSES[date_format]
+
                 kwargs['class'] = select_class
 
                 try:
@@ -58,7 +64,7 @@ class SelectBirthdayWidget(object):
                     pass
 
                 if surrounded_div is not None:
-                    html.append("<div class='%s'>" % surrounded_div)
+                    html.append('<div class="%s">' % surrounded_div)
 
                 html.append('<select %s>' % html_params(name=field.name,
                                                         id=id_current,
@@ -82,11 +88,6 @@ class SelectBirthdayWidget(object):
 
                 if surrounded_div is not None:
                     html.append("</div>")
-            else:
-                html.append(date_format)
-                html.append(
-                    """<input type="hidden" value="{}" {}></input>""".format(
-                        html_params(name=field.name, id=id_current, **kwargs)))
 
             html.append(' ')
 

+ 15 - 13
tests/unit/utils/test_widgets.py

@@ -1,21 +1,26 @@
 """Tests for the utils/widgets.py file."""
-import datetime
-from flaskbb.utils.widgets import SelectDateWidget
+from flaskbb.utils.widgets import SelectBirthdayWidget
 
-def test_select_date_widget():
+
+def test_select_birthday_widget():
     """Test the SelectDateWidget."""
-    assert SelectDateWidget.FORMAT_CHOICES['%d'] == [(x, str(x)) for x in range(1, 32)]
-    assert SelectDateWidget.FORMAT_CHOICES['%m'] == [(x, str(x)) for x in range(1, 13)]
 
-    assert SelectDateWidget.FORMAT_CLASSES == {
+    assert SelectBirthdayWidget.FORMAT_CHOICES['%d'] == [
+        (x, str(x)) for x in range(1, 32)
+    ]
+    assert SelectBirthdayWidget.FORMAT_CHOICES['%m'] == [
+        (x, str(x)) for x in range(1, 13)
+    ]
+
+    assert SelectBirthdayWidget.FORMAT_CLASSES == {
         '%d': 'select_date_day',
         '%m': 'select_date_month',
         '%Y': 'select_date_year'
     }
 
-    select_date_widget = SelectDateWidget(years=[0, 1])
+    select_birthday_widget = SelectBirthdayWidget(years=[0, 1])
 
-    assert select_date_widget.FORMAT_CHOICES['%Y'] == [(0, '0'), (1, '1')]
+    assert select_birthday_widget.FORMAT_CHOICES['%Y'] == [(0, '0'), (1, '1')]
 
     class Field(object):
         id = 'world'
@@ -23,13 +28,10 @@ def test_select_date_widget():
         format = '%d %m %Y'
         data = None
 
-    html = select_date_widget(field=Field())
+    html = select_birthday_widget(field=Field(), surrounded_div="test-div")
     assert 'world' in html
     assert 'helloWorld' in html
     assert 'class="select_date_day"' in html
     assert 'class="select_date_month"' in html
     assert 'class="select_date_year"' in html
-
-
-
-
+    assert '<div class="test-div">' in html