mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-05 10:53:28 -05:00
The main change is showing the finished time if the job is finished, rather than the start time.
127 lines
3.2 KiB
Python
127 lines
3.2 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,
|
|
'status': ''
|
|
}
|
|
return data
|
|
|
|
|
|
def notification_json():
|
|
import datetime
|
|
data = {
|
|
'notifications': [{
|
|
'sent_at': str(datetime.datetime.now().time())
|
|
} for i in range(5)],
|
|
'links': {}
|
|
}
|
|
return data
|