import pytest from db_schema.schemas.apps import UnitOfWorkPriorityEnum from apps_etl_manager.utils import get_reprocessing_payload, update_dbx_spark_params @pytest.mark.parametrize(['priority', 'expected_priority'], [ (UnitOfWorkPriorityEnum.PRIORITY_4, UnitOfWorkPriorityEnum.PRIORITY_4), (UnitOfWorkPriorityEnum.DEFAULT, UnitOfWorkPriorityEnum.DEFAULT), (UnitOfWorkPriorityEnum.HIGHEST, UnitOfWorkPriorityEnum.HIGHEST), (4, UnitOfWorkPriorityEnum.PRIORITY_4), ]) def test_get_reprocessing_payload__parse_priority_ok(priority, expected_priority): event = { 'initialize': False, 'time': '2020-08-31T00:00:20Z', 'reprocessing': [{ 'unit_of_work_id': 532, 'priority': priority, }] } result = get_reprocessing_payload(event) assert len(result) == 1 result_item = result[0] assert result_item.priority == expected_priority def test_get_reprocessing_payload__parse_priority_missed_ok(): event = { 'initialize': False, 'time': '2020-08-31T00:00:20Z', 'reprocessing': [{ 'unit_of_work_id': 532, }] } result = get_reprocessing_payload(event) assert len(result) == 1 result_item = result[0] assert result_item.priority is None @pytest.mark.parametrize('priority', [-1, 0, 'foo', '5', 11]) def test_get_reprocessing_payload__parse_priority_failed(priority): event = { 'initialize': False, 'time': '2020-08-31T00:00:20Z', 'reprocessing': [{ 'unit_of_work_id': 532, 'priority': priority, }] } with pytest.raises(ValueError): get_reprocessing_payload(event) @pytest.mark.parametrize( ['override', 'expected_result'], [( True, ['foo', 'bar', '--driver-java-options', '-DOption1=1 -DOption2=2', 'baz'], ), ( False, ['foo', 'bar', '--driver-java-options', '-Dfoobar=1 -DOption1=1 -DOption2=2', 'baz'], )] ) # yapf: disable def test_update_dbx_spark_params__with_driver_java_options(override, expected_result): initial_params = ['foo', 'bar', '--driver-java-options', '-Dfoobar=1', 'baz'] driver_options = ['-DOption1=1', '-DOption2=2'] actual_result = update_dbx_spark_params(initial_params, driver_options, override) assert actual_result == expected_result @pytest.mark.parametrize( ['override', 'expected_result'], [( True, ['foo', 'bar', '--driver-java-options', '-DOption1=1 -DOption2=2', 'foobar', 'baz'], ), ( False, ['foo', 'bar', '--driver-java-options', '-DOption1=1 -DOption2=2', 'foobar', 'baz'], )] ) # yapf: disable def test_update_dbx_spark_params__without_driver_java_options(override, expected_result): initial_params = ['foo', 'bar', 'foobar', 'baz'] driver_options = ['-DOption1=1', '-DOption2=2'] actual_result = update_dbx_spark_params(initial_params, driver_options, override) assert actual_result == expected_result