diff --git a/README.rst b/README.rst index a9cf80b..6456f40 100644 --- a/README.rst +++ b/README.rst @@ -24,7 +24,7 @@ Features - Flask-Login for authentication - Flask-Bcrypt for password hashing - Procfile for deploying to a PaaS (e.g. Heroku) -- Flask-Testing, Flask-Webtest, nose, and Factory-Boy for testing (example tests included) +- pytest and Factory-Boy for testing (example tests included) - A simple ``manage.py`` script. - CSS and JS minification using Flask-Assets - Optional bower support for frontend package management @@ -59,11 +59,25 @@ Inspiration License ------- + BSD licensed. Changelog --------- +0.4.0 (04/19/2014) +****************** + +- Add ReferenceCol for less verbose foreign key columns. +- Add SurrogatePK mixin for adding integer primary key to a model. +- Add base Model class that has CRUD convenience methods. +- Fix setting BCrypt encryption complexity. Tests are much faster. +- Add Role model to show ReferenceCol usage. +- Switch to pytest. +- Upgrade all out-of-date requirements. +- More test examples. +- Remove "year" from cookiecutter.json (just change LICENSE if necessary). + 0.3.2 (02/26/2014) ****************** diff --git a/{{cookiecutter.app_name}}/tests/factories.py b/{{cookiecutter.app_name}}/tests/factories.py index cf7714a..0eb126d 100644 --- a/{{cookiecutter.app_name}}/tests/factories.py +++ b/{{cookiecutter.app_name}}/tests/factories.py @@ -26,4 +26,3 @@ class UserFactory(BaseFactory): email = Sequence(lambda n: "user{0}@example.com".format(n)) password = PostGenerationMethodCall('set_password', 'example') active = True - diff --git a/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/user/models.py b/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/user/models.py index 5eb8ce8..c8481f6 100644 --- a/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/user/models.py +++ b/{{cookiecutter.app_name}}/{{cookiecutter.app_name}}/user/models.py @@ -23,6 +23,9 @@ class Role(SurrogatePK, Model): def __init__(self, name, **kwargs): db.Model.__init__(self, name=name, **kwargs) + def __repr__(self): + return ''.format(name=self.name) + class User(UserMixin, SurrogatePK, Model): __tablename__ = 'users' @@ -54,4 +57,4 @@ class User(UserMixin, SurrogatePK, Model): return "{0} {1}".format(self.first_name, self.last_name) def __repr__(self): - return ''.format(username=self.username) + return ''.format(username=self.username)