コード例 #1
0
def test_manually_request_configuration():
    """Manually specify a configuration.

    Ensure that bad or unknown configurations will throw an
    InvalidConfigurationError.
    """

    # bad configuration
    with pytest.raises(InvalidConfigurationError):
        ConfigurationFactory.get_config(config_type="UNDEFINED")

    # good configuration
    configuration = ConfigurationFactory.get_config(config_type="TEST")
    assert hasattr(configuration, "POSTGRES_PORT")
    assert hasattr(configuration, "POSTGRES_HOSTNAME")
def test_load_configuration_from_env_for_storage_manager():
    """Ensure that a configuration object can be pulled from the environment
    and has the default configs."""

    configuration = ConfigurationFactory.get_config("TEST")
    assert hasattr(configuration, "SCHEMA_STORAGE_TYPE")
    assert hasattr(configuration, "DEFAULT_LOCAL_GENERATION_PAYLOAD_PATH")
    assert hasattr(configuration, "AWS_S3_REGION")
    assert hasattr(configuration, "AWS_S3_STORAGE_BUCKET_NAME")
    assert hasattr(configuration, "AWS_S3_STORAGE_OBJECT_NAME")
コード例 #3
0
def test_load_configuration_from_env():
    """Load a configuration from the configuration factory.

    Ensure that a configuration object can be pulled from the
    environment.
    """

    configuration = ConfigurationFactory.from_env()
    assert hasattr(configuration, "POSTGRES_PORT")
    assert hasattr(configuration, "POSTGRES_HOSTNAME")
def base_s3_test_configs():
    configs = ConfigurationFactory.get_config("TEST")

    # set random value to pass check.
    configs.SCHEMA_STORAGE_TYPE = "S3"
    configs.AWS_S3_REGION = "test-region"
    configs.AWS_ACCESS_KEY_ID = "test-key"
    configs.AWS_SECRET_ACCESS_KEY = "test-access"
    configs.AWS_S3_STORAGE_BUCKET_NAME = "my-bucket-name"
    configs.AWS_S3_STORAGE_OBJECT_NAME = "my-object-name"

    return configs
コード例 #5
0
def get_static_folder_from_app():
    static_folder = ConfigurationFactory.from_env().STATIC_FOLDER
    return static_folder
コード例 #6
0
from data_resource.config import ConfigurationFactory
from data_resource.generator.api_manager import generate_api
from data_resource.generator.model_manager import create_models
from data_resource.shared_utils.log_factory import LogFactory
from data_resource.storage.storage_manager import StorageManager
from data_resource.shared_utils.validator import validate_data_resource_schema
import json
import os
from data_resource.shared_utils.api_exceptions import ApiError

logger = LogFactory.get_console_logger("generator:app")

storage = StorageManager(ConfigurationFactory.from_env())


def get_static_folder_from_app():
    static_folder = ConfigurationFactory.from_env().STATIC_FOLDER
    return static_folder


def save_swagger(swagger):
    static_folder = get_static_folder_from_app()
    swagger_file = os.path.join(static_folder, "static/swagger.json")

    logger.info(swagger_file)
    with open(swagger_file, "w") as _file:
        _file.write(json.dumps(swagger))


def start_data_resource_generator(generation_payload,
                                  api,
def test_s3_manager_config_check_failure():
    """Ensure that the s3 manager will throw a RuntimeError when AWS configs
    not found."""
    with pytest.raises(RuntimeError):
        _ = S3Manager(ConfigurationFactory.get_config("TEST"))
コード例 #8
0
"""Database and ORM Fixtures."""

from sqlalchemy import create_engine, MetaData
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import scoped_session, sessionmaker
from data_resource.config import ConfigurationFactory
from data_resource.shared_utils.log_factory import LogFactory

logger = LogFactory.get_console_logger("database")

data_resource_config = ConfigurationFactory.from_env()

logger.info(
    f"Connecting to DB at '{data_resource_config.SQLALCHEMY_DATABASE_URI}'...")

engine = create_engine(
    data_resource_config.SQLALCHEMY_DATABASE_URI, pool_size=40,
    max_overflow=0)  # FIXME test suite maxes the pool size out for some reason

from sqlalchemy.schema import CreateSchema  # noqa: E402

if not engine.dialect.has_schema(engine, "admin"):
    engine.execute(CreateSchema("admin"))

db_session = scoped_session(
    sessionmaker(autocommit=False, autoflush=False, bind=engine))

admin_base = declarative_base(metadata=MetaData(bind=engine, schema="admin"))
コード例 #9
0
def _check_auth():
    """Raises authlib error if not authorized."""
    if not ConfigurationFactory.from_env().SKIP_AUTH_CHECK:
        # provider.validate_token()
        token_required(provider)(lambda: None)()
コード例 #10
0
"""This is copy and pasted from the
generator.api_manager.core.versioned_resource code.

This allows the application to ignore auth if its running in test mode.
"""
from data_resource.shared_utils.log_factory import LogFactory
from data_resource.config import ConfigurationFactory
from brighthive_authlib import token_required
import functools

logger = LogFactory.get_console_logger("admin:authchecker")
provider = ConfigurationFactory.from_env().get_oauth2_provider()


def _check_auth():
    """Raises authlib error if not authorized."""
    if not ConfigurationFactory.from_env().SKIP_AUTH_CHECK:
        # provider.validate_token()
        token_required(provider)(lambda: None)()


def check_auth(func):
    @functools.wraps(func)
    def check_auth_wrapper(*args, **kwargs):
        _check_auth()
        return func(*args, **kwargs)

    return check_auth_wrapper