mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-02 09:26:08 -05:00
Renamed url to /template-folder/<id>/contents, it's a more restful name.
Updated unit tests Removed redundant logger
This commit is contained in:
@@ -94,8 +94,8 @@ def delete_template_folder(service_id, template_folder_id):
|
|||||||
return '', 204
|
return '', 204
|
||||||
|
|
||||||
|
|
||||||
@template_folder_blueprint.route('/move-to-folder', methods=['POST'])
|
@template_folder_blueprint.route('/contents', methods=['POST'])
|
||||||
@template_folder_blueprint.route('/move-to-folder/<uuid:target_template_folder_id>', methods=['POST'])
|
@template_folder_blueprint.route('/<uuid:target_template_folder_id>/contents', methods=['POST'])
|
||||||
@transactional
|
@transactional
|
||||||
def move_to_template_folder(service_id, target_template_folder_id=None):
|
def move_to_template_folder(service_id, target_template_folder_id=None):
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
@@ -115,7 +115,6 @@ def move_to_template_folder(service_id, target_template_folder_id=None):
|
|||||||
template_folder_id,
|
template_folder_id,
|
||||||
service_id
|
service_id
|
||||||
)
|
)
|
||||||
current_app.logger.error(msg)
|
|
||||||
raise InvalidRequest(msg, status_code=400)
|
raise InvalidRequest(msg, status_code=400)
|
||||||
|
|
||||||
if target_template_folder and template_folder.is_parent_of(target_template_folder):
|
if target_template_folder and template_folder.is_parent_of(target_template_folder):
|
||||||
@@ -123,7 +122,6 @@ def move_to_template_folder(service_id, target_template_folder_id=None):
|
|||||||
template_folder_id,
|
template_folder_id,
|
||||||
target_template_folder_id
|
target_template_folder_id
|
||||||
)
|
)
|
||||||
current_app.logger.error(msg)
|
|
||||||
raise InvalidRequest(msg, status_code=400)
|
raise InvalidRequest(msg, status_code=400)
|
||||||
|
|
||||||
template_folder.parent = target_template_folder
|
template_folder.parent = target_template_folder
|
||||||
@@ -136,7 +134,6 @@ def move_to_template_folder(service_id, target_template_folder_id=None):
|
|||||||
template_id,
|
template_id,
|
||||||
service_id
|
service_id
|
||||||
)
|
)
|
||||||
current_app.logger.error(msg)
|
|
||||||
raise InvalidRequest(msg, status_code=400)
|
raise InvalidRequest(msg, status_code=400)
|
||||||
|
|
||||||
if template.archived:
|
if template.archived:
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ def test_move_to_folder_moves_folders_and_templates(admin_request, sample_servic
|
|||||||
|
|
||||||
def test_move_to_folder_moves_folders_and_templates_to_top_level_if_no_target(admin_request, sample_service):
|
def test_move_to_folder_moves_folders_and_templates_to_top_level_if_no_target(admin_request, sample_service):
|
||||||
f1 = create_template_folder(sample_service, name='f1')
|
f1 = create_template_folder(sample_service, name='f1')
|
||||||
f2 = create_template_folder(sample_service, name='f2')
|
f2 = create_template_folder(sample_service, name='f2', parent=f1)
|
||||||
|
|
||||||
t1 = create_template(sample_service, template_name='t1', folder=f1)
|
t1 = create_template(sample_service, template_name='t1', folder=f1)
|
||||||
t2 = create_template(sample_service, template_name='t2', folder=f1)
|
t2 = create_template(sample_service, template_name='t2', folder=f1)
|
||||||
@@ -258,13 +258,13 @@ def test_move_to_folder_moves_folders_and_templates_to_top_level_if_no_target(ad
|
|||||||
target_template_folder_id=None,
|
target_template_folder_id=None,
|
||||||
_data={
|
_data={
|
||||||
'templates': [str(t1.id)],
|
'templates': [str(t1.id)],
|
||||||
'folders': [str(f1.id)]
|
'folders': [str(f2.id)]
|
||||||
},
|
},
|
||||||
_expected_status=204
|
_expected_status=204
|
||||||
)
|
)
|
||||||
|
|
||||||
assert f1.parent is None
|
assert f1.parent is None # unchanged
|
||||||
assert f2.parent is None # unchanged
|
assert f2.parent is None
|
||||||
|
|
||||||
assert t1.folder is None # moved out of f1, even though f1 is also being moved
|
assert t1.folder is None # moved out of f1, even though f1 is also being moved
|
||||||
assert t2.folder == f1 # stays in f1, though f1 has moved
|
assert t2.folder == f1 # stays in f1, though f1 has moved
|
||||||
@@ -277,7 +277,7 @@ def test_move_to_folder_rejects_folder_from_other_service(admin_request, notify_
|
|||||||
|
|
||||||
f2 = create_template_folder(s2)
|
f2 = create_template_folder(s2)
|
||||||
|
|
||||||
admin_request.post(
|
response = admin_request.post(
|
||||||
'template_folder.move_to_template_folder',
|
'template_folder.move_to_template_folder',
|
||||||
service_id=s1.id,
|
service_id=s1.id,
|
||||||
target_template_folder_id=None,
|
target_template_folder_id=None,
|
||||||
@@ -287,6 +287,7 @@ def test_move_to_folder_rejects_folder_from_other_service(admin_request, notify_
|
|||||||
},
|
},
|
||||||
_expected_status=400
|
_expected_status=400
|
||||||
)
|
)
|
||||||
|
assert response['message'] == 'No folder found with id {} for service {}'.format(f2.id, s1.id)
|
||||||
|
|
||||||
|
|
||||||
def test_move_to_folder_rejects_template_from_other_service(admin_request, notify_db_session):
|
def test_move_to_folder_rejects_template_from_other_service(admin_request, notify_db_session):
|
||||||
@@ -295,7 +296,7 @@ def test_move_to_folder_rejects_template_from_other_service(admin_request, notif
|
|||||||
|
|
||||||
t2 = create_template(s2)
|
t2 = create_template(s2)
|
||||||
|
|
||||||
admin_request.post(
|
response = admin_request.post(
|
||||||
'template_folder.move_to_template_folder',
|
'template_folder.move_to_template_folder',
|
||||||
service_id=s1.id,
|
service_id=s1.id,
|
||||||
target_template_folder_id=None,
|
target_template_folder_id=None,
|
||||||
@@ -305,21 +306,28 @@ def test_move_to_folder_rejects_template_from_other_service(admin_request, notif
|
|||||||
},
|
},
|
||||||
_expected_status=400
|
_expected_status=400
|
||||||
)
|
)
|
||||||
|
assert response['message'] == 'Could not move to folder: No template found with id {} for service {}'.format(
|
||||||
|
t2.id, s1.id
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_move_to_folder_rejects_if_it_would_cause_folder_loop(admin_request, sample_service):
|
def test_move_to_folder_rejects_if_it_would_cause_folder_loop(admin_request, sample_service):
|
||||||
f1 = create_template_folder(sample_service, name='f1')
|
f1 = create_template_folder(sample_service, name='f1')
|
||||||
target_folder = create_template_folder(sample_service, name='target', parent=f1)
|
target_folder = create_template_folder(sample_service, name='target', parent=f1)
|
||||||
|
|
||||||
admin_request.post(
|
response = admin_request.post(
|
||||||
'template_folder.move_to_template_folder',
|
'template_folder.move_to_template_folder',
|
||||||
service_id=sample_service.id,
|
service_id=sample_service.id,
|
||||||
target_template_folder_id=target_folder.id,
|
target_template_folder_id=target_folder.id,
|
||||||
_data={
|
_data={
|
||||||
|
'templates': [],
|
||||||
'folders': [str(f1.id)]
|
'folders': [str(f1.id)]
|
||||||
},
|
},
|
||||||
_expected_status=400
|
_expected_status=400
|
||||||
)
|
)
|
||||||
|
assert response['message'] == 'Could not move to folder: {} is an ancestor of target folder {}'.format(
|
||||||
|
f1.id, target_folder.id
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_move_to_folder_skips_archived_templates(admin_request, sample_service):
|
def test_move_to_folder_skips_archived_templates(admin_request, sample_service):
|
||||||
|
|||||||
Reference in New Issue
Block a user