def test_should_be_able_to_get_no_template_usage_history_if_no_notifications_using_template( notify_db, notify_db_session): sms = sample_template(notify_db, notify_db_session) results = dao_get_last_template_usage(sms.id) assert not results
def test_template_usage_should_ignore_test_keys( notify_db, notify_db_session, sample_team_api_key, sample_test_api_key ): sms = sample_template(notify_db, notify_db_session) one_minute_ago = datetime.utcnow() - timedelta(minutes=1) two_minutes_ago = datetime.utcnow() - timedelta(minutes=2) team_key = sample_notification( notify_db, notify_db_session, created_at=two_minutes_ago, template=sms, api_key_id=sample_team_api_key.id, key_type=KEY_TYPE_TEAM) sample_notification( notify_db, notify_db_session, created_at=one_minute_ago, template=sms, api_key_id=sample_test_api_key.id, key_type=KEY_TYPE_TEST) results = dao_get_last_template_usage(sms.id) assert results.id == team_key.id
def test_last_template_usage_should_get_right_data(sample_notification): results = dao_get_last_template_usage(sample_notification.template_id, 'sms', sample_notification.service_id) assert results.template.name == 'sms Template Name' assert results.template.template_type == 'sms' assert results.created_at == sample_notification.created_at assert results.template_id == sample_notification.template_id assert results.id == sample_notification.id
def get_template_statistics_for_template_id(service_id, template_id): template = dao_get_template_by_id_and_service_id(template_id, service_id) data = None notification = dao_get_last_template_usage(template_id, template.template_type, template.service_id) if notification: data = notification_with_template_schema.dump(notification).data return jsonify(data=data)
def test_should_be_able_to_get_template_usage_history(notify_db, notify_db_session, sample_service): with freeze_time('2000-01-01 12:00:00'): sms = sample_template(notify_db, notify_db_session) notification = sample_notification(notify_db, notify_db_session, service=sample_service, template=sms) results = dao_get_last_template_usage(sms.id) assert results.template.name == 'Template Name' assert results.template.template_type == 'sms' assert results.created_at == datetime(year=2000, month=1, day=1, hour=12, minute=0, second=0) assert results.template_id == sms.id assert results.id == notification.id
def test_should_be_able_to_get_all_template_usage_history_order_by_notification_created_at( notify_db, notify_db_session, sample_service): sms = sample_template(notify_db, notify_db_session) sample_notification(notify_db, notify_db_session, service=sample_service, template=sms) sample_notification(notify_db, notify_db_session, service=sample_service, template=sms) sample_notification(notify_db, notify_db_session, service=sample_service, template=sms) most_recent = sample_notification(notify_db, notify_db_session, service=sample_service, template=sms) results = dao_get_last_template_usage(sms.id) assert results.id == most_recent.id
def get_template_statistics_for_template_id(service_id, template_id): template = dao_get_template_by_id_and_service_id(template_id, service_id) if not template: message = 'No template found for id {}'.format(template_id) errors = {'template_id': [message]} raise InvalidRequest(errors, status_code=404) data = None notification = dao_get_last_template_usage(template_id, template.template_type) if notification: data = notification_with_template_schema.dump(notification).data return jsonify(data=data)
def test_last_template_usage_should_be_able_to_get_all_template_usage_history_order_by_notification_created_at( sample_service, notification_type): template = create_template(sample_service, template_type=notification_type) create_notification(template, created_at=datetime.utcnow() - timedelta(seconds=1)) create_notification(template, created_at=datetime.utcnow() - timedelta(seconds=2)) create_notification(template, created_at=datetime.utcnow() - timedelta(seconds=3)) most_recent = create_notification(template) results = dao_get_last_template_usage(template.id, notification_type, template.service_id) assert results.id == most_recent.id
def test_last_template_usage_should_ignore_test_keys(sample_template, sample_team_api_key, sample_test_api_key): one_minute_ago = datetime.utcnow() - timedelta(minutes=1) two_minutes_ago = datetime.utcnow() - timedelta(minutes=2) team_key = create_notification(template=sample_template, created_at=two_minutes_ago, api_key=sample_team_api_key) create_notification(template=sample_template, created_at=one_minute_ago, api_key=sample_test_api_key) results = dao_get_last_template_usage(sample_template.id, 'sms', sample_template.service_id) assert results.id == team_key.id
def test_last_template_usage_should_be_able_to_get_no_template_usage_history_if_no_notifications_using_template( sample_template): results = dao_get_last_template_usage(sample_template.id, 'sms', sample_template.service_id) assert not results