Find services by partial name

This commit is contained in:
Pea Tyczynska
2019-08-13 17:20:37 +01:00
parent 515d6602c1
commit 52a1316a7e
4 changed files with 65 additions and 2 deletions

View File

@@ -33,6 +33,7 @@ from app.dao.services_dao import (
dao_resume_service,
dao_fetch_active_users_for_service,
dao_fetch_service_by_inbound_number,
get_services_by_partial_name,
)
from app.dao.service_user_dao import dao_get_service_user, dao_update_service_user
from app.dao.users_dao import save_model_user, create_user_code
@@ -390,7 +391,22 @@ def test_get_all_services_for_user(notify_db_session):
assert dao_fetch_all_services_by_user(user.id)[2].name == 'service 3'
def test_get_all_only_services_user_has_access_to(notify_db_session):
def test_get_services_by_partial_name(notify_db_session):
create_service(service_name="Tadfield Police")
create_service(service_name="Tadfield Air Base")
create_service(service_name="London M25 Management Body")
services_from_db = get_services_by_partial_name("Tadfield")
assert len(services_from_db) == 2
assert sorted([service.name for service in services_from_db]) == ["Tadfield Air Base", "Tadfield Police"]
def test_get_services_by_partial_name_is_case_insensitive(notify_db_session):
create_service(service_name="Tadfield Police")
services_from_db = get_services_by_partial_name("tadfield")
assert services_from_db[0].name == "Tadfield Police"
def test_get_all_user_services_only_returns_services_user_has_access_to(notify_db_session):
user = create_user()
create_service(service_name='service 1', user=user, email_from='service.1')
create_service(service_name='service 2', user=user, email_from='service.2')

View File

@@ -138,6 +138,36 @@ def test_get_service_list_should_return_empty_list_if_no_services(admin_request)
assert len(json_resp['data']) == 0
def test_find_services_by_name_finds_services(notify_db, admin_request, mocker):
service_1 = create_service(service_name="ABCDEF")
service_2 = create_service(service_name="ABCGHT")
mock_get_services_by_partial_name = mocker.patch(
'app.service.rest.get_services_by_partial_name',
return_value=[service_1, service_2]
)
response = admin_request.get('service.find_services_by_name', service_name="ABC")["data"]
mock_get_services_by_partial_name.assert_called_once_with("ABC")
assert len(response) == 2
def test_find_services_by_name_handles_no_results(notify_db, admin_request, mocker):
mock_get_services_by_partial_name = mocker.patch(
'app.service.rest.get_services_by_partial_name',
return_value=[]
)
response = admin_request.get('service.find_services_by_name', service_name="ABC")["data"]
mock_get_services_by_partial_name.assert_called_once_with("ABC")
assert len(response) == 0
def test_find_services_by_name_handles_no_service_name(notify_db, admin_request, mocker):
mock_get_services_by_partial_name = mocker.patch(
'app.service.rest.get_services_by_partial_name'
)
admin_request.get('service.find_services_by_name', _expected_status=400)
mock_get_services_by_partial_name.assert_not_called()
def test_get_live_services_data(sample_user, admin_request):
org = create_organisation()