2013-10-01 03:54:12 +00:00
|
|
|
import logging
|
2014-01-30 18:32:06 +00:00
|
|
|
import logstash_formatter
|
2014-02-18 23:09:14 +00:00
|
|
|
import requests
|
2014-03-05 19:35:11 +00:00
|
|
|
import os.path
|
2013-10-01 03:54:12 +00:00
|
|
|
|
2013-09-30 23:10:27 +00:00
|
|
|
from peewee import MySQLDatabase, SqliteDatabase
|
2014-02-04 00:08:37 +00:00
|
|
|
from data.buildlogs import BuildLogs
|
2014-02-07 01:58:26 +00:00
|
|
|
from data.userevent import UserEventBuilder
|
2013-11-07 04:21:12 +00:00
|
|
|
|
|
|
|
from test import analytics as fake_analytics
|
2014-02-11 00:12:43 +00:00
|
|
|
from test.testlogs import TestBuildLogs
|
2013-09-30 23:10:27 +00:00
|
|
|
|
2013-10-01 03:54:12 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
def build_requests_session():
|
|
|
|
sess = requests.Session()
|
|
|
|
adapter = requests.adapters.HTTPAdapter(pool_connections=100,
|
|
|
|
pool_maxsize=100)
|
|
|
|
sess.mount('http://', adapter)
|
|
|
|
sess.mount('https://', adapter)
|
|
|
|
return sess
|
2014-02-18 23:09:14 +00:00
|
|
|
|
2014-01-27 22:46:21 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
def logs_init_builder(level=logging.DEBUG,
|
|
|
|
formatter=logstash_formatter.LogstashFormatter()):
|
|
|
|
@staticmethod
|
|
|
|
def init_logs():
|
|
|
|
handler = logging.StreamHandler()
|
|
|
|
root_logger = logging.getLogger('')
|
|
|
|
root_logger.setLevel(level)
|
|
|
|
handler.setFormatter(formatter)
|
|
|
|
root_logger.addHandler(handler)
|
2014-01-27 22:46:21 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
return init_logs
|
2013-09-27 23:29:01 +00:00
|
|
|
|
2013-09-28 00:03:07 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
class DefaultConfig(object):
|
|
|
|
# Flask config
|
|
|
|
SECRET_KEY = 'a36c9d7d-25a9-4d3f-a586-3d2f8dc40a83'
|
|
|
|
JSONIFY_PRETTYPRINT_REGULAR = False
|
|
|
|
SESSION_COOKIE_SECURE = False
|
2014-02-16 23:59:24 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
LOGGING_CONFIG = logs_init_builder(formatter=logging.Formatter())
|
|
|
|
SEND_FILE_MAX_AGE_DEFAULT = 0
|
|
|
|
POPULATE_DB_TEST_DATA = True
|
|
|
|
PREFERRED_URL_SCHEME = 'http'
|
|
|
|
SERVER_NAME = 'localhost:5000'
|
2014-02-16 23:59:24 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
# Mail config
|
|
|
|
MAIL_SERVER = ''
|
|
|
|
MAIL_USE_TLS = True
|
|
|
|
MAIL_PORT = 587
|
|
|
|
MAIL_USERNAME = ''
|
|
|
|
MAIL_PASSWORD = ''
|
|
|
|
DEFAULT_MAIL_SENDER = ''
|
|
|
|
MAIL_FAIL_SILENTLY = False
|
|
|
|
TESTING = True
|
2014-02-16 23:59:24 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
# DB config
|
2013-10-18 20:36:11 +00:00
|
|
|
DB_NAME = 'test/data/test.db'
|
2013-09-30 23:10:27 +00:00
|
|
|
DB_CONNECTION_ARGS = {
|
2014-03-06 19:47:02 +00:00
|
|
|
'threadlocals': True,
|
|
|
|
'autorollback': True,
|
2013-09-30 23:10:27 +00:00
|
|
|
}
|
|
|
|
DB_DRIVER = SqliteDatabase
|
|
|
|
|
2014-02-16 23:59:24 +00:00
|
|
|
@staticmethod
|
|
|
|
def create_transaction(db):
|
2014-04-03 21:31:46 +00:00
|
|
|
return db.transaction()
|
2014-02-16 23:59:24 +00:00
|
|
|
|
|
|
|
DB_TRANSACTION_FACTORY = create_transaction
|
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
# Data storage
|
|
|
|
STORAGE_TYPE = 'LocalStorage'
|
|
|
|
STORAGE_PATH = 'test/data/registry'
|
2013-11-07 04:21:12 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
# Build logs
|
|
|
|
BUILDLOGS = BuildLogs('logs.quay.io') # Change me
|
2013-11-07 04:21:12 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
# Real-time user events
|
2014-02-07 01:58:26 +00:00
|
|
|
USER_EVENTS = UserEventBuilder('logs.quay.io')
|
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
# Stripe config
|
|
|
|
STRIPE_SECRET_KEY = 'sk_test_PEbmJCYrLXPW0VRLSnWUiZ7Y' # remove me
|
|
|
|
STRIPE_PUBLISHABLE_KEY = 'pk_test_uEDHANKm9CHCvVa2DLcipGRh' # remove me
|
2014-02-07 01:58:26 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
# Userfiles
|
|
|
|
USERFILES_TYPE = 'LocalUserfiles'
|
|
|
|
USERFILES_PATH = 'test/data/userfiles'
|
2013-10-02 04:48:03 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
# Analytics
|
2013-11-07 04:21:12 +00:00
|
|
|
ANALYTICS = fake_analytics
|
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
# Github Config
|
2013-10-10 03:00:34 +00:00
|
|
|
GITHUB_TOKEN_URL = 'https://github.com/login/oauth/access_token'
|
|
|
|
GITHUB_USER_URL = 'https://api.github.com/user'
|
|
|
|
GITHUB_USER_EMAILS = GITHUB_USER_URL + '/emails'
|
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
GITHUB_CLIENT_ID = 'cfbc4aca88e5c1b40679' # remove
|
|
|
|
GITHUB_CLIENT_SECRET = '7d1cc21e17e10cd8168410e2cd1e4561cb854ff9' # remove me
|
2013-10-10 03:00:34 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
# Requests based HTTP client with a large request pool
|
2014-02-18 23:09:14 +00:00
|
|
|
HTTPCLIENT = build_requests_session()
|
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
# Status tag config
|
2014-03-05 19:35:11 +00:00
|
|
|
STATUS_TAGS = {}
|
|
|
|
for tag_name in ['building', 'failed', 'none', 'ready']:
|
|
|
|
tag_path = os.path.join('buildstatus', tag_name + '.svg')
|
|
|
|
with open(tag_path) as tag_svg:
|
|
|
|
STATUS_TAGS[tag_name] = tag_svg.read()
|
|
|
|
|
|
|
|
|
2014-04-03 22:47:17 +00:00
|
|
|
FEATURE_BILLING = False
|
|
|
|
|
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
class FakeTransaction(object):
|
|
|
|
def __enter__(self):
|
|
|
|
return self
|
2013-11-07 04:21:12 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
def __exit__(self, exc_type, value, traceback):
|
|
|
|
pass
|
2013-11-07 04:21:12 +00:00
|
|
|
|
2013-09-30 23:10:27 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
class TestConfig(DefaultConfig):
|
|
|
|
TESTING = True
|
2013-09-30 23:10:27 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
DB_NAME = ':memory:'
|
|
|
|
DB_CONNECTION_ARGS = {}
|
2013-10-01 21:23:29 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
@staticmethod
|
|
|
|
def create_transaction(db):
|
|
|
|
return FakeTransaction()
|
2013-10-01 21:23:29 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
DB_TRANSACTION_FACTORY = create_transaction
|
2014-03-05 00:40:29 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
STORAGE_TYPE = 'FakeStorage'
|
2014-03-05 00:40:29 +00:00
|
|
|
|
2014-04-03 21:31:46 +00:00
|
|
|
BUILDLOGS = TestBuildLogs('logs.quay.io', 'devtable', 'building',
|
|
|
|
'deadbeef-dead-beef-dead-beefdeadbeef')
|
|
|
|
|
|
|
|
USERFILES_TYPE = 'FakeUserfiles'
|