From 4179245939895bb267ba8e4f9a0fa6dba0eb5aab Mon Sep 17 00:00:00 2001 From: sloria Date: Sun, 27 Jul 2014 14:23:24 -0400 Subject: [PATCH] Update tests for factory-boy>=2.4.0 [fixes #23] --- {{cookiecutter.app_name}}/tests/conftest.py | 4 +++- {{cookiecutter.app_name}}/tests/factories.py | 18 ++++++------------ .../tests/test_functional.py | 7 ++----- {{cookiecutter.app_name}}/tests/test_models.py | 3 ++- 4 files changed, 13 insertions(+), 19 deletions(-) diff --git a/{{cookiecutter.app_name}}/tests/conftest.py b/{{cookiecutter.app_name}}/tests/conftest.py index 2c45e15..6dd48d1 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 0eb126d..5a8ccbf 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 e0368c7..ac489cd 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 882d7f6..f8fde0c 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)