コード例 #1
0
ファイル: test_config.py プロジェクト: lkolacek/iib
def test_validate_celery_config_request_logs_dir_misconfigured(tmpdir, file_type, access, error):
    iib_request_logs_dir = tmpdir.join('logs')

    if file_type == 'file':
        iib_request_logs_dir.write('')
    elif file_type == 'dir':
        iib_request_logs_dir.mkdir()
    elif file_type is None:
        # Skip creating the file or directory altogether
        pass
    else:
        raise ValueError(f'Bad file_type {file_type}')

    if not access:
        if os.getuid() == 0:
            pytest.skip('Cannot restrict the root user from writing to any file')
        iib_request_logs_dir.chmod(mode=0o555)

    conf = {
        'iib_api_url': 'http://localhost:8080/api/v1/',
        'iib_organization_customizations': {},
        'iib_request_logs_dir': iib_request_logs_dir,
        'iib_registry': 'registry',
        'iib_required_labels': {},
    }
    error = error.format(logs_dir=iib_request_logs_dir)
    with pytest.raises(ConfigError, match=error):
        validate_celery_config(conf)
コード例 #2
0
def test_validate_celery_config():
    validate_celery_config({
        'iib_api_url': 'http://localhost:8080/api/v1/',
        'iib_organization_customizations': {},
        'iib_registry': 'registry',
        'iib_required_labels': {},
    })
コード例 #3
0
ファイル: test_config.py プロジェクト: lkolacek/iib
def test_validate_celery_config_iib_required_labels_not_dict():
    conf = {
        'iib_api_url': 'http://localhost:8080/api/v1/',
        'iib_registry': 'registry',
        'iib_required_labels': 123,
    }
    with pytest.raises(ConfigError, match='iib_required_labels must be a dictionary'):
        validate_celery_config(conf)
コード例 #4
0
ファイル: test_config.py プロジェクト: lkolacek/iib
def test_validate_celery_config_failure(missing_key):
    conf = {
        'iib_api_url': 'http://localhost:8080/api/v1/',
        'iib_registry': 'registry',
    }
    conf.pop(missing_key)
    with pytest.raises(ConfigError, match=f'{missing_key} must be set'):
        validate_celery_config(conf)
コード例 #5
0
ファイル: test_config.py プロジェクト: lkolacek/iib
def test_validate_celery_config_invalid_organization_customizations(config, error):
    conf = {
        'iib_api_url': 'http://localhost:8080/api/v1/',
        'iib_organization_customizations': config,
        'iib_registry': 'registry',
        'iib_required_labels': {},
    }
    with pytest.raises(ConfigError, match=error):
        validate_celery_config(conf)
コード例 #6
0
def test_validate_celery_config_invalid_s3_env_vars():
    conf = {
        'iib_api_url': 'http://localhost:8080/api/v1/',
        'iib_registry': 'registry',
        'iib_required_labels': {},
        'iib_organization_customizations': {},
        'iib_aws_s3_bucket_name': 'bucket',
        'iib_request_logs_dir': 'some-dir',
        'iib_request_related_bundles_dir': 'some-other-dir',
    }
    error = (
        '"AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY" and "AWS_DEFAULT_REGION" '
        'environment variables must be set to valid strings when'
        '"iib_aws_s3_bucket_name" is set. '
        'These are used for read/write access to the s3 bucket by IIB')
    with pytest.raises(ConfigError, match=error):
        validate_celery_config(conf)