factories.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # -*- coding: utf-8 -*-
  2. """Factories to help in tests."""
  3. from factory import Sequence
  4. from factory.alchemy import SQLAlchemyModelFactory
  5. from walle.model.database import db
  6. from walle.model.user import UserModel
  7. from werkzeug.security import generate_password_hash
  8. class BaseFactory(SQLAlchemyModelFactory):
  9. """Base factory."""
  10. class Meta:
  11. """Factory configuration."""
  12. abstract = True
  13. sqlalchemy_session = db.session
  14. class UserFactory(BaseFactory):
  15. """User factory."""
  16. username = Sequence(lambda n: 'test{0}'.format(n))
  17. email = Sequence(lambda n: 'test{0}@walle.com'.format(n))
  18. password = generate_password_hash('test0pwd')
  19. class Meta:
  20. """Factory configuration."""
  21. model = UserModel
  22. import pytest
  23. @pytest.mark.usefixtures('db')
  24. class TestApiBase:
  25. def init_vars(self, data):
  26. from flask_login import current_user
  27. if 'space_id' in data:
  28. data['space_id'] = current_user.space_id()
  29. if 'user_id' in data:
  30. data['user_id'] = current_user.id