Files
notifications-admin/tests/__init__.py
Adam Shimali 5f3c72729e [WIP] Start of user accepting invite.
This commit only deals with acceptance by
users who are already in system.

Changed invite client to return invited user objects
instead of dictionaries.

Added commented out test. fixed up fixtures to return invited user
object for invites
2016-03-01 14:10:35 +00:00

115 lines
3.0 KiB
Python

from flask.testing import FlaskClient
from flask import url_for
class TestClient(FlaskClient):
def login(self, user):
# Skipping authentication here and just log them in
with self.session_transaction() as session:
session['user_details'] = {
"email": user.email_address,
"id": user.id}
# Include mock_login fixture in test for this to work.
# TODO would be better for it to be mocked in this
# function
response = self.post(
url_for('main.two_factor'), data={'sms_code': '12345'})
assert response.status_code == 302
def logout(self, user):
self.get(url_for("main.logout"))
def service_json(id_, name, users, limit=1000, active=False, restricted=True):
return {
'id': id_,
'name': name,
'users': users,
'limit': limit,
'active': active,
'restricted': restricted
}
def template_json(id_, name, type_, content, service_id):
return {
'id': id_,
'name': name,
'template_type': type_,
'content': content,
'service': service_id
}
def api_key_json(id_, name, expiry_date=None):
return {'id': id_,
'name': name,
'expiry_date': expiry_date
}
def invite_json(id, from_user, service_id, email_address, permissions, created_at):
return {'id': id,
'from_user': from_user,
'service': service_id,
'email_address': email_address,
'status': 'pending',
'permissions': permissions,
'created_at': created_at
}
TEST_USER_EMAIL = 'test@user.gov.uk'
def create_test_user(state):
from app.main.dao import users_dao
user = None
users_dao.insert_user(user)
return user
def create_test_api_user(state, permissions={}):
from app.notify_client.user_api_client import User
user_data = {'id': 1,
'name': 'Test User',
'password': 'somepassword',
'email_address': TEST_USER_EMAIL,
'mobile_number': '+441234123412',
'state': state,
'permissions': permissions
}
user = User(user_data)
return user
def create_another_test_user(state):
from app.main.dao import users_dao
user = None
users_dao.insert_user(user)
return user
def get_test_user():
from app.main.dao import users_dao
return users_dao.get_user_by_email(TEST_USER_EMAIL)
def job_json():
import uuid
import datetime
uuid.uuid4()
job_id = str(uuid.uuid4())
created_at = str(datetime.datetime.now().time())
data = {
'id': str(job_id),
'service': 1,
'template': 1,
'original_file_name': 'thisisatest.csv',
'bucket_name': 'service-1-{}-notify'.format(job_id),
'file_name': '{}.csv'.format(job_id),
'created_at': created_at,
'notification_count': 1
}
return data