File: test_wtforms_alchemy.py

package info (click to toggle)
wtforms-json 0.3.5-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 260 kB
  • sloc: python: 819; makefile: 140; sh: 11
file content (66 lines) | stat: -rw-r--r-- 1,600 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import sqlalchemy as sa
from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base
from sqlalchemy.orm import sessionmaker
from wtforms_alchemy import ModelForm

engine = create_engine('sqlite:///:memory:')
Base = sa.orm.declarative_base()
Session = sessionmaker(bind=engine)
session = Session()


class Fake(Base):
    __tablename__ = 'fake'

    id = sa.Column(sa.BigInteger, autoincrement=True, primary_key=True)
    a = sa.Column(sa.Unicode(100), nullable=True)
    b = sa.Column(sa.Unicode(255), nullable=True)
    c = sa.Column(sa.Unicode(100), nullable=True)
    d = sa.Column(sa.Unicode(255), nullable=True)


class FakeForm(ModelForm):
    class Meta:
        model = Fake


Base.metadata.create_all(engine)
# Example


def create_form_from_json(**kwargs):
    if not kwargs.get('json'):
        kwargs['json'] = {
            'a': u'First Event',
            'b': u'Second',
            'c': u'Third',
            'd': u'Fourth'
        }
    return FakeForm.from_json(kwargs['json'])


def create_populated_obj_from_json_form():
    form = create_form_from_json()
    obj = Fake()
    form.populate_obj(obj)
    return obj


def test_init_formdata():
    json = {
        'a': u'First Event',
        'b': u'Second',
        'c': u'Third',
        'd': u'Fourth'
    }
    form = create_form_from_json(json=json)
    assert form.data == json


def test_populate_form_from_object():
    obj = create_populated_obj_from_json_form()
    form = FakeForm(obj=obj)
    assert len(form.data) == 4
    for key in form.data:
        assert form.data[key] == obj.__dict__[key]