from unittest.mock import Mock import pytest from slz_appreciationengine_scrapper.dsp.appreciationengine.log_response import ( log_response, request_params_to_string, ) from slz_appreciationengine_scrapper.entities import Job @pytest.mark.parametrize( 'initial_params, expected', [ ( { 'end_date': '2021-11-05 00:00:00', 'limit': '40000,1000', 'start_date': '2021-11-04 23:18:42' }, 'end_date_eq_20211105T000000_limit_eq_40000_1000_start_date_eq_20211104T231842' ), ( { 'limit': '0,1000', 'query_extended': 'extended.lastUpdated >= 2021-11-08 03:15:01 and extended.lastUpdated <= 2021-11-08 05:15:01' }, 'limit_eq_0_1000_query_extended_eq_extended_lastUpdated__ge__20211108T031501' '_and_extended_lastUpdated__le__20211108T051501' ), ({}, ''), (None, ''), ({ 'after': 123 }, 'after_eq_123') ] ) def test_format_params(initial_params, expected, logger_test): actual = request_params_to_string(logger_test, initial_params) assert actual == expected def test_log_error_handle_exc(logger_test): result = log_response( logger=logger_test, response=Mock(), job=Job.empty(), request_params=['123'], # wrong structure here dest_bucket='123' ) assert result is None