From 71e456ad83227f7715e8f67725148190de24ce74 Mon Sep 17 00:00:00 2001 From: iamareebjamal Date: Thu, 7 May 2020 22:37:55 +0530 Subject: [PATCH] test: Use scoped session db - Use scoped session db for much faster tests - Move global fixtures to conftest.py - Change all factory base class to BaseFactory to change db.session to scoped in future --- tests/all/conftest.py | 45 +++++++++++++++++++ .../all/integration/api/helpers/test_auth.py | 22 ++------- tests/all/integration/setup_database.py | 13 ++++-- .../all/unit/utils/test_schema_defaulting.py | 1 - tests/factories/access_code.py | 6 +-- tests/factories/activities.py | 8 ++-- tests/factories/attendee.py | 6 +-- tests/factories/base.py | 9 ++++ tests/factories/custom_form.py | 6 +-- tests/factories/custom_placeholder.py | 8 ++-- tests/factories/custom_system_role.py | 8 ++-- tests/factories/discount_code.py | 9 ++-- tests/factories/email_notification.py | 6 +-- tests/factories/event.py | 8 ++-- tests/factories/event_copyright.py | 6 +-- tests/factories/event_invoice.py | 6 +-- tests/factories/event_location.py | 8 ++-- tests/factories/event_role_permission.py | 6 +-- tests/factories/event_sub_topic.py | 6 +-- tests/factories/event_topic.py | 8 ++-- tests/factories/event_type.py | 8 ++-- tests/factories/export_job.py | 6 +-- tests/factories/faq.py | 6 +-- tests/factories/faq_type.py | 6 +-- tests/factories/feedback.py | 6 +-- tests/factories/image_size.py | 11 ++--- tests/factories/mail.py | 8 ++-- tests/factories/message_setting.py | 8 ++-- tests/factories/microlocation.py | 6 +-- tests/factories/module.py | 8 ++-- tests/factories/notification.py | 6 +-- tests/factories/notification_action.py | 9 ++-- tests/factories/order.py | 5 +-- tests/factories/page.py | 8 ++-- tests/factories/panel_permission.py | 8 ++-- tests/factories/role.py | 8 ++-- tests/factories/role_invite.py | 6 +-- tests/factories/service.py | 8 ++-- tests/factories/session.py | 6 +-- tests/factories/session_type.py | 6 +-- tests/factories/setting.py | 8 ++-- tests/factories/social_link.py | 6 +-- tests/factories/speaker.py | 6 +-- tests/factories/speakers_call.py | 6 +-- tests/factories/sponsor.py | 6 +-- tests/factories/stripe_authorization.py | 7 ++- tests/factories/tax.py | 6 +-- tests/factories/ticket.py | 6 +-- tests/factories/ticket_fee.py | 4 +- tests/factories/ticket_tag.py | 6 +-- tests/factories/track.py | 6 +-- tests/factories/user.py | 8 ++-- tests/factories/user_email.py | 6 +-- tests/factories/user_favourite_events.py | 8 ++-- tests/factories/user_permission.py | 8 ++-- tests/factories/user_token_blacklist.py | 8 ++-- 56 files changed, 220 insertions(+), 223 deletions(-) create mode 100644 tests/all/conftest.py create mode 100644 tests/factories/base.py diff --git a/tests/all/conftest.py b/tests/all/conftest.py new file mode 100644 index 0000000000..4060e56ae5 --- /dev/null +++ b/tests/all/conftest.py @@ -0,0 +1,45 @@ +import pytest +from app.models import db as _db +from tests.all.integration.setup_database import ( + Setup, + create_app, + set_settings, + Environment, +) + + +@pytest.fixture(scope='module') +def app(): + app = create_app() + with app.test_request_context(): + yield app + + +@pytest.fixture(scope='module') +def database(app): + _db.create_all() + set_settings(app_name='Open Event', app_environment=Environment.TESTING) + yield _db + Setup.drop_db() + + +@pytest.fixture(scope='module') +def connection(database): + with database.engine.connect() as conn: + yield conn + + +@pytest.fixture(scope='function') +def db(database, connection): + transaction = connection.begin() + + options = dict(bind=connection, binds={}) + session = database.create_scoped_session(options=options) + old_session = database.session + database.session = session + + yield database + + session.remove() + database.session = old_session + transaction.rollback() diff --git a/tests/all/integration/api/helpers/test_auth.py b/tests/all/integration/api/helpers/test_auth.py index 9a21d15d5b..cd274cb8cc 100644 --- a/tests/all/integration/api/helpers/test_auth.py +++ b/tests/all/integration/api/helpers/test_auth.py @@ -1,23 +1,7 @@ -import pytest from flask_login import login_user, logout_user from app.api.helpers.auth import AuthManager -from app.models import db as database from app.models.user import User from tests.all.integration.auth_helper import create_user -from tests.all.integration.setup_database import Setup - - -@pytest.fixture(scope='module') -def app(): - app = Setup.create_app() - with app.test_request_context(): - yield app - Setup.drop_db() - - -@pytest.fixture(scope='module') -def db(app): - return database def test_load_user(db): @@ -26,7 +10,7 @@ def test_load_user(db): assert user == db.session.query(User).get(user.id) -def test_verified_user(): +def test_verified_user(db): """Method to test if user is verified""" user = create_user(email='authtest@gmail.com', password='password') @@ -35,7 +19,7 @@ def test_verified_user(): assert AuthManager.is_verified_user() == False -def test_is_accessible(): +def test_is_accessible(db): """Method to test if user is accessible(authenticated)""" user = create_user(email='test@test.com', password='password') @@ -44,7 +28,7 @@ def test_is_accessible(): assert AuthManager.is_accessible() == False -def test_check_auth_admin(): +def test_check_auth_admin(db): """Method to test proper authentication & admin rights for a user""" user = create_user(email='authtest1@gmail.com', password='password') diff --git a/tests/all/integration/setup_database.py b/tests/all/integration/setup_database.py index 063922aade..77492f21df 100644 --- a/tests/all/integration/setup_database.py +++ b/tests/all/integration/setup_database.py @@ -10,13 +10,18 @@ _basedir = os.path.abspath(os.path.dirname(__file__)) +def create_app(): + app.config.from_object('config.TestingConfig') + app.logger.addHandler(logging.StreamHandler(sys.stdout)) + app.logger.setLevel(logging.ERROR) + return app + + class Setup(object): @staticmethod def create_app(): - app.config.from_object('config.TestingConfig') - app.logger.addHandler(logging.StreamHandler(sys.stdout)) - app.logger.setLevel(logging.ERROR) - with app.test_request_context(): + test_app = create_app() + with test_app.test_request_context(): db.create_all() set_settings(app_name='Open Event', app_environment=Environment.TESTING) diff --git a/tests/all/unit/utils/test_schema_defaulting.py b/tests/all/unit/utils/test_schema_defaulting.py index 0c39f756a3..1fc26219ee 100644 --- a/tests/all/unit/utils/test_schema_defaulting.py +++ b/tests/all/unit/utils/test_schema_defaulting.py @@ -28,7 +28,6 @@ class Meta: class TestUtils(TestCase): - @pytest.mark.skip(reason="no way of currently testing this") def test_patch_defaults_adds_defaults(self): schema = TestSchema() diff --git a/tests/factories/access_code.py b/tests/factories/access_code.py index 7e51d464d9..163e26d16d 100644 --- a/tests/factories/access_code.py +++ b/tests/factories/access_code.py @@ -1,16 +1,16 @@ import factory import tests.factories.common as common +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic from tests.factories.ticket import TicketFactory from tests.factories.user import UserFactory -from app.models.access_code import AccessCode, db +from app.models.access_code import AccessCode -class AccessCodeFactory(factory.alchemy.SQLAlchemyModelFactory): +class AccessCodeFactory(BaseFactory): class Meta: model = AccessCode - sqlalchemy_session = db.session tickets = factory.RelatedFactory(TicketFactory) user = factory.RelatedFactory(UserFactory) diff --git a/tests/factories/activities.py b/tests/factories/activities.py index bcd9e774d1..13964a6184 100644 --- a/tests/factories/activities.py +++ b/tests/factories/activities.py @@ -1,13 +1,11 @@ -import factory - import tests.factories.common as common -from app.models.activity import Activity, db +from app.models.activity import Activity +from tests.factories.base import BaseFactory -class ActivityFactory(factory.alchemy.SQLAlchemyModelFactory): +class ActivityFactory(BaseFactory): class Meta: model = Activity - sqlalchemy_session = db.session actor = common.string_ action = common.string_ diff --git a/tests/factories/attendee.py b/tests/factories/attendee.py index 37aa1a0ff2..5df7f736d1 100644 --- a/tests/factories/attendee.py +++ b/tests/factories/attendee.py @@ -1,16 +1,16 @@ import factory import tests.factories.common as common +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic from tests.factories.order import OrderFactory from tests.factories.ticket import TicketFactory -from app.models.ticket_holder import TicketHolder, db +from app.models.ticket_holder import TicketHolder -class AttendeeFactoryBase(factory.alchemy.SQLAlchemyModelFactory): +class AttendeeFactoryBase(BaseFactory): class Meta: model = TicketHolder - sqlalchemy_session = db.session firstname = common.string_ lastname = common.string_ diff --git a/tests/factories/base.py b/tests/factories/base.py new file mode 100644 index 0000000000..01cad23194 --- /dev/null +++ b/tests/factories/base.py @@ -0,0 +1,9 @@ +import factory + +from app.models import db + + +class BaseFactory(factory.alchemy.SQLAlchemyModelFactory): + class Meta: + abstract = True + sqlalchemy_session = db.session diff --git a/tests/factories/custom_form.py b/tests/factories/custom_form.py index 28215d57ba..4e9c719a49 100644 --- a/tests/factories/custom_form.py +++ b/tests/factories/custom_form.py @@ -1,14 +1,14 @@ import factory import tests.factories.common as common +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic -from app.models.custom_form import CustomForms, db +from app.models.custom_form import CustomForms -class CustomFormFactory(factory.alchemy.SQLAlchemyModelFactory): +class CustomFormFactory(BaseFactory): class Meta: model = CustomForms - sqlalchemy_session = db.session event = factory.RelatedFactory(EventFactoryBasic) form = common.string_ diff --git a/tests/factories/custom_placeholder.py b/tests/factories/custom_placeholder.py index 9ce65277a2..794c07437b 100644 --- a/tests/factories/custom_placeholder.py +++ b/tests/factories/custom_placeholder.py @@ -1,13 +1,11 @@ -import factory - import tests.factories.common as common -from app.models.custom_placeholder import CustomPlaceholder, db +from app.models.custom_placeholder import CustomPlaceholder +from tests.factories.base import BaseFactory -class CustomPlaceholderFactory(factory.alchemy.SQLAlchemyModelFactory): +class CustomPlaceholderFactory(BaseFactory): class Meta: model = CustomPlaceholder - sqlalchemy_session = db.session name = common.string_ origin = common.string_ diff --git a/tests/factories/custom_system_role.py b/tests/factories/custom_system_role.py index 8c19047f52..159e40ce08 100644 --- a/tests/factories/custom_system_role.py +++ b/tests/factories/custom_system_role.py @@ -1,12 +1,10 @@ -import factory - import tests.factories.common as common -from app.models.custom_system_role import CustomSysRole, db +from app.models.custom_system_role import CustomSysRole +from tests.factories.base import BaseFactory -class CustomSysRoleFactory(factory.alchemy.SQLAlchemyModelFactory): +class CustomSysRoleFactory(BaseFactory): class Meta: model = CustomSysRole - sqlalchemy_session = db.session name = common.string_ diff --git a/tests/factories/discount_code.py b/tests/factories/discount_code.py index 409cfa64a2..13ae43ed0f 100644 --- a/tests/factories/discount_code.py +++ b/tests/factories/discount_code.py @@ -1,16 +1,16 @@ import factory import tests.factories.common as common +from tests.factories.base import BaseFactory from tests.factories.ticket import TicketFactory from tests.factories.user import UserFactory -from app.models.discount_code import DiscountCode, db +from app.models.discount_code import DiscountCode -class DiscountCodeFactory(factory.alchemy.SQLAlchemyModelFactory): +class DiscountCodeFactory(BaseFactory): # class name to be DiscountCodeEventFactory? class Meta: model = DiscountCode - sqlalchemy_session = db.session marketer = factory.RelatedFactory(UserFactory) code = common.string_ @@ -28,10 +28,9 @@ class Meta: event_id = None -class DiscountCodeTicketFactory(factory.alchemy.SQLAlchemyModelFactory): +class DiscountCodeTicketFactory(BaseFactory): class Meta: model = DiscountCode - sqlalchemy_session = db.session marketer = factory.RelatedFactory(UserFactory) tickets = factory.RelatedFactory(TicketFactory) diff --git a/tests/factories/email_notification.py b/tests/factories/email_notification.py index 248439f0d1..a34021b76b 100644 --- a/tests/factories/email_notification.py +++ b/tests/factories/email_notification.py @@ -1,14 +1,14 @@ import factory +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic from tests.factories.user import UserFactory -from app.models.email_notification import EmailNotification, db +from app.models.email_notification import EmailNotification -class EmailNotificationFactory(factory.alchemy.SQLAlchemyModelFactory): +class EmailNotificationFactory(BaseFactory): class Meta: model = EmailNotification - sqlalchemy_session = db.session user = factory.RelatedFactory(UserFactory) event = factory.RelatedFactory(EventFactoryBasic) diff --git a/tests/factories/event.py b/tests/factories/event.py index 311995f2d4..445a92a317 100644 --- a/tests/factories/event.py +++ b/tests/factories/event.py @@ -1,13 +1,11 @@ -import factory - import tests.factories.common as common -from app.models.event import Event, db +from app.models.event import Event +from tests.factories.base import BaseFactory -class EventFactoryBasic(factory.alchemy.SQLAlchemyModelFactory): +class EventFactoryBasic(BaseFactory): class Meta: model = Event - sqlalchemy_session = db.session name = common.string_ external_event_url = common.url_ diff --git a/tests/factories/event_copyright.py b/tests/factories/event_copyright.py index 288e3ddd8d..aee5e34d99 100644 --- a/tests/factories/event_copyright.py +++ b/tests/factories/event_copyright.py @@ -1,14 +1,14 @@ import factory import tests.factories.common as common +from app.models.event_copyright import EventCopyright +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic -from app.models.event_copyright import EventCopyright, db -class EventCopyrightFactory(factory.alchemy.SQLAlchemyModelFactory): +class EventCopyrightFactory(BaseFactory): class Meta: model = EventCopyright - sqlalchemy_session = db.session event = factory.RelatedFactory(EventFactoryBasic) holder = common.string_ diff --git a/tests/factories/event_invoice.py b/tests/factories/event_invoice.py index d3a8dc5633..b065f03724 100644 --- a/tests/factories/event_invoice.py +++ b/tests/factories/event_invoice.py @@ -1,16 +1,16 @@ import factory import tests.factories.common as common +from app.models.event_invoice import EventInvoice +from tests.factories.base import BaseFactory from tests.factories.discount_code import DiscountCodeFactory from tests.factories.event import EventFactoryBasic from tests.factories.user import UserFactory -from app.models.event_invoice import EventInvoice, db -class EventInvoiceFactory(factory.alchemy.SQLAlchemyModelFactory): +class EventInvoiceFactory(BaseFactory): class Meta: model = EventInvoice - sqlalchemy_session = db.session event = factory.RelatedFactory(EventFactoryBasic) user = factory.RelatedFactory(UserFactory) diff --git a/tests/factories/event_location.py b/tests/factories/event_location.py index 7d6314be39..22be16d9d3 100644 --- a/tests/factories/event_location.py +++ b/tests/factories/event_location.py @@ -1,13 +1,11 @@ -import factory - import tests.factories.common as common -from app.models.event_location import EventLocation, db +from app.models.event_location import EventLocation +from tests.factories.base import BaseFactory -class EventLocationFactory(factory.alchemy.SQLAlchemyModelFactory): +class EventLocationFactory(BaseFactory): class Meta: model = EventLocation - sqlalchemy_session = db.session name = common.string_ slug = common.slug_ diff --git a/tests/factories/event_role_permission.py b/tests/factories/event_role_permission.py index c47d886c10..3f42991b8c 100644 --- a/tests/factories/event_role_permission.py +++ b/tests/factories/event_role_permission.py @@ -1,14 +1,14 @@ import factory +from app.models.permission import Permission +from tests.factories.base import BaseFactory from tests.factories.role import RoleFactory from tests.factories.service import ServiceFactory -from app.models.permission import Permission, db -class EventRolePermissionsFactory(factory.alchemy.SQLAlchemyModelFactory): +class EventRolePermissionsFactory(BaseFactory): class Meta: model = Permission - sqlalchemy_session = db.session role = factory.RelatedFactory(RoleFactory) service = factory.RelatedFactory(ServiceFactory) diff --git a/tests/factories/event_sub_topic.py b/tests/factories/event_sub_topic.py index ac04e3158b..c99703b900 100644 --- a/tests/factories/event_sub_topic.py +++ b/tests/factories/event_sub_topic.py @@ -1,14 +1,14 @@ import factory import tests.factories.common as common +from app.models.event_sub_topic import EventSubTopic +from tests.factories.base import BaseFactory from tests.factories.event_topic import EventTopicFactory -from app.models.event_sub_topic import EventSubTopic, db -class EventSubTopicFactory(factory.alchemy.SQLAlchemyModelFactory): +class EventSubTopicFactory(BaseFactory): class Meta: model = EventSubTopic - sqlalchemy_session = db.session event_topic = factory.RelatedFactory(EventTopicFactory) name = common.string_ diff --git a/tests/factories/event_topic.py b/tests/factories/event_topic.py index edc46a224e..21cd6e08ea 100644 --- a/tests/factories/event_topic.py +++ b/tests/factories/event_topic.py @@ -1,13 +1,11 @@ -import factory - import tests.factories.common as common -from app.models.event_topic import EventTopic, db +from app.models.event_topic import EventTopic +from tests.factories.base import BaseFactory -class EventTopicFactory(factory.alchemy.SQLAlchemyModelFactory): +class EventTopicFactory(BaseFactory): class Meta: model = EventTopic - sqlalchemy_session = db.session name = common.string_ slug = common.slug_ diff --git a/tests/factories/event_type.py b/tests/factories/event_type.py index b2a91716ff..092a4d71c0 100644 --- a/tests/factories/event_type.py +++ b/tests/factories/event_type.py @@ -1,13 +1,11 @@ -import factory - import tests.factories.common as common -from app.models.event_type import EventType, db +from app.models.event_type import EventType +from tests.factories.base import BaseFactory -class EventTypeFactory(factory.alchemy.SQLAlchemyModelFactory): +class EventTypeFactory(BaseFactory): class Meta: model = EventType - sqlalchemy_session = db.session name = common.string_ slug = common.slug_ diff --git a/tests/factories/export_job.py b/tests/factories/export_job.py index 1857bbb023..1c78c9f004 100644 --- a/tests/factories/export_job.py +++ b/tests/factories/export_job.py @@ -1,14 +1,14 @@ import factory import tests.factories.common as common +from app.models.export_job import ExportJob +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic -from app.models.export_job import ExportJob, db -class ExportJobFactory(factory.alchemy.SQLAlchemyModelFactory): +class ExportJobFactory(BaseFactory): class Meta: model = ExportJob - sqlalchemy_session = db.session task = common.string_ user_email = common.string_ diff --git a/tests/factories/faq.py b/tests/factories/faq.py index d2c0a87e11..bf20a8151a 100644 --- a/tests/factories/faq.py +++ b/tests/factories/faq.py @@ -1,14 +1,14 @@ import factory +from app.models.faq import Faq +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic from tests.factories.faq_type import FaqTypeFactory -from app.models.faq import Faq, db -class FaqFactory(factory.alchemy.SQLAlchemyModelFactory): +class FaqFactory(BaseFactory): class Meta: model = Faq - sqlalchemy_session = db.session event = factory.RelatedFactory(EventFactoryBasic) faq_type = factory.RelatedFactory(FaqTypeFactory) diff --git a/tests/factories/faq_type.py b/tests/factories/faq_type.py index c343465227..98657c66c5 100644 --- a/tests/factories/faq_type.py +++ b/tests/factories/faq_type.py @@ -1,14 +1,14 @@ import factory import tests.factories.common as common +from app.models.faq_type import FaqType +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic -from app.models.faq_type import FaqType, db -class FaqTypeFactory(factory.alchemy.SQLAlchemyModelFactory): +class FaqTypeFactory(BaseFactory): class Meta: model = FaqType - sqlalchemy_session = db.session event = factory.RelatedFactory(EventFactoryBasic) name = common.string_ diff --git a/tests/factories/feedback.py b/tests/factories/feedback.py index dd67ba9830..932a78876b 100644 --- a/tests/factories/feedback.py +++ b/tests/factories/feedback.py @@ -1,14 +1,14 @@ import factory +from app.models.feedback import Feedback +from tests.factories.base import BaseFactory from tests.factories.session import SessionFactory from tests.factories.user import UserFactory -from app.models.feedback import Feedback, db -class FeedbackFactory(factory.alchemy.SQLAlchemyModelFactory): +class FeedbackFactory(BaseFactory): class Meta: model = Feedback - sqlalchemy_session = db.session session = factory.RelatedFactory(SessionFactory) user = factory.RelatedFactory(UserFactory) diff --git a/tests/factories/image_size.py b/tests/factories/image_size.py index 8819914927..990d4d25ab 100644 --- a/tests/factories/image_size.py +++ b/tests/factories/image_size.py @@ -1,13 +1,11 @@ -import factory - import tests.factories.common as common -from app.models.image_size import ImageSizes, db +from app.models.image_size import ImageSizes +from tests.factories.base import BaseFactory -class EventImageSizeFactory(factory.alchemy.SQLAlchemyModelFactory): +class EventImageSizeFactory(BaseFactory): class Meta: model = ImageSizes - sqlalchemy_session = db.session type = common.string_ full_width = 10 @@ -26,10 +24,9 @@ class Meta: logo_height = 10 -class SpeakerImageSizeFactory(factory.alchemy.SQLAlchemyModelFactory): +class SpeakerImageSizeFactory(BaseFactory): class Meta: model = ImageSizes - sqlalchemy_session = db.session type = common.string_ icon_size_quality = 80 diff --git a/tests/factories/mail.py b/tests/factories/mail.py index 6fec459180..14cd0fa6f9 100644 --- a/tests/factories/mail.py +++ b/tests/factories/mail.py @@ -1,13 +1,11 @@ -import factory - import tests.factories.common as common -from app.models.mail import Mail, db +from app.models.mail import Mail +from tests.factories.base import BaseFactory -class MailFactory(factory.alchemy.SQLAlchemyModelFactory): +class MailFactory(BaseFactory): class Meta: model = Mail - sqlalchemy_session = db.session recipient = common.email_ time = common.date_ diff --git a/tests/factories/message_setting.py b/tests/factories/message_setting.py index b9075af014..7d42c81752 100644 --- a/tests/factories/message_setting.py +++ b/tests/factories/message_setting.py @@ -1,12 +1,10 @@ -import factory +from app.models.message_setting import MessageSettings +from tests.factories.base import BaseFactory -from app.models.message_setting import MessageSettings, db - -class MessageSettingsFactory(factory.alchemy.SQLAlchemyModelFactory): +class MessageSettingsFactory(BaseFactory): class Meta: model = MessageSettings - sqlalchemy_session = db.session action = "After Event" mail_status = True diff --git a/tests/factories/microlocation.py b/tests/factories/microlocation.py index 2a36830485..8b918c0008 100644 --- a/tests/factories/microlocation.py +++ b/tests/factories/microlocation.py @@ -1,14 +1,14 @@ import factory import tests.factories.common as common +from app.models.microlocation import Microlocation +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic -from app.models.microlocation import Microlocation, db -class MicrolocationFactoryBase(factory.alchemy.SQLAlchemyModelFactory): +class MicrolocationFactoryBase(BaseFactory): class Meta: model = Microlocation - sqlalchemy_session = db.session name = common.string_ latitude = common.float_ diff --git a/tests/factories/module.py b/tests/factories/module.py index 0c91a602f4..8ab1344ee8 100644 --- a/tests/factories/module.py +++ b/tests/factories/module.py @@ -1,12 +1,10 @@ -import factory +from app.models.module import Module +from tests.factories.base import BaseFactory -from app.models.module import Module, db - -class ModuleFactory(factory.alchemy.SQLAlchemyModelFactory): +class ModuleFactory(BaseFactory): class Meta: model = Module - sqlalchemy_session = db.session donation_include = True ticket_include = True diff --git a/tests/factories/notification.py b/tests/factories/notification.py index 267dfc5cc6..e149ab263a 100644 --- a/tests/factories/notification.py +++ b/tests/factories/notification.py @@ -1,14 +1,14 @@ import factory import tests.factories.common as common +from app.models.notification import Notification +from tests.factories.base import BaseFactory from tests.factories.user import UserFactory -from app.models.notification import Notification, db -class NotificationFactory(factory.alchemy.SQLAlchemyModelFactory): +class NotificationFactory(BaseFactory): class Meta: model = Notification - sqlalchemy_session = db.session user = factory.RelatedFactory(UserFactory) title = common.string_ diff --git a/tests/factories/notification_action.py b/tests/factories/notification_action.py index aba3ae2499..a8d3f030ba 100644 --- a/tests/factories/notification_action.py +++ b/tests/factories/notification_action.py @@ -1,14 +1,11 @@ -import factory - -import tests.factories.common as common import app.models.notification as notification -from app.models import db +import tests.factories.common as common +from tests.factories.base import BaseFactory -class NotificationActionFactory(factory.alchemy.SQLAlchemyModelFactory): +class NotificationActionFactory(BaseFactory): class Meta: model = notification.NotificationAction - sqlalchemy_session = db.session subject = ('event',) link = (common.url_,) diff --git a/tests/factories/order.py b/tests/factories/order.py index 9a537b2539..90d1f3c812 100644 --- a/tests/factories/order.py +++ b/tests/factories/order.py @@ -1,14 +1,13 @@ import factory +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic from app.models.order import Order -from app.models.ticket import db -class OrderFactory(factory.alchemy.SQLAlchemyModelFactory): +class OrderFactory(BaseFactory): class Meta: model = Order - sqlalchemy_session = db.session event = factory.RelatedFactory(EventFactoryBasic) event_id = 1 diff --git a/tests/factories/page.py b/tests/factories/page.py index 1d44c5ac84..c12a99cf07 100644 --- a/tests/factories/page.py +++ b/tests/factories/page.py @@ -1,13 +1,11 @@ -import factory - import tests.factories.common as common -from app.models.page import Page, db +from app.models.page import Page +from tests.factories.base import BaseFactory -class PageFactory(factory.alchemy.SQLAlchemyModelFactory): +class PageFactory(BaseFactory): class Meta: model = Page - sqlalchemy_session = db.session name = common.string_ title = common.string_ diff --git a/tests/factories/panel_permission.py b/tests/factories/panel_permission.py index e3e6f67fae..455646ba18 100644 --- a/tests/factories/panel_permission.py +++ b/tests/factories/panel_permission.py @@ -1,13 +1,11 @@ -import factory - import tests.factories.common as common -from app.models.panel_permission import PanelPermission, db +from app.models.panel_permission import PanelPermission +from tests.factories.base import BaseFactory -class PanelPermissionFactory(factory.alchemy.SQLAlchemyModelFactory): +class PanelPermissionFactory(BaseFactory): class Meta: model = PanelPermission - sqlalchemy_session = db.session panel_name = common.string_ can_access = True diff --git a/tests/factories/role.py b/tests/factories/role.py index f151208ead..8608e5d48d 100644 --- a/tests/factories/role.py +++ b/tests/factories/role.py @@ -1,14 +1,12 @@ -import factory - import tests.factories.common as common -from app.models.role import Role, db +from app.models.role import Role from app.models.user import ORGANIZER +from tests.factories.base import BaseFactory -class RoleFactory(factory.alchemy.SQLAlchemyModelFactory): +class RoleFactory(BaseFactory): class Meta: model = Role - sqlalchemy_session = db.session name = ORGANIZER title_name = common.string_ diff --git a/tests/factories/role_invite.py b/tests/factories/role_invite.py index f9f17216d4..7e79b06ba2 100644 --- a/tests/factories/role_invite.py +++ b/tests/factories/role_invite.py @@ -1,15 +1,15 @@ import factory import tests.factories.common as common +from app.models.role_invite import RoleInvite +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic from tests.factories.role import RoleFactory -from app.models.role_invite import RoleInvite, db -class RoleInviteFactory(factory.alchemy.SQLAlchemyModelFactory): +class RoleInviteFactory(BaseFactory): class Meta: model = RoleInvite - sqlalchemy_session = db.session event = factory.RelatedFactory(EventFactoryBasic) role = factory.RelatedFactory(RoleFactory) diff --git a/tests/factories/service.py b/tests/factories/service.py index b3e831c8cf..46f97dcf1a 100644 --- a/tests/factories/service.py +++ b/tests/factories/service.py @@ -1,12 +1,10 @@ -import factory - import tests.factories.common as common -from app.models.service import Service, db +from app.models.service import Service +from tests.factories.base import BaseFactory -class ServiceFactory(factory.alchemy.SQLAlchemyModelFactory): +class ServiceFactory(BaseFactory): class Meta: model = Service - sqlalchemy_session = db.session name = common.string_ diff --git a/tests/factories/session.py b/tests/factories/session.py index 7ceb6cf7aa..b47928b90b 100644 --- a/tests/factories/session.py +++ b/tests/factories/session.py @@ -1,17 +1,17 @@ import factory import tests.factories.common as common +from app.models.session import Session +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic from tests.factories.microlocation import MicrolocationFactory from tests.factories.session_type import SessionTypeFactory from tests.factories.track import TrackFactory -from app.models.session import Session, db -class SessionFactoryBase(factory.alchemy.SQLAlchemyModelFactory): +class SessionFactoryBase(BaseFactory): class Meta: model = Session - sqlalchemy_session = db.session title = common.string_ subtitle = common.string_ diff --git a/tests/factories/session_type.py b/tests/factories/session_type.py index 6352173570..707dcdb894 100644 --- a/tests/factories/session_type.py +++ b/tests/factories/session_type.py @@ -1,14 +1,14 @@ import factory import tests.factories.common as common +from app.models.session_type import SessionType +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic -from app.models.session_type import SessionType, db -class SessionTypeFactory(factory.alchemy.SQLAlchemyModelFactory): +class SessionTypeFactory(BaseFactory): class Meta: model = SessionType - sqlalchemy_session = db.session event = factory.RelatedFactory(EventFactoryBasic) name = common.string_ diff --git a/tests/factories/setting.py b/tests/factories/setting.py index 330c220dfa..7598b0576a 100644 --- a/tests/factories/setting.py +++ b/tests/factories/setting.py @@ -1,13 +1,11 @@ -import factory - import tests.factories.common as common -from app.models.setting import Setting, db +from app.models.setting import Setting +from tests.factories.base import BaseFactory -class SettingFactory(factory.alchemy.SQLAlchemyModelFactory): +class SettingFactory(BaseFactory): class Meta: model = Setting - sqlalchemy_session = db.session app_environment = common.environment_ # Name of the application. (Eg. Event Yay!, Open Event) diff --git a/tests/factories/social_link.py b/tests/factories/social_link.py index b737953179..368ebd254d 100644 --- a/tests/factories/social_link.py +++ b/tests/factories/social_link.py @@ -1,14 +1,14 @@ import factory import tests.factories.common as common +from app.models.social_link import SocialLink +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic -from app.models.social_link import SocialLink, db -class SocialLinkFactory(factory.alchemy.SQLAlchemyModelFactory): +class SocialLinkFactory(BaseFactory): class Meta: model = SocialLink - sqlalchemy_session = db.session event = factory.RelatedFactory(EventFactoryBasic) name = common.string_ diff --git a/tests/factories/speaker.py b/tests/factories/speaker.py index c16b63dbae..ee4e3d6d0f 100644 --- a/tests/factories/speaker.py +++ b/tests/factories/speaker.py @@ -1,16 +1,16 @@ import factory import tests.factories.common as common +from app.models.speaker import Speaker +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic from tests.factories.session import SessionFactory from tests.factories.user import UserFactory -from app.models.speaker import Speaker, db -class SpeakerFactoryBase(factory.alchemy.SQLAlchemyModelFactory): +class SpeakerFactoryBase(BaseFactory): class Meta: model = Speaker - sqlalchemy_session = db.session name = common.string_ email = common.email_ diff --git a/tests/factories/speakers_call.py b/tests/factories/speakers_call.py index ea55a39c24..18d2015f82 100644 --- a/tests/factories/speakers_call.py +++ b/tests/factories/speakers_call.py @@ -1,14 +1,14 @@ import factory import tests.factories.common as common +from app.models.speakers_call import SpeakersCall +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic -from app.models.speakers_call import SpeakersCall, db -class SpeakersCallFactory(factory.alchemy.SQLAlchemyModelFactory): +class SpeakersCallFactory(BaseFactory): class Meta: model = SpeakersCall - sqlalchemy_session = db.session event = factory.RelatedFactory(EventFactoryBasic) announcement = common.string_ diff --git a/tests/factories/sponsor.py b/tests/factories/sponsor.py index 638145823e..87a31c5ace 100644 --- a/tests/factories/sponsor.py +++ b/tests/factories/sponsor.py @@ -1,14 +1,14 @@ import factory import tests.factories.common as common +from app.models.sponsor import Sponsor +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic -from app.models.sponsor import Sponsor, db -class SponsorFactory(factory.alchemy.SQLAlchemyModelFactory): +class SponsorFactory(BaseFactory): class Meta: model = Sponsor - sqlalchemy_session = db.session event = factory.RelatedFactory(EventFactoryBasic) name = common.string_ diff --git a/tests/factories/stripe_authorization.py b/tests/factories/stripe_authorization.py index 1e7647dbd9..032c687503 100644 --- a/tests/factories/stripe_authorization.py +++ b/tests/factories/stripe_authorization.py @@ -1,15 +1,14 @@ import factory import tests.factories.common as common -from tests.factories.event import EventFactoryBasic -from app.models import db from app.models.stripe_authorization import StripeAuthorization +from tests.factories.base import BaseFactory +from tests.factories.event import EventFactoryBasic -class StripeAuthorizationFactory(factory.alchemy.SQLAlchemyModelFactory): +class StripeAuthorizationFactory(BaseFactory): class Meta: model = StripeAuthorization - sqlalchemy_session = db.session event = factory.RelatedFactory(EventFactoryBasic) stripe_secret_key = common.string_ diff --git a/tests/factories/tax.py b/tests/factories/tax.py index 6382c26de8..1300f90fae 100644 --- a/tests/factories/tax.py +++ b/tests/factories/tax.py @@ -1,14 +1,14 @@ import factory import tests.factories.common as common +from app.models.tax import Tax +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic -from app.models.tax import Tax, db -class TaxFactory(factory.alchemy.SQLAlchemyModelFactory): +class TaxFactory(BaseFactory): class Meta: model = Tax - sqlalchemy_session = db.session event = factory.RelatedFactory(EventFactoryBasic) country = common.country_ diff --git a/tests/factories/ticket.py b/tests/factories/ticket.py index c200dcf559..7bc1e63530 100644 --- a/tests/factories/ticket.py +++ b/tests/factories/ticket.py @@ -1,14 +1,14 @@ import factory import tests.factories.common as common +from app.models.ticket import Ticket +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic -from app.models.ticket import Ticket, db -class TicketFactory(factory.alchemy.SQLAlchemyModelFactory): +class TicketFactory(BaseFactory): class Meta: model = Ticket - sqlalchemy_session = db.session event = factory.RelatedFactory(EventFactoryBasic) name = common.string_ diff --git a/tests/factories/ticket_fee.py b/tests/factories/ticket_fee.py index 3bd1f29797..a68f5d40c8 100644 --- a/tests/factories/ticket_fee.py +++ b/tests/factories/ticket_fee.py @@ -2,12 +2,12 @@ import tests.factories.common as common from app.models.ticket_fee import TicketFees, db +from tests.factories.base import BaseFactory -class TicketFeesFactory(factory.alchemy.SQLAlchemyModelFactory): +class TicketFeesFactory(BaseFactory): class Meta: model = TicketFees - sqlalchemy_session = db.session currency = common.currency_ service_fee = common.fee_ diff --git a/tests/factories/ticket_tag.py b/tests/factories/ticket_tag.py index 14a652fdf0..30bb91b876 100644 --- a/tests/factories/ticket_tag.py +++ b/tests/factories/ticket_tag.py @@ -1,15 +1,15 @@ import factory import tests.factories.common as common +from app.models.ticket import TicketTag +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic from tests.factories.ticket import TicketFactory -from app.models.ticket import TicketTag, db -class TicketTagFactory(factory.alchemy.SQLAlchemyModelFactory): +class TicketTagFactory(BaseFactory): class Meta: model = TicketTag - sqlalchemy_session = db.session tickets = factory.RelatedFactory(TicketFactory) event = factory.RelatedFactory(EventFactoryBasic) diff --git a/tests/factories/track.py b/tests/factories/track.py index 4625a984f4..93f8652965 100644 --- a/tests/factories/track.py +++ b/tests/factories/track.py @@ -1,14 +1,14 @@ import factory import tests.factories.common as common +from app.models.track import Track +from tests.factories.base import BaseFactory from tests.factories.event import EventFactoryBasic -from app.models.track import Track, db -class TrackFactory(factory.alchemy.SQLAlchemyModelFactory): +class TrackFactory(BaseFactory): class Meta: model = Track - sqlalchemy_session = db.session event = factory.RelatedFactory(EventFactoryBasic) event_id = 1 diff --git a/tests/factories/user.py b/tests/factories/user.py index 57c751d80a..bb079f77b2 100644 --- a/tests/factories/user.py +++ b/tests/factories/user.py @@ -1,13 +1,11 @@ -import factory - import tests.factories.common as common -from app.models.user import User, db +from app.models.user import User +from tests.factories.base import BaseFactory -class UserFactory(factory.alchemy.SQLAlchemyModelFactory): +class UserFactory(BaseFactory): class Meta: model = User - sqlalchemy_session = db.session email = common.email_ password = 'password' diff --git a/tests/factories/user_email.py b/tests/factories/user_email.py index 4181ba8950..db5db8020f 100644 --- a/tests/factories/user_email.py +++ b/tests/factories/user_email.py @@ -1,14 +1,14 @@ import factory import tests.factories.common as common +from app.models.user_email import UserEmail +from tests.factories.base import BaseFactory from tests.factories.user import UserFactory -from app.models.user_email import UserEmail, db -class UserEmailFactory(factory.alchemy.SQLAlchemyModelFactory): +class UserEmailFactory(BaseFactory): class Meta: model = UserEmail - sqlalchemy_session = db.session user = factory.RelatedFactory(UserFactory) user_id = 1 diff --git a/tests/factories/user_favourite_events.py b/tests/factories/user_favourite_events.py index 22b29b20eb..5c1739be90 100644 --- a/tests/factories/user_favourite_events.py +++ b/tests/factories/user_favourite_events.py @@ -1,14 +1,14 @@ import factory -from tests.factories.event import EventFactoryBasic from app.models.user import User -from app.models.user_favourite_event import UserFavouriteEvent, db +from app.models.user_favourite_event import UserFavouriteEvent +from tests.factories.base import BaseFactory +from tests.factories.event import EventFactoryBasic -class UserFavouriteEventFactory(factory.alchemy.SQLAlchemyModelFactory): +class UserFavouriteEventFactory(BaseFactory): class Meta: model = UserFavouriteEvent - sqlalchemy_session = db.session user = factory.LazyAttribute(lambda a: User.query.first()) event = factory.SubFactory(EventFactoryBasic) diff --git a/tests/factories/user_permission.py b/tests/factories/user_permission.py index 9f42028536..afa0b9d324 100644 --- a/tests/factories/user_permission.py +++ b/tests/factories/user_permission.py @@ -1,13 +1,11 @@ -import factory - import tests.factories.common as common -from app.models.user_permission import UserPermission, db +from app.models.user_permission import UserPermission +from tests.factories.base import BaseFactory -class UserPermissionFactory(factory.alchemy.SQLAlchemyModelFactory): +class UserPermissionFactory(BaseFactory): class Meta: model = UserPermission - sqlalchemy_session = db.session name = common.string_ description = common.string_ diff --git a/tests/factories/user_token_blacklist.py b/tests/factories/user_token_blacklist.py index 3afb69aabf..b3aed50b77 100644 --- a/tests/factories/user_token_blacklist.py +++ b/tests/factories/user_token_blacklist.py @@ -1,11 +1,9 @@ -import factory +from app.models.user_token_blacklist import UserTokenBlackListTime +from tests.factories.base import BaseFactory -from app.models.user_token_blacklist import UserTokenBlackListTime, db - -class UserTokenBlacklistFactory(factory.alchemy.SQLAlchemyModelFactory): +class UserTokenBlacklistFactory(BaseFactory): class Meta: model = UserTokenBlackListTime - sqlalchemy_session = db.session user_id = 1