コード例 #1
0
ファイル: forms.py プロジェクト: dbaty/Petrel
    def validate(self, context=None):
        """Validate form.

        ``context`` is to be given **if and only if** this is an add
        form and we must therefore validate the given id.
        """
        success = Form.validate(self)
        if context:
            if not context.validate_id(self.id.data):
                success = False
                self.id.errors.append(
                    u'An item with the same id already exists.')
        return success
コード例 #2
0
ファイル: fields.py プロジェクト: toddjcrane/wtforms
 def test(self):
     expected = """<label for="test">Caption</label>"""
     label = Label('test', 'Caption')
     self.assertEqual(label(), expected)
     self.assertEqual(str(label), expected)
     self.assertEqual(text_type(label), expected)
     self.assertEqual(label.__html__(), expected)
     self.assertEqual(label().__html__(), expected)
     self.assertEqual(label('hello'), """<label for="test">hello</label>""")
     self.assertEqual(TextField('hi').bind(Form(), 'a').label.text, 'hi')
     if PYTHON_VERSION < (3, ):
         self.assertEqual(repr(label), "Label(u'test', u'Caption')")
     else:
         self.assertEqual(repr(label), "Label('test', 'Caption')")
         self.assertEqual(label.__unicode__(), expected)
コード例 #3
0
ファイル: test_fields.py プロジェクト: yd5011/wtforms
 def test(self):
     expected = """<label for="test">Caption</label>"""
     label = Label("test", "Caption")
     self.assertEqual(label(), expected)
     self.assertEqual(str(label), expected)
     self.assertEqual(text_type(label), expected)
     self.assertEqual(label.__html__(), expected)
     self.assertEqual(label().__html__(), expected)
     self.assertEqual(label("hello"), """<label for="test">hello</label>""")
     self.assertEqual(StringField("hi").bind(Form(), "a").label.text, "hi")
     if PYTHON_VERSION < (3,):
         self.assertEqual(repr(label), "Label(u'test', u'Caption')")
     else:
         self.assertEqual(repr(label), "Label('test', 'Caption')")
         self.assertEqual(label.__unicode__(), expected)
コード例 #4
0
def test_datetime_field(app):
    """Test fields supports date with year < 1900."""

    assert "fr" in app.config["BABEL_ACCEPT_LANGUAGES"]

    patch_babel(app)

    obj = mock.Mock()

    headers = {"Accept-Language": "fr-FR,fr;q=0.8"}
    with app.test_request_context(headers=headers):
        field = fields.DateTimeField(use_naive=False).bind(Form(), "dt")
        field.process_formdata(["17/06/1789 | 10:42"])
        # 1789: applied offset for HongKong is equal to LMT+7:37:00,
        # thus we compare with tzinfo=user_tz
        expected_datetime = datetime.datetime(1789,
                                              6,
                                              17,
                                              10,
                                              42,
                                              tzinfo=USER_TZ)
        assert field.data == expected_datetime
        # UTC stored
        assert field.data.tzinfo is pytz.UTC
        # displayed in user current timezone
        assert field._value() == "17/06/1789 10:42"

        # non-naive mode: test process_data change TZ to user's TZ
        field.process_data(field.data)
        assert field.data.tzinfo is USER_TZ
        assert field.data == expected_datetime

        field.populate_obj(obj, "dt")
        assert obj.dt == expected_datetime

        # test more recent date: offset is GMT+8
        field.process_formdata(["23/01/2011 | 10:42"])
        expected_datetime = datetime.datetime(2011,
                                              1,
                                              23,
                                              2,
                                              42,
                                              tzinfo=pytz.utc)
        assert field.data == expected_datetime
コード例 #5
0
ファイル: tests.py プロジェクト: isaideureka/abilian-core
    def test_datetime_field(self):
        """Test fields supports date with year < 1900."""
        obj = mock.Mock()

        headers = {'Accept-Language': 'fr-FR,fr;q=0.8'}
        with self.app.test_request_context(headers=headers):
            field = fields.DateTimeField(use_naive=False).bind(Form(), 'dt')
            field.process_formdata(['17/06/1789 | 10:42'])
            # 1789: applied offset for HongKong is equal to LMT+7:37:00,
            # thus we compare with tzinfo=user_tz
            expected_datetime = datetime.datetime(
                1789,
                6,
                17,
                10,
                42,
                tzinfo=USER_TZ,
            )
            assert field.data == expected_datetime
            # UTC stored
            assert field.data.tzinfo is pytz.UTC
            # displayed in user current timezone
            assert field._value() == '17/06/1789 10:42'

            # non-naive mode: test process_data change TZ to user's TZ
            field.process_data(field.data)
            assert field.data.tzinfo is USER_TZ
            assert field.data == expected_datetime

            field.populate_obj(obj, 'dt')
            assert obj.dt == expected_datetime

            # test more recent date: offset is GMT+8
            field.process_formdata(['23/01/2011 | 10:42'])
            expected_datetime = datetime.datetime(
                2011,
                1,
                23,
                2,
                42,
                tzinfo=pytz.utc,
            )
            assert field.data == expected_datetime
コード例 #6
0
ファイル: test_fields.py プロジェクト: xen/wtforms
    def test_auto_label(self):
        t1 = StringField().bind(Form(), "foo_bar")
        assert t1.label.text == "Foo Bar"

        t2 = StringField("").bind(Form(), "foo_bar")
        assert t2.label.text == ""
コード例 #7
0
ファイル: test_fields.py プロジェクト: xen/wtforms
def flags():
    return StringField(validators=[validators.DataRequired()]).bind(
        Form(), "a").flags
コード例 #8
0
ファイル: test_fields.py プロジェクト: xen/wtforms
 def test_no_filters(self):
     with pytest.raises(TypeError):
         FieldList(self.t, filters=[lambda x: x], _form=Form(), _name="foo")
コード例 #9
0
 def setUp(self):
     t = TextField(validators=[validators.Required()]).bind(Form(), 'a')
     self.flags = t.flags
コード例 #10
0
    def test_auto_label(self):
        t1 = TextField().bind(Form(), 'foo_bar')
        self.assertEqual(t1.label.text, 'Foo Bar')

        t2 = TextField('').bind(Form(), 'foo_bar')
        self.assertEqual(t2.label.text, '')
コード例 #11
0
ファイル: fields.py プロジェクト: zhaoshiling1017/wtforms
 def setUp(self):
     t = StringField(validators=[validators.DataRequired()]).bind(
         Form(), 'a')
     self.flags = t.flags
コード例 #12
0
 def test_no_filters(self):
     my_filter = lambda x: x
     self.assertRaises(TypeError, FieldList, self.t, filters=[my_filter], _form=Form(), _name='foo')
コード例 #13
0
    def test_datetime_field(self):
        """
    Test fields supports date with year < 1900
    """
        obj = mock.Mock()

        with self.app.test_request_context(
                headers={'Accept-Language': 'fr-FR,fr;q=0.8'}):
            f = fields.DateTimeField(use_naive=False).bind(Form(), 'dt')
            f.process_formdata(['17/06/1789 | 10:42'])
            # 1789: applied offset for HongKong is equal to LMT+7:37:00,
            # thus we compare with tzinfo=user_tz
            assert f.data == datetime.datetime(1789,
                                               6,
                                               17,
                                               10,
                                               42,
                                               tzinfo=USER_TZ)
            # UTC stored
            assert f.data.tzinfo is pytz.UTC
            # displayed in user current timezone
            assert f._value() == '17/06/1789 10:42'

            # non-naive mode: test process_data change TZ to user's TZ
            f.process_data(f.data)
            assert f.data.tzinfo is USER_TZ
            assert f.data == datetime.datetime(1789,
                                               6,
                                               17,
                                               10,
                                               42,
                                               tzinfo=USER_TZ)

            f.populate_obj(obj, 'dt')
            assert obj.dt == datetime.datetime(1789,
                                               6,
                                               17,
                                               10,
                                               42,
                                               tzinfo=USER_TZ)

            # test more recent date: offset is GMT+8
            f.process_formdata(['23/01/2011 | 10:42'])
            assert f.data == datetime.datetime(2011,
                                               1,
                                               23,
                                               2,
                                               42,
                                               tzinfo=pytz.utc)

            # NAIVE mode: dates without timezone. Those are the problematic ones when
            # year < 1900: strptime will raise an Exception use naive dates; by
            # default
            f = fields.DateTimeField().bind(Form(), 'dt')
            f.process_formdata(['17/06/1789 | 10:42'])
            # UTC stored
            assert f.data.tzinfo is pytz.UTC
            assert f.data == datetime.datetime(1789,
                                               6,
                                               17,
                                               10,
                                               42,
                                               tzinfo=pytz.UTC)

            # naive stored
            f.populate_obj(obj, 'dt')
            assert obj.dt == datetime.datetime(1789, 6, 17, 10, 42)
コード例 #14
0
ファイル: test_fields.py プロジェクト: yd5011/wtforms
    def test_auto_label(self):
        t1 = StringField().bind(Form(), "foo_bar")
        self.assertEqual(t1.label.text, "Foo Bar")

        t2 = StringField("").bind(Form(), "foo_bar")
        self.assertEqual(t2.label.text, "")