mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-05 02:42:26 -05:00
Able to get services by user id
This commit is contained in:
@@ -26,8 +26,11 @@ def get_service_by_id(id_):
|
||||
return notifications_api_client.get_service(id_)
|
||||
|
||||
|
||||
def get_services():
|
||||
return notifications_api_client.get_services()
|
||||
def get_services(user_id=None):
|
||||
if user_id:
|
||||
return notifications_api_client.get_services({'user_id': str(user_id)})
|
||||
else:
|
||||
return notifications_api_client.get_services()
|
||||
|
||||
|
||||
def unrestrict_service(service_id):
|
||||
@@ -55,8 +58,8 @@ def activate_service(service_id):
|
||||
|
||||
|
||||
# TODO Fix when functionality is added to the api.
|
||||
def find_service_by_service_name(service_name):
|
||||
resp = notifications_api_client.get_services()
|
||||
def find_service_by_service_name(service_name, user_id=None):
|
||||
resp = notifications_api_client.get_services(user_id)
|
||||
retval = None
|
||||
for srv_json in resp['data']:
|
||||
if srv_json['name'] == service_name:
|
||||
@@ -69,8 +72,8 @@ def delete_service(id_):
|
||||
return notifications_api_client.delete_service(id_)
|
||||
|
||||
|
||||
def find_all_service_names():
|
||||
resp = notifications_api_client.get_services()
|
||||
def find_all_service_names(user_id=None):
|
||||
resp = notifications_api_client.get_services(user_id)
|
||||
return [x['name'] for x in resp['data']]
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from flask import request, render_template, jsonify, redirect, session, url_for, abort
|
||||
from flask_login import login_required
|
||||
from flask import render_template, redirect, session, url_for
|
||||
from flask_login import login_required, current_user
|
||||
from app.main import main
|
||||
from app.main.dao import services_dao, users_dao
|
||||
from app.main.forms import AddServiceForm
|
||||
@@ -9,7 +9,7 @@ from app.main.forms import AddServiceForm
|
||||
@login_required
|
||||
def add_service():
|
||||
form = AddServiceForm(services_dao.find_all_service_names)
|
||||
services = services_dao.get_services()
|
||||
services = services_dao.get_services(current_user.id)
|
||||
if len(services) > 0:
|
||||
heading = 'Set up notifications for your service'
|
||||
else:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from flask import (render_template, redirect, url_for)
|
||||
from flask_login import login_required
|
||||
from flask_login import login_required, current_user
|
||||
from app.main.dao import services_dao
|
||||
from app.main import main
|
||||
|
||||
@@ -7,7 +7,7 @@ from app.main import main
|
||||
@main.route("/services")
|
||||
@login_required
|
||||
def choose_service():
|
||||
services = services_dao.get_services()
|
||||
services = services_dao.get_services(current_user.id)
|
||||
# If there is only one service redirect
|
||||
# to the service dashboard.
|
||||
if len(services['data']) == 1:
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import pytest
|
||||
import sqlalchemy
|
||||
from app.main.dao import services_dao
|
||||
|
||||
|
||||
@@ -58,8 +56,8 @@ def test_find_by_service_name_returns_right_service(db_, db_session, mock_get_se
|
||||
assert service['name'] == service_name
|
||||
|
||||
|
||||
def test_should_return_list_of_service_names(db_, db_session, mock_get_services):
|
||||
def test_should_return_list_of_service_names(db_, db_session, mock_api_user, mock_get_services):
|
||||
expected = ['service_one', 'service_two']
|
||||
actual = services_dao.find_all_service_names()
|
||||
actual = services_dao.find_all_service_names(mock_api_user.id)
|
||||
assert mock_get_services.called
|
||||
assert actual == expected
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
import os
|
||||
from datetime import date
|
||||
|
||||
import pytest
|
||||
from alembic.command import upgrade
|
||||
from alembic.config import Config
|
||||
from flask.ext.migrate import Migrate, MigrateCommand
|
||||
from flask.ext.script import Manager
|
||||
from sqlalchemy.schema import MetaData
|
||||
|
||||
from app import create_app, db
|
||||
|
||||
from . import (
|
||||
create_test_user, service_json, TestClient,
|
||||
get_test_user, template_json, api_key_json)
|
||||
@@ -67,14 +66,6 @@ def service_one(request, mock_api_user):
|
||||
return service_json(1, 'service one', [mock_api_user.id])
|
||||
|
||||
|
||||
# @pytest.fixture(scope='function')
|
||||
# def active_user(request, db_, db_session):
|
||||
# usr = get_test_user()
|
||||
# if usr:
|
||||
# return usr
|
||||
# return create_test_user('active')
|
||||
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
def mock_send_sms(request, mocker):
|
||||
return mocker.patch("app.notifications_api_client.send_sms")
|
||||
@@ -87,13 +78,13 @@ def mock_send_email(request, mocker):
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
def mock_get_service(mocker, mock_api_user):
|
||||
def _create(service_id):
|
||||
def _get(service_id):
|
||||
service = service_json(
|
||||
service_id, "Test Service", [mock_api_user.id], limit=1000,
|
||||
active=False, restricted=True)
|
||||
return {'data': service, 'token': 1}
|
||||
|
||||
return mocker.patch('app.notifications_api_client.get_service', side_effect=_create)
|
||||
return mocker.patch('app.notifications_api_client.get_service', side_effect=_get)
|
||||
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
@@ -129,7 +120,21 @@ def mock_update_service(mocker):
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
def mock_get_services(mocker, mock_api_user):
|
||||
def _create():
|
||||
def _get(user_id):
|
||||
service_one = service_json(
|
||||
1, "service_one", [mock_api_user.id], 1000, True, False)
|
||||
service_two = service_json(
|
||||
2, "service_two", [mock_api_user.id], 1000, True, False)
|
||||
return {'data': [service_one, service_two]}
|
||||
|
||||
mock_class = mocker.patch(
|
||||
'app.notifications_api_client.get_services', side_effect=_get)
|
||||
return mock_class
|
||||
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
def mock_get_services(mocker, mock_api_user):
|
||||
def _create(user_id):
|
||||
service_one = service_json(
|
||||
1, "service_one", [mock_api_user.id], 1000, True, False)
|
||||
service_two = service_json(
|
||||
@@ -318,6 +323,7 @@ def mock_user_dao_password_reset(mocker, mock_api_user):
|
||||
|
||||
def _reset(email):
|
||||
mock_api_user.state = 'request_password_reset'
|
||||
|
||||
return mocker.patch('app.main.dao.users_dao.request_password_reset', side_effect=_reset)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user