diff --git a/{{cookiecutter.app_name}}/tests/conftest.py b/{{cookiecutter.app_name}}/tests/conftest.py index 2c45e158d12167ca23c0865eb159c055a484ede1..6dd48d1083977ec956b4805babc23bc3aa08374c 100644 --- a/{{cookiecutter.app_name}}/tests/conftest.py +++ b/{{cookiecutter.app_name}}/tests/conftest.py @@ -39,4 +39,6 @@ def db(app): @pytest.fixture def user(db): - return UserFactory() + user = UserFactory(password='myprecious') + db.session.commit() + return user diff --git a/{{cookiecutter.app_name}}/tests/factories.py b/{{cookiecutter.app_name}}/tests/factories.py index 0eb126d39a6f9d3400d966d24de5c3f76e2342a6..5a8ccbfbc424f68ef7eb8ea2d03f85cd5198a0c1 100644 --- a/{{cookiecutter.app_name}}/tests/factories.py +++ b/{{cookiecutter.app_name}}/tests/factories.py @@ -7,20 +7,14 @@ from {{cookiecutter.app_name}}.database import db class BaseFactory(SQLAlchemyModelFactory): - FACTORY_SESSION = db.session + class Meta: + sqlalchemy_session = db.session - @classmethod - def _create(cls, target_class, *args, **kwargs): - """Create an instance of the model, and save it to the database.""" - session = cls.FACTORY_SESSION - obj = target_class(*args, **kwargs) - session.add(obj) - session.commit() - return obj - -class UserFactory(BaseFactory): - FACTORY_FOR = User +class UserFactory(SQLAlchemyModelFactory): + class Meta: + model = User + sqlalchemy_session = db.session username = Sequence(lambda n: "user{0}".format(n)) email = Sequence(lambda n: "user{0}@example.com".format(n)) diff --git a/{{cookiecutter.app_name}}/tests/test_functional.py b/{{cookiecutter.app_name}}/tests/test_functional.py index e0368c7b9ae1d3a70e626e58cb0af0a4e2c53997..ac489cdf1282b7c6b474c58e34b67c378b319d33 100644 --- a/{{cookiecutter.app_name}}/tests/test_functional.py +++ b/{{cookiecutter.app_name}}/tests/test_functional.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -'''Functional tests using WebTest. +"""Functional tests using WebTest. See: http://webtest.readthedocs.org/ -''' +""" import pytest from flask import url_for @@ -10,9 +10,6 @@ from flask import url_for from {{cookiecutter.app_name}}.user.models import User from .factories import UserFactory -@pytest.fixture -def user(db): - return UserFactory(password='myprecious') class TestLoggingIn: diff --git a/{{cookiecutter.app_name}}/tests/test_models.py b/{{cookiecutter.app_name}}/tests/test_models.py index 882d7f6de477b0b727d04238d3a1fb4da702c243..f8fde0c8940327948133d80c0165cf36955e8404 100644 --- a/{{cookiecutter.app_name}}/tests/test_models.py +++ b/{{cookiecutter.app_name}}/tests/test_models.py @@ -28,8 +28,9 @@ class TestUser: user.save() assert user.password is None - def test_factory(self): + def test_factory(self, db): user = UserFactory(password="myprecious") + db.session.commit() assert bool(user.username) assert bool(user.email) assert bool(user.created_at)