import os from datetime import datetime, timedelta from tempfile import NamedTemporaryFile from config import DefaultConfig class FakeTransaction(object): def __enter__(self): return self def __exit__(self, exc_type, value, traceback): pass TEST_DB_FILE = NamedTemporaryFile(delete=True) class TestConfig(DefaultConfig): TESTING = True SECRET_KEY = 'a36c9d7d-25a9-4d3f-a586-3d2f8dc40a83' BILLING_TYPE = 'FakeStripe' TEST_DB_FILE = TEST_DB_FILE DB_URI = os.environ.get('TEST_DATABASE_URI', 'sqlite:///{0}'.format(TEST_DB_FILE.name)) DB_CONNECTION_ARGS = { 'threadlocals': True, 'autorollback': True, } @staticmethod def create_transaction(db): return FakeTransaction() DB_TRANSACTION_FACTORY = create_transaction DISTRIBUTED_STORAGE_CONFIG = {'local_us': ['FakeStorage', {}], 'local_eu': ['FakeStorage', {}]} DISTRIBUTED_STORAGE_PREFERENCE = ['local_us'] BUILDLOGS_MODULE_AND_CLASS = ('test.testlogs', 'testlogs.TestBuildLogs') BUILDLOGS_OPTIONS = ['devtable', 'building', 'deadbeef-dead-beef-dead-beefdeadbeef', False] USERFILES_LOCATION = 'local_us' FEATURE_SUPER_USERS = True FEATURE_BILLING = True FEATURE_MAILING = True SUPER_USERS = ['devtable'] LICENSE_USER_LIMIT = 500 LICENSE_EXPIRATION = datetime.now() + timedelta(weeks=520) LICENSE_EXPIRATION_WARNING = datetime.now() + timedelta(weeks=520) FEATURE_GITHUB_BUILD = True FEATURE_BITTORRENT = True FEATURE_ACI_CONVERSION = True CLOUDWATCH_NAMESPACE = None FEATURE_SECURITY_SCANNER = True FEATURE_SECURITY_NOTIFICATIONS = True SECURITY_SCANNER_ENDPOINT = 'http://fakesecurityscanner/' SECURITY_SCANNER_API_VERSION = 'v1' SECURITY_SCANNER_ENGINE_VERSION_TARGET = 1 SECURITY_SCANNER_API_TIMEOUT_SECONDS = 1 FEATURE_SIGNING = True SIGNING_ENGINE = 'gpg2' GPG2_PRIVATE_KEY_NAME = 'EEB32221' GPG2_PRIVATE_KEY_FILENAME = 'test/data/signing-private.gpg' GPG2_PUBLIC_KEY_FILENAME = 'test/data/signing-public.gpg' INSTANCE_SERVICE_KEY_KID_LOCATION = 'test/data/test.kid' INSTANCE_SERVICE_KEY_LOCATION = 'test/data/test.pem' PROMETHEUS_AGGREGATOR_URL = None GITHUB_LOGIN_CONFIG = {} GOOGLE_LOGIN_CONFIG = {} FEATURE_GITHUB_LOGIN = True FEATURE_GOOGLE_LOGIN = True TESTOIDC_LOGIN_CONFIG = { 'CLIENT_ID': 'foo', 'CLIENT_SECRET': 'bar', 'OIDC_SERVER': 'http://fakeoidc', 'DEBUGGING': True, 'LOGIN_BINDING_FIELD': 'sub', } RECAPTCHA_SITE_KEY = 'somekey' RECAPTCHA_SECRET_KEY = 'somesecretkey' FEATURE_APP_REGISTRY = True FEATURE_TEAM_SYNCING = True FEATURE_CHANGE_TAG_EXPIRATION = True TAG_EXPIRATION_OPTIONS = ['0s', '1s', '1d', '1w', '2w', '4w'] DEFAULT_NAMESPACE_MAXIMUM_BUILD_COUNT = None DATA_MODEL_CACHE_CONFIG = { 'engine': 'inmemory', }