Fix selected=True not being set at new Transpose API Endpoint

This commit is contained in:
Mateus Meyer Jiacomelli 2023-02-16 17:57:34 +00:00 committed by Raoul Snyman
parent 6a67c2d89f
commit 7c6f2efc81
3 changed files with 22 additions and 3 deletions

View File

@ -60,7 +60,7 @@ def system_information():
data['websocket_port'] = Registry().get('settings_thread').value('api/websocket port')
data['login_required'] = Registry().get('settings_thread').value('api/authentication enabled')
data['api_version'] = 2
data['api_revision'] = 2
data['api_revision'] = 3
return jsonify(data)

View File

@ -182,6 +182,7 @@ def transpose(transpose_value):
chord_slides.append({'chords': verse_list[i + 1].strip(), 'verse': verse_list[i]})
if return_service_item:
live_item['chords_transposed'] = True
live_item['slides'][live_controller.selected_row]['selected'] = True
json_live_item = json.dumps(live_item, cls=OpenLPJSONEncoder)
return Response(json_live_item, mimetype='application/json')
else:

View File

@ -103,7 +103,7 @@ def test_plugin_songs_transpose_returns_plugin_exception(flask_client, settings)
assert res.status_code == 400
TransposeMockReturn = namedtuple('TransposeMockReturn', ['renderer_mock_any_attr'])
TransposeMockReturn = namedtuple('TransposeMockReturn', ['renderer_mock_any_attr', 'live_controller_mock'])
def _init_transpose_mocks():
@ -136,7 +136,8 @@ def _init_transpose_mocks():
renderer_mock_any_attr.reset_mock()
renderer_mock.format_slides.reset_mock()
return TransposeMockReturn(renderer_mock_any_attr=renderer_mock_any_attr)
return TransposeMockReturn(renderer_mock_any_attr=renderer_mock_any_attr,
live_controller_mock=live_controller_mock)
def test_plugin_songs_transpose_wont_call_renderer(flask_client, settings):
@ -171,3 +172,20 @@ def test_plugin_songs_transpose_accepts_response_format_service_item(flask_clien
# THEN: The service item response shouldn't match normal response and should be a service_item response
response = service_item_res.json
assert 'capabilities' in response
def test_plugin_songs_transpose_marks_selected_slide(flask_client, settings):
"""
Tests whether the transpose's endpoint marks the active slide
"""
# GIVEN: The default mocks for Transpose API and the default response
mocks = _init_transpose_mocks()
mocks.live_controller_mock.selected_row = 1
# WHEN: The transpose action returning service_item is called
service_item_res = flask_client.get('/api/v2/plugins/songs/transpose-live-item/-1?response_format=service_item')
# THEN: The service item response shouldn't match normal response and should be a service_item response
response = service_item_res.json
assert response['slides'][1]['selected'] is True