def init_db(): """ Make the tables. This is called only from create_db.py, which is run during setup. Previously we allowed this to run everytime on startup, which broke some alembic revisions by creating new tables before a migration was run. From now on, we should ony be creating tables+columns via SQLalchemy *once* and all subscequent changes done via migration scripts. """ from inbox.server.models.tables.base import register_backends table_mod_for = register_backends() Base.metadata.create_all(engine) return table_mod_for
def init_db(): """ Make the tables. This is called only from create_db.py, which is run during setup. Previously we allowed this to run everytime on startup, which broke some alembic revisions by creating new tables before a migration was run. From now on, we should ony be creating tables+columns via SQLalchemy *once* and all subscequent changes done via migration scripts. """ from inbox.server.models.tables.base import register_backends table_mod_for = register_backends() Base.metadata.create_all(engine) return table_mod_for
import logging from inbox.server.log import get_logger inbox_logger = get_logger(purpose='api') # Override default werkzeug before it starts up werkzeug_log = logging.getLogger('werkzeug') for handler in werkzeug_log.handlers: werkzeug_log.removeHandler(handler) werkzeug_log.addHandler(inbox_logger) from flask import Flask, request from inbox.server.models.tables.base import register_backends, Namespace table_mod_for = register_backends() from inbox.server.models import session_scope from inbox.server.models.kellogs import jsonify from ns_api import app as ns_api app = Flask(__name__) app.register_blueprint(ns_api) # /n/<namespace_id>/... # Set flask logger as ours for handler in app.logger.handlers: app.logger.removeHandler(handler) app.logger.addHandler(inbox_logger) @app.before_request def auth():
import pytest import datetime from tests.util.base import config config() from inbox.server.mailsync.hooks import default_hook_manager from inbox.server.models.tables.base import Contact, Message, register_backends register_backends() ACCOUNT_ID = 1 @pytest.fixture def message(): received_date = datetime.datetime.utcfromtimestamp(10**9 + 1) return Message(from_addr=('Some Dude', '*****@*****.**'), to_addr=(('Somebody Else', '*****@*****.**'),), cc_addr=(('A Bystander', '*****@*****.**'),), bcc_addr=(('The NSA', '*****@*****.**'),), received_date=received_date) @pytest.fixture def gmail_message(): received_date = datetime.datetime.utcfromtimestamp(10**9 + 1) return Message(to_addr=((u'Somebody ', u'*****@*****.**'), (u'The same person', u'*****@*****.**')), received_date=received_date) def test_canonicalization(config, gmail_message, db):
from inbox.server.log import get_logger inbox_logger = get_logger(purpose="api") # Override default werkzeug before it starts up werkzeug_log = logging.getLogger("werkzeug") for handler in werkzeug_log.handlers: werkzeug_log.removeHandler(handler) werkzeug_log.addHandler(inbox_logger) from flask import Flask, request from inbox.server.models.tables.base import register_backends, Namespace table_mod_for = register_backends() from inbox.server.models import session_scope from inbox.server.models.kellogs import jsonify from ns_api import app as ns_api app = Flask(__name__) app.register_blueprint(ns_api) # /n/<namespace_id>/... # Set flask logger as ours for handler in app.logger.handlers: app.logger.removeHandler(handler) app.logger.addHandler(inbox_logger) @app.before_request
import pytest import datetime import calendar from tests.data.messages.message import (subject, delivered_to, sender, to_addr, from_addr, received_date) from tests.util.base import config config() from inbox.server.models.tables.base import register_backends, Lens register_backends() NAMESPACE_ID = 1 def test_lens_db_filter(db): filter = Lens(namespace_id=NAMESPACE_ID, subject=subject) assert filter.message_query(db.session).count() == 1 assert filter.thread_query(db.session).count() == 1 filter = Lens(namespace_id=NAMESPACE_ID, any_email=delivered_to) assert filter.message_query(db.session).count() > 1 assert filter.thread_query(db.session).count() > 1 filter = Lens(namespace_id=NAMESPACE_ID, any_email=sender) assert filter.message_query(db.session).count() == 1 assert filter.thread_query(db.session).count() == 1 early_time = received_date - datetime.timedelta(hours=1) late_time = received_date + datetime.timedelta(hours=1) early_ts = calendar.timegm(early_time.utctimetuple())