async def test_get_clients():
    """
    Метаданные клиента
    """
    result = await get_all_clients()
    with open('z_get_jsonb_all_client_metadata.json', 'w', encoding='utf-8') as fb:
        jsd(result, fb, ensure_ascii=False, indent=4)
async def test_get_metadata():
    """
    Получение метаданных из кликхауса
    """

    out_tables = await get_ycl_metadata()
    with open('z_send_get_meta_ycl.json', 'w', encoding='utf-8') as fb:
        jsd(out_tables, fb, ensure_ascii=False, indent=4)
async def test_processing_delete():
    """
    Тестирование удаления витрины данных
    """
    with open(TEST_DEL_FILE, 'r', encoding='utf-8') as file:
        input_data = jsl(fp=file)

    result = await smart_delete_showcases(json_data=input_data)
    with open('z_send_delete_showcase.json', 'w', encoding='utf-8') as fb:
        jsd(result, fb, ensure_ascii=False, indent=4)
async def test_processing_post_create():
    """
    Тестирование создания/обновления клиентов
    """
    with open(TEST_POST_FILE, 'r', encoding='utf-8') as file:
        input_data = jsl(fp=file)

    result = await smart_create_client(json_data=input_data)
    with open('z_send_insert_showcase.json', 'w', encoding='utf-8') as fb:
        jsd(result, fb, ensure_ascii=False, indent=4)
async def test_processing_post_create():
    """
    Тестирование создания словаря
    """
    with open(TEST_POST_FILE, 'r', encoding='utf-8') as file:
        input_data = jsl(fp=file)

    result = await bridge_smart_create_dictionaries(data_json=input_data)
    with open('z_send_insert_dict.json', 'w', encoding='utf-8') as fb:
        jsd(result, fb, ensure_ascii=False, indent=4)
Beispiel #6
0
async def test_processing_delete():
    """
    Тестирование удаления словаря
    """

    with open(TEST_DEL_FILE, 'r', encoding='utf-8') as file:
        input_data = jsl(fp=file)

    result = await bridge_smart_delete_dictionaries(json_data=input_data)
    with open('z_send_delete_dict.json', 'w', encoding='utf-8') as fb:
        jsd(result, fb, ensure_ascii=False, indent=4)
Beispiel #7
0
    def _put_validation_and_transform(self,
                                      key,
                                      value,
                                      topic=None,
                                      callback=None,
                                      partition=None):
        """
        Для разных алгоритмов вставки - формирует словарь аргументов вставки
        """

        if topic is None and self.one_topic_name is None:
            raise AttributeError('NEED TOPIC NAME!')

        if topic is None:
            topic = self.one_topic_name

        dict_args = {
            'topic': str(topic),
            'value': jsd(value),
        }

        if key:
            dict_args['key']: str(key)

        if callback:
            dict_args['callback'] = callback

        if partition:
            # Прямое задание позиции

            dict_args['partition'] = partition
        else:
            # Смещение позиции равномерно

            top_name = dict_args['topic']
            topic_parts = self.topic_parts.get(top_name)
            if topic_parts:

                current_position = self.topic_part_itr[top_name]

                if key:
                    # Партиция нужна если есть ключ
                    dict_args['partition'] = topic_parts[current_position]

                current_position += 1
                if current_position >= len(topic_parts):
                    current_position = 0

                self.topic_part_itr[top_name] = current_position

        return dict_args
async def get_meta():
    in_data = [
        {
            "ip":
            "192.168.46.229",
            "port":
            9000,
            "type_db":
            "ycl",
            "data_bases": [{
                "user": "******",
                "pswd": "",
                "name": "mercury",
                "tables": ""
            }],
            "name":
            "clickhouse"
        },
        # {
        #     "ip": "localhost",
        #     "port": 5432,
        #     "type_db": "psql",
        #     "data_bases": [
        #         {
        #             "user": "******",
        #             "pswd": "__test_app_core",
        #             "name": "__test_app_core",
        #             "tables": ""
        #         }
        #     ],
        #     "name": "postgres"
        # }
    ]

    report = await process_metadata(json_in=in_data)

    with open('z_get_meta.json', 'w', encoding='utf-8') as fb:
        jsd(report, fb, ensure_ascii=False, indent=4)
Beispiel #9
0
    async def wrapper(*args, **kwargs):
        msg = ''
        status = True
        result = []
        try:
            result = await func(*args, **kwargs)
        except Exception as exp:
            status = False
            msg = str(exp)

        if isinstance(result, str):
            data_str = f'{{"status":{jsd(status)}, "errors":{jsd([msg])}, "response": {result}}}'
        else:
            data_out = {'status': status, 'errors': [msg], 'response': result}
            data_str = jsd(data_out,
                           indent=4,
                           ensure_ascii=False,
                           cls=EncoderHelper)

        return Response(content=data_str, media_type='application/json')
Beispiel #10
0
"""
Черновик
"""
from json import dump as jsd, load as jsl, dumps as str_jsd
from pathlib import Path

DEFAULT_JSON_METADATA_PATH = Path().cwd() / Path(
    '../documents/front_back_interaction/json_sdmx_ex2.json')

with open(DEFAULT_JSON_METADATA_PATH, 'r') as fobj:
    data_settings_json = jsl(fobj)

print(data_settings_json)

with open(DEFAULT_JSON_METADATA_PATH, 'w') as fobj:
    jsd(data_settings_json, fobj, indent=4)