Пример #1
0
 def _prepare_message_updates_repo(self, conf):
     # This repo used to talk to the message updater microservice,
     # which just changes statuses in the message lake
     repo_conf = env_queue_config('MCHR_MESSAGE_UPDATES_REPO',
                                  use_default=False)
     if not repo_conf:
         repo_conf = env_queue_config('BCH_MESSAGE_UPDATES')
     if conf:
         repo_conf.update(conf)
     self.message_updates_repo = MessageUpdatesRepo(repo_conf)
Пример #2
0
class Config(object):
    """Base configuration."""
    DEBUG = env_bool('IGL_DEBUG', default=True)
    TESTING = env_bool('IGL_TESTING', default=True)

    MESSAGE_LAKE_CONN = env_s3_config('MSGAPI_MESSAGE_LAKE')

    BC_INBOX_CONF = env_queue_config('MSG_RX_API_BC_INBOX')

    PUBLISH_NOTIFICATIONS_REPO_CONN = env_queue_config(
        'MSG_RX_API_OUTBOX_REPO')
Пример #3
0
 def _prepare_channel_pending_message_repo(self, conf):
     channel_pending_message_repo_conf = env_queue_config(
         'PROC_BCH_CHANNEL_PENDING_MESSAGE')
     if conf:
         channel_pending_message_repo_conf.update(conf)
     self.channel_pending_message_repo = ChannelPendingMessageRepo(
         channel_pending_message_repo_conf)
Пример #4
0
 def _prepare_delivery_outbox_repo(self, conf):
     delivery_outbox_repo_conf = env_queue_config(
         'PROC_DELIVERY_OUTBOX_REPO')
     if conf:
         delivery_outbox_repo_conf.update(conf)
     self.delivery_outbox_repo = DeliveryOutboxRepo(
         delivery_outbox_repo_conf)
Пример #5
0
 def _prepare_rejected_messages_repo(self, config=None):
     rejected_messages_repo_conf = env_queue_config(
         'PROC_REJECTED_MESSAGES_REPO')
     if config:
         rejected_messages_repo_conf.update(config)
     self.rejected_messages_repo = RejectedMessagesRepo(
         rejected_messages_repo_conf)
Пример #6
0
 def _prepare_repos_confs(self):
     self.repo_conf = {
         'object_lake': env_s3_config('PROC_OBJ_SPIDER_OBJ_LAKE'),
         'object_retrieval':
         env_queue_config('PROC_OBJ_SPIDER_OBJ_RETRIEVAL'),
         'object_acl': env_s3_config('PROC_OBJ_SPIDER_OBJ_ACL'),
     }
Пример #7
0
def test():
    s3 = env_s3_config('TEST')
    queue = env_queue_config('TEST')
    postgres = env_postgres_config('TEST')
    assert s3['bucket'] == 'test-bucket-1'
    assert queue['queue_name'] == 'test-queue-1'
    assert postgres['dbname'] == 'postgres_test'

    s3 = env_s3_config('TEST_1')
    queue = env_queue_config('TEST_1')
    assert s3['bucket'] == 'test-bucket-1'
    assert queue['queue_name'] == 'test-queue-1'

    s3 = env_s3_config('TEST_2')
    queue = env_queue_config('TEST_2')
    assert s3['bucket'] == 'test-bucket-2'
    assert queue['queue_name'] == 'test-queue-2'
Пример #8
0
def test_complex():

    assert igl_value('default_sqs', 'qname') == 'IGL_DEFAULT_SQS_QNAME'
    assert igl_value('default_s3', 'bucket') == 'IGL_DEFAULT_S3_BUCKET'
    assert igl_value('default_postgres',
                     'dbname') == 'IGL_DEFAULT_POSTGRES_DBNAME'

    for key, value in TEST_ENV.items():
        assert os.environ.get(key) == value

    default_s3_conf = conf.env_s3_config(TEST_NON_EXISTING_CONF_NAME)
    default_sqs_conf = conf.env_queue_config(TEST_NON_EXISTING_CONF_NAME)
    default_postgres_conf = conf.env_postgres_config(
        TEST_NON_EXISTING_CONF_NAME)

    assert to_str_dict(default_s3_conf) == TEST_S3_DEFAULT_CONF
    assert to_str_dict(default_sqs_conf) == TEST_SQS_DEFAULT_CONF
    assert to_str_dict(default_postgres_conf) == TEST_POSTGRES_DEFAULT_CONF

    # bool values
    assert isinstance(default_s3_conf['use_ssl'], bool)
    assert isinstance(default_sqs_conf['use_ssl'], bool)

    # nullable values
    del os.environ['IGL_DEFAULT_SQS_QNAME']
    del os.environ['IGL_DEFAULT_S3_BUCKET']
    del os.environ['IGL_DEFAULT_POSTGRES_DBNAME']

    default_s3_conf = conf.env_s3_config(TEST_NON_EXISTING_CONF_NAME)
    default_sqs_conf = conf.env_queue_config(TEST_NON_EXISTING_CONF_NAME)
    default_postgres_conf = conf.env_postgres_config(
        TEST_NON_EXISTING_CONF_NAME)

    assert default_s3_conf['bucket'] is None
    assert default_sqs_conf['queue_name'] is None
    assert default_postgres_conf['dbname'] is None

    # testing fully custom configs
    custom_s3_conf = conf.env_s3_config(CUSTOM_S3_CONF_NAME)
    custom_sqs_conf = conf.env_queue_config(CUSTOM_SQS_CONF_NAME)
    custom_postgres_conf = conf.env_postgres_config(CUSTOM_POSTGRES_CONF_NAME)

    assert custom_s3_conf == CUSTOM_S3_CONF, os.environ
    assert custom_sqs_conf == CUSTOM_SQS_CONF, os.environ
    assert custom_postgres_conf == CUSTOM_POSTGRES_CONF, os.environ
Пример #9
0
 def _prepare_repos_confs(self,
                          rejected_message_repo_conf=None,
                          message_lake_repo_conf=None):
     self.rejected_messages_repo_conf = env_queue_config(
         'PROC_REJECTED_MESSAGES_REPO')
     self.message_lake_repo_conf = env_s3_config('PROC_MESSAGE_LAKE_REPO')
     if message_lake_repo_conf:
         self.message_lake_repo_conf.update(message_lake_repo_conf)
     if rejected_message_repo_conf:
         self.rejected_messages_repo_conf.update(rejected_message_repo_conf)
Пример #10
0
 def _prepare_object_retrieval_repo(self, conf):
     object_retrieval_repo_conf = env_queue_config('PROC_OBJ_RETR_REPO')
     if conf:
         object_retrieval_repo_conf.update(conf)
     self.object_retrieval_repo = ObjectRetrievalRepo(object_retrieval_repo_conf)
Пример #11
0
class Config(object):
    """Base configuration."""
    DEBUG = env_bool('IGL_DEBUG', default=True)
    TESTING = env_bool('IGL_TESTING', default=True)

    BC_INBOX_CONF = env_queue_config('MSG_RX_API_BC_INBOX')
Пример #12
0
                                                             Message)
from tests.unit.domain.wire_protocols.test_generic_message import (
    _generate_msg_dict)

MESSAGES_DATA = [
    ('AU', 'aaaa'),
    ('US', 'bbbb'),
    ('DE', 'cccc'),
    ('FR', 'dddd'),
    ('GB', 'eeee'),
    ('UA', 'ffff'),
]

# required to not share repos with running workers
MESSAGE_LAKE_REPO_CONF = env_s3_config('TEST')
REJECTED_MESSAGES_REPO_CONF = env_queue_config('TEST')


def test(docker_setup):

    message_lake_repo = MessageLakeRepo(MESSAGE_LAKE_REPO_CONF)
    rejected_message_repo = RejectedMessagesRepo(REJECTED_MESSAGES_REPO_CONF)

    # ensuring that repos are empty
    message_lake_repo._unsafe_clear_for_test()
    rejected_message_repo._unsafe_clear_for_test()

    updater = RejectedStatusUpdater(
        rejected_message_repo_conf=REJECTED_MESSAGES_REPO_CONF,
        message_lake_repo_conf=MESSAGE_LAKE_REPO_CONF)
Пример #13
0
from intergov.conf import env_s3_config, env_queue_config
from intergov.repos.delivery_outbox import DeliveryOutboxRepo
from intergov.repos.notifications import NotificationsRepo
from intergov.repos.subscriptions import SubscriptionsRepo
from intergov.processors.callbacks_spreader import CallbacksSpreaderProcessor
from tests.unit.domain.wire_protocols.test_generic_message import (
    _generate_msg_object)

DELIVERY_OUTBOX_REPO_CONF = env_queue_config('TEST_1')
NOTIFICATIONS_REPO_CONF = env_queue_config('TEST_2')
SUBSCRIPTIONS_REPO_CONF = env_s3_config('TEST')

CALLBACK_URL = "http://dummy-test-helper-server:5001/response/200/{}"

DEFAULT_EXPIRATION = 3600 * 2

# predicates dont have common prefixes
SUBSCRIPTIONS = {
    'aaa.bbb.ccc.ddd': 2,
    'eee.fff.jjj': 3,
    'hhh.iii': 4,
    'ggg': 1
}

SUBSCRIPTIONS_WITH_COMMON_PREFIXES = {
    'ooo': {
        'ooo.aaa.bbb': 2,
        'ooo.aaa': 3,
    },
    'zzz': {
        'zzz.aaa.bbb': 5,
Пример #14
0
from intergov.conf import env_s3_config, env_queue_config, env_postgres_config, env
from intergov.processors.message_processor import InboundMessageProcessor
from intergov.repos.api_outbox import ApiOutboxRepo
from intergov.repos.bc_inbox.elasticmq.elasticmqrepo import BCInboxRepo
from intergov.repos.message_lake import MessageLakeRepo
from intergov.repos.notifications import NotificationsRepo
from intergov.repos.object_acl import ObjectACLRepo
from intergov.repos.object_retrieval import ObjectRetrievalRepo
from tests.unit.domain.wire_protocols.test_generic_message import (
    _generate_msg_object)

MESSAGE_LAKE_REPO_CONF = env_s3_config('TEST_1')
OBJECT_ACL_REPO_CONF = env_s3_config('TEST_2')

BC_INBOX_REPO_CONF = env_queue_config('TEST_1')
OBJECT_RETRIEVAL_REPO_CONF = env_queue_config('TEST_2')
NOTIFICATIONS_REPO_CONF = env_queue_config('TEST_3')

BLOCKCHAIN_OUTBOX_REPO_CONF = env_postgres_config('TEST')

OUR_JRD = env("IGL_COUNTRY", default="AU")


def test():
    # creating testing versions of all required repos
    message_lake_repo = MessageLakeRepo(MESSAGE_LAKE_REPO_CONF)
    object_acl_repo = ObjectACLRepo(OBJECT_ACL_REPO_CONF)

    bc_inbox_repo = BCInboxRepo(BC_INBOX_REPO_CONF)
    object_retrieval_repo = ObjectRetrievalRepo(OBJECT_RETRIEVAL_REPO_CONF)
    notifications_repo = NotificationsRepo(NOTIFICATIONS_REPO_CONF)
Пример #15
0
 def _prepare_message_updates_repo(self, conf):
     message_updates_repo_conf = env_queue_config('BCH_MESSAGE_UPDATES')
     if conf:
         message_updates_repo_conf.update(conf)
     self.message_updates_repo = MessageUpdatesRepo(
         message_updates_repo_conf)
Пример #16
0
 def _prepare_notifications_repo(self, conf):
     notifications_repo_conf = env_queue_config('PROC_OBJ_OUTBOX_REPO')
     if conf:
         notifications_repo_conf.update(conf)
     self.notifications_repo = NotificationsRepo(notifications_repo_conf)
Пример #17
0
 def _prepare_bc_inbox_repo(self, conf):
     bc_inbox_repo_conf = env_queue_config('PROC_BC_INBOX')
     if conf:
         bc_inbox_repo_conf.update(conf)
     self.bc_inbox_repo = BCInboxRepo(bc_inbox_repo_conf)
Пример #18
0
from unittest import mock

from intergov.conf import env_queue_config
# from intergov.domain.wire_protocols.generic_discrete import (
#     Message
# )
from intergov.processors.callback_deliver import CallbacksDeliveryProcessor
from intergov.use_cases import DeliverCallbackUseCase
from intergov.repos.delivery_outbox import DeliveryOutboxRepo
from tests.unit.domain.wire_protocols.test_generic_message import (
    _generate_msg_dict
)

DELIVERY_OUTBOX_REPO_CONF = env_queue_config('TEST')

POST_SUCCESS_URL = "http://dummy-test-helper-server:5001/response/200/success"

POST_ERROR_URL = "http://dummy-test-helper-server:5001/response/500/internal-error"


def _generate_job(url, payload=None):
    if not payload:
        payload = _generate_msg_dict()
    return {
        's': url,
        'payload': payload
    }


def _test_retries(processor, max_attempts):
    retries = 0