"""Test mark_video_product_as_approved.""" import pytest from video.constants import job_io_fields from video.logic.activities import ( mark_video_product_as_approved as activity) from video.models import ows_video @pytest.mark.parametrize(( 'test_description', 'mocked_get_job_response', 'expected_user_id', ), [ ( 'Product is approved from OA', {'context': {'user_id': 'oa:3174'}}, 'oa:3174', ), ( 'Product is auto approved from workstation', {'context': {'user_id': 'alw:3174'}}, 'oa:2204', ), ( 'edge case where user_id is not there in job context', {'context': {'product_id': 1}}, 'oa:2204', ), ]) def test_mark_video_product_as_approved( mocker, test_description, mocked_get_job_response, expected_user_id): """Test mark_video_product_as_approved.""" mocker.patch.object(ows_video, 'get_product_metadata', return_value={ 'isrc': 'test_isrc', 'upc': 123, }, autospec=True) mocker.patch.object( ows_video, 'get_job', return_value=mocked_get_job_response, autospec=True ) mocker.patch.object(ows_video, 'set_product_status', autospec=True) activity.mark_video_product_as_approved({ job_io_fields.MARK_VIDEO_PRODUCT_AS_APPROVED_JOB_ID: 123, job_io_fields.PRODUCT_ID: 1, job_io_fields.WORKFLOW_JOB_ID: 123, }) ows_video.set_product_status.assert_called_once_with( 1, 123, 'test_isrc', expected_user_id )