"""Tests for connectors.""" import pytest from owsrequest.constants import environment from owsrequest.utils.dynamodb_client import dynamodb_opts def test_dynamodb_opts_default(): """Test that default opts are correct.""" assert dynamodb_opts({}) == {'region_name': 'us-east-1'} def test_dynamodb_opts_ignores_empty_dev_url(): """Test that if endpoint_url is empty, use regular settings.""" assert dynamodb_opts({ environment.DEV_DYNAMO_ENDPOINT_URL: '', environment.DEV_DYNAMO_ACCESS_KEY_ID: 'keyId', environment.DEV_DYNAMO_SECRET_ACCESS_KEY: 'accessKey' }) == {'region_name': 'us-east-1'} def test_dynamodb_opts_with_dynamodblocal_defaults_region(): """Test that if env vars are set, dynamodb opts are set properly.""" assert dynamodb_opts({ environment.DEV_DYNAMO_ENDPOINT_URL: 'http://example.com', environment.DEV_DYNAMO_ACCESS_KEY_ID: 'keyId', environment.DEV_DYNAMO_SECRET_ACCESS_KEY: 'accessKey' }) == { 'aws_access_key_id': 'keyId', 'aws_secret_access_key': 'accessKey', 'endpoint_url': 'http://example.com', 'region_name': 'us-east-1' } def test_dynamodb_opts_without_credentials_blows_up(): """Test for error if only endpoint url is specified without creds.""" with pytest.raises(KeyError): dynamodb_opts({ environment.DEV_DYNAMO_ENDPOINT_URL: 'http://example.com' }) def test_dynamodb_opts_with_all_dynamodblocal_env_vars(): """Test that if env vars are set, dynamodb opts are set properly.""" assert dynamodb_opts({ environment.DEV_DYNAMO_ENDPOINT_URL: 'http://example.com', environment.DEV_DYNAMO_ACCESS_KEY_ID: 'keyId', environment.DEV_DYNAMO_SECRET_ACCESS_KEY: 'accessKey', environment.DEV_DYNAMO_REGION: 'us-west-1' }) == { 'aws_access_key_id': 'keyId', 'aws_secret_access_key': 'accessKey', 'endpoint_url': 'http://example.com', 'region_name': 'us-west-1' }