Skip to content

Commit

Permalink
Merge pull request #108 from cloudblue/feature/LITE-28563-Update-task…
Browse files Browse the repository at this point in the history
…s-creation-on-DR-creation

LITE-28563: Removing ppr_validation and adding product_update to task…
  • Loading branch information
Hairash authored Sep 20, 2023
2 parents 9ac115a + 68db293 commit b8f9326
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 37 deletions.
2 changes: 1 addition & 1 deletion connect_ext_ppr/models/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class TasksStatusChoices(str, enum.Enum):


class TaskTypesChoices(str, enum.Enum):
ppr_validation = 'ppr_validation'
product_setup = 'product_setup'
apply_and_delegate = 'apply_ppr_and_delegate_to_marketplace'
delegate_to_l2 = 'delegate_to_l2'

Expand Down
4 changes: 2 additions & 2 deletions connect_ext_ppr/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -338,8 +338,8 @@ def add_new_deployment_request(db, dr_data, deployment, account_id, logger):
tasks = []
tasks.append(Task(
deployment_request_id=deployment_request.id,
title='PPR Validation',
type=Task.TYPES.ppr_validation,
title='Product check up and update',
type=Task.TYPES.product_setup,
created_by=account_id,
))
tasks.append(Task(
Expand Down
6 changes: 1 addition & 5 deletions connect_ext_ppr/tasks_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,10 +135,6 @@ def prepare_ppr_file_for_task(
raise TaskException(f'Error while processing PPR file: {e}')


def validate_ppr(deployment_request, **kwargs):
return True


def check_and_update_product(deployment_request, cbc_service, **kwargs):
if not deployment_request.manually:

Expand Down Expand Up @@ -194,7 +190,7 @@ def delegate_to_l2(deployment_request, cbc_service, connect_client, **kwargs):


TASK_PER_TYPE = {
TaskTypesChoices.ppr_validation: validate_ppr,
TaskTypesChoices.product_setup: check_and_update_product,
TaskTypesChoices.apply_and_delegate: apply_ppr_and_delegate_to_marketplaces,
TaskTypesChoices.delegate_to_l2: delegate_to_l2,
}
Expand Down
6 changes: 3 additions & 3 deletions tests/api/test_deployment_requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -534,7 +534,7 @@ def test_create_deployment_request(
tasks = dbsession.query(Task).order_by(Task.id)
assert tasks.count() == 3
assert tasks[0].id == f'TSK-{deployment_request.id[5:]}-000'
assert tasks[0].type == Task.TYPES.ppr_validation
assert tasks[0].type == Task.TYPES.product_setup
assert tasks[1].id == f'TSK-{deployment_request.id[5:]}-001'
assert tasks[1].type == Task.TYPES.apply_and_delegate
assert tasks[2].id == f'TSK-{deployment_request.id[5:]}-002'
Expand Down Expand Up @@ -610,7 +610,7 @@ def test_create_deployment_request_without_delegation_to_l2(
tasks = dbsession.query(Task).order_by(Task.id)
assert tasks.count() == 2
assert tasks[0].id == f'TSK-{deployment_request.id[5:]}-000'
assert tasks[0].type == Task.TYPES.ppr_validation
assert tasks[0].type == Task.TYPES.product_setup
assert tasks[1].id == f'TSK-{deployment_request.id[5:]}-001'
assert tasks[1].type == Task.TYPES.apply_and_delegate

Expand Down Expand Up @@ -1321,7 +1321,7 @@ def test_retry_deployment_request_ok(
deployment_request=dr1,
status='error',
error_message='An Error!.',
type=Task.TYPES.ppr_validation,
type=Task.TYPES.product_setup,
started_at=started_at,
finished_at=finished_at,
)
Expand Down
2 changes: 1 addition & 1 deletion tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -1152,7 +1152,7 @@ def configuration_json():
def mock_tasks(mocker):
mocker.patch(
'connect_ext_ppr.tasks_manager.TASK_PER_TYPE', return_value={
TaskTypesChoices.ppr_validation: lambda: True,
TaskTypesChoices.product_setup: lambda: True,
TaskTypesChoices.apply_and_delegate: lambda: True,
TaskTypesChoices.delegate_to_l2: lambda: True,
},
Expand Down
49 changes: 24 additions & 25 deletions tests/test_tasks_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
delegate_to_l2,
main_process,
TaskException,
validate_ppr,
)
from connect_ext_ppr.services.cbc_hub import CBCService

Expand All @@ -36,10 +35,6 @@ def test_apply_ppr_and_delegate_to_marketplaces(deployment_request_factory):
assert apply_ppr_and_delegate_to_marketplaces(deployment_request_factory())


def test_validate_ppr(deployment_request_factory):
assert validate_ppr(deployment_request_factory())


def test__send_ppr(parse_ppr_success_response, sample_ppr_file, mocker):
cbc_service = mocker.Mock()
cbc_service.parse_ppr.return_value = parse_ppr_success_response
Expand Down Expand Up @@ -194,8 +189,6 @@ def test_check_and_update_product_w_errors_in_update_product(
def test_delegate_to_l2(
mock___init__,
connect_client,
product_details,
update_product_response,
deployment_request_factory,
mocker,
):
Expand Down Expand Up @@ -252,8 +245,6 @@ def send_ppr_side_effect(*args):
def test_delegate_to_l2_manually(
mock___init__,
connect_client,
product_details,
update_product_response,
deployment_request_factory,
mocker,
):
Expand Down Expand Up @@ -289,8 +280,6 @@ def test_delegate_to_l2_manually(
def test_delegate_to_l2_processing_error(
mock___init__,
connect_client,
product_details,
update_product_response,
deployment_request_factory,
mocker,
):
Expand Down Expand Up @@ -332,9 +321,11 @@ def test_delegate_to_l2_processing_error(
assert check_cbc_task_status_mock.call_count == 0


@patch.object(CBCService, 'get_product_details')
@patch.object(CBCService, '__init__', return_value=None)
def test_main_process(
mock___init__,
_,
mock_get_product_details,
dbsession,
deployment_factory,
deployment_request_factory,
Expand All @@ -343,18 +334,18 @@ def test_main_process(
connect_client,
mock_tasks,
mocker,
product_details,
):
mock_get_product_details.return_value = product_details
dep = deployment_factory()
ppr = ppr_version_factory(id='PPR-123', product_version=1, deployment=dep)
dr = deployment_request_factory(deployment=dep, delegate_l2=True, ppr=ppr)
task_factory(deployment_request=dr, task_index='0001', type=TaskTypesChoices.ppr_validation)
task_factory(deployment_request=dr, task_index='0001', type=TaskTypesChoices.product_setup)
task_factory(deployment_request=dr, task_index='0002', type=TaskTypesChoices.apply_and_delegate)
task_factory(deployment_request=dr, task_index='0003', type=TaskTypesChoices.delegate_to_l2)

with mocker.patch(
'connect_ext_ppr.tasks_manager._get_cbc_service', return_value=CBCService(),
):
assert main_process(dr.id, {}, connect_client) == DeploymentRequestStatusChoices.done
mocker.patch('connect_ext_ppr.tasks_manager._get_cbc_service', return_value=CBCService())
assert main_process(dr.id, {}, connect_client) == DeploymentRequestStatusChoices.done

assert dbsession.query(Deployment).filter_by(status=DeploymentStatusChoices.synced).count() == 1
assert dbsession.query(DeploymentRequest).filter_by(
Expand All @@ -367,9 +358,11 @@ def test_main_process(
).count() == 3


@patch.object(CBCService, 'get_product_details')
@patch.object(CBCService, '__init__', return_value=None)
def test_main_process_wo_l2_delegation(
_,
mock_get_product_details,
dbsession,
deployment_factory,
deployment_request_factory,
Expand All @@ -378,11 +371,13 @@ def test_main_process_wo_l2_delegation(
connect_client,
mock_tasks,
mocker,
product_details,
):
mock_get_product_details.return_value = product_details
dep = deployment_factory()
ppr = ppr_version_factory(id='PPR-123', product_version=1, deployment=dep)
dr = deployment_request_factory(deployment=dep, delegate_l2=False, ppr=ppr)
task_factory(deployment_request=dr, task_index='0001', type=TaskTypesChoices.ppr_validation)
task_factory(deployment_request=dr, task_index='0001', type=TaskTypesChoices.product_setup)
task_factory(deployment_request=dr, task_index='0002', type=TaskTypesChoices.apply_and_delegate)

mocker.patch('connect_ext_ppr.tasks_manager._get_cbc_service', return_value=CBCService())
Expand All @@ -401,9 +396,11 @@ def test_main_process_wo_l2_delegation(
).count() == 2


@patch.object(CBCService, 'get_product_details')
@patch.object(CBCService, '__init__', return_value=None)
def test_main_process_deployment_w_new_ppr_version(
_,
mock_get_product_details,
dbsession,
file_factory,
deployment_factory,
Expand All @@ -413,14 +410,16 @@ def test_main_process_deployment_w_new_ppr_version(
connect_client,
mock_tasks,
mocker,
product_details,
):
mock_get_product_details.return_value = product_details
ppr_file = file_factory(id='MFL-123')
dep = deployment_factory()
dr_ppr = ppr_version_factory(
id='PPR-1234', file=ppr_file.id, product_version=1, deployment=dep)
ppr_version_factory(id='PPR-123', product_version=2, deployment=dep)
dr = deployment_request_factory(deployment=dep, delegate_l2=False, ppr=dr_ppr)
task_factory(deployment_request=dr, task_index='0001', type=TaskTypesChoices.ppr_validation)
task_factory(deployment_request=dr, task_index='0001', type=TaskTypesChoices.product_setup)
task_factory(deployment_request=dr, task_index='0002', type=TaskTypesChoices.apply_and_delegate)
task_factory(deployment_request=dr, task_index='0003', type=TaskTypesChoices.delegate_to_l2)

Expand All @@ -444,7 +443,7 @@ def test_main_process_deployment_w_new_ppr_version(
@pytest.mark.parametrize(
('type_function_to_mock', 'done_tasks', 'tasks_w_errors', 'pending_tasks'),
(
(TaskTypesChoices.ppr_validation, 0, 1, 2),
(TaskTypesChoices.product_setup, 0, 1, 2),
(TaskTypesChoices.apply_and_delegate, 1, 1, 1),
(TaskTypesChoices.delegate_to_l2, 2, 1, 0),
),
Expand All @@ -467,7 +466,7 @@ def test_main_process_ends_w_error(
dep = deployment_factory()
ppr = ppr_version_factory(id='PPR-123', product_version=1, deployment=dep, version=1)
dr = deployment_request_factory(deployment=dep, delegate_l2=True, ppr=ppr)
task_factory(deployment_request=dr, task_index='0001', type=TaskTypesChoices.ppr_validation)
task_factory(deployment_request=dr, task_index='0001', type=TaskTypesChoices.product_setup)
task_factory(deployment_request=dr, task_index='0002', type=TaskTypesChoices.apply_and_delegate)
task_factory(deployment_request=dr, task_index='0003', type=TaskTypesChoices.delegate_to_l2)

Expand Down Expand Up @@ -556,7 +555,7 @@ def test_main_process_w_aborted_tasks(
task_factory(
deployment_request=dr,
task_index='0001',
type=TaskTypesChoices.ppr_validation,
type=TaskTypesChoices.product_setup,
status=task_statuses.pop(),
)

Expand Down Expand Up @@ -624,7 +623,7 @@ def test_main_process_w_aborted_deployment_request(
task_factory(
deployment_request=dr,
task_index='0001',
type=TaskTypesChoices.ppr_validation,
type=TaskTypesChoices.product_setup,
status=TasksStatusChoices.aborted,
)

Expand Down Expand Up @@ -659,7 +658,7 @@ def test_main_process_w_aborted_deployment_request(
@pytest.mark.parametrize(
('type_function_to_mock', 'done_tasks', 'tasks_w_errors', 'pending_tasks'),
(
(TaskTypesChoices.ppr_validation, 0, 1, 2),
(TaskTypesChoices.product_setup, 0, 1, 2),
(TaskTypesChoices.apply_and_delegate, 1, 1, 1),
(TaskTypesChoices.delegate_to_l2, 2, 1, 0),
),
Expand All @@ -682,7 +681,7 @@ def test_main_process_ends_w_task_exception(
dep = deployment_factory()
ppr = ppr_version_factory(id='PPR-123', product_version=1, deployment=dep, version=1)
dr = deployment_request_factory(deployment=dep, delegate_l2=True, ppr=ppr)
task_factory(deployment_request=dr, task_index='0001', type=TaskTypesChoices.ppr_validation)
task_factory(deployment_request=dr, task_index='0001', type=TaskTypesChoices.product_setup)
task_factory(deployment_request=dr, task_index='0002', type=TaskTypesChoices.apply_and_delegate)
task_factory(deployment_request=dr, task_index='0003', type=TaskTypesChoices.delegate_to_l2)

Expand Down

0 comments on commit b8f9326

Please sign in to comment.