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 67 68 69 70 71 72
|
import sqlalchemy as sa
from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base, sessionmaker
from sqlalchemy.orm.session import close_all_sessions
from sqlalchemy_utils import force_auto_coercion
from wtforms_test import FormTestCase
from wtforms_alchemy import ModelForm
force_auto_coercion()
class MultiDict(dict):
def getlist(self, key):
return [self[key]]
class ModelFormTestCase(FormTestCase):
dns = "sqlite:///:memory:"
def setup_method(self, method):
self.engine = create_engine(self.dns)
self.base = declarative_base()
def teardown_method(self, method):
self.engine.dispose()
self.ModelTest = None
self.form_class = None
def init_model(self, type_=sa.Unicode(255), **kwargs):
kwargs.setdefault("nullable", False)
class ModelTest(self.base):
__tablename__ = "model_test"
query = None
id = sa.Column(sa.Integer, primary_key=True)
test_column = sa.Column(type_, **kwargs)
some_property = "something"
self.ModelTest = ModelTest
def init(self, type_=sa.Unicode(255), **kwargs):
self.init_model(type_=type_, **kwargs)
self.init_form()
def init_form(self):
class ModelTestForm(ModelForm):
class Meta:
model = self.ModelTest
self.form_class = ModelTestForm
class FormRelationsTestCase:
dns = "sqlite:///:memory:"
def setup_method(self, method):
self.engine = create_engine(self.dns)
self.base = declarative_base()
self.create_models()
self.create_forms()
self.base.metadata.create_all(self.engine)
Session = sessionmaker(bind=self.engine)
self.session = Session()
def teardown_method(self, method):
close_all_sessions()
self.base.metadata.drop_all(self.engine)
self.engine.dispose()
|