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)