change update_provider_stats to use billable_units

updated tests etc, and removed some old tests that are no longer relevant
This commit is contained in:
Leo Hemsted
2016-08-03 17:22:20 +01:00
parent 527a5c4eaa
commit 143cfb526c
5 changed files with 19 additions and 102 deletions

View File

@@ -557,8 +557,8 @@ def test_should_not_set_billable_units_if_research_mode(notify_db, sample_servic
notify_db.session.commit()
send_sms_to_provider(
sample_notification.service_id,
sample_notification.id
sample_notification.service_id,
sample_notification.id
)
persisted_notification = notifications_dao.get_notification(sample_service.id, sample_notification.id)

View File

@@ -1,10 +1,11 @@
from datetime import datetime
import uuid
from app.models import NotificationHistory, KEY_TYPE_NORMAL, NOTIFICATION_STATUS_TYPES
import pytest
from app.models import NotificationHistory, KEY_TYPE_NORMAL, KEY_TYPE_TEAM, KEY_TYPE_TEST, NOTIFICATION_STATUS_TYPES
from app.dao.notifications_dao import update_provider_stats
from app.dao.provider_statistics_dao import (
get_provider_statistics, get_fragment_count)
from app.dao.provider_statistics_dao import get_provider_statistics, get_fragment_count
from tests.app.conftest import sample_notification as create_sample_notification
@@ -46,24 +47,24 @@ def test_should_update_provider_statistics_sms_multi(notify_db,
notify_db,
notify_db_session,
template=sample_template,
content_char_count=160)
update_provider_stats(n1.id, 'sms', mmg_provider.identifier)
billable_units=1)
update_provider_stats(n1.id, 'sms', mmg_provider.identifier, n1.billable_units)
n2 = create_sample_notification(
notify_db,
notify_db_session,
template=sample_template,
content_char_count=161)
update_provider_stats(n2.id, 'sms', mmg_provider.identifier)
billable_units=2)
update_provider_stats(n2.id, 'sms', mmg_provider.identifier, n2.billable_units)
n3 = create_sample_notification(
notify_db,
notify_db_session,
template=sample_template,
content_char_count=307)
update_provider_stats(n3.id, 'sms', mmg_provider.identifier)
billable_units=4)
update_provider_stats(n3.id, 'sms', mmg_provider.identifier, n3.billable_units)
provider_stats = get_provider_statistics(
sample_template.service,
providers=[mmg_provider.identifier]).one()
assert provider_stats.unit_count == 6
assert provider_stats.unit_count == 7
def test_should_update_provider_statistics_email_multi(notify_db,

View File

@@ -1,77 +0,0 @@
import json
from datetime import (date, timedelta)
from flask import url_for
from tests import create_authorization_header
def test_fragment_count(notify_api, sample_provider_statistics):
with notify_api.test_request_context():
with notify_api.test_client() as client:
endpoint = url_for(
'service.get_service_provider_aggregate_statistics',
service_id=str(sample_provider_statistics.service.id))
auth_header = create_authorization_header()
resp = client.get(
endpoint,
headers=[auth_header]
)
assert resp.status_code == 200
json_resp = json.loads(resp.get_data(as_text=True))
assert json_resp['data']['sms_count'] == 1
def test_fragment_count_from_to(notify_api, sample_provider_statistics):
with notify_api.test_request_context():
with notify_api.test_client() as client:
today_str = date.today().strftime('%Y-%m-%d')
endpoint = url_for(
'service.get_service_provider_aggregate_statistics',
service_id=str(sample_provider_statistics.service.id),
date_from=today_str,
date_to=today_str)
auth_header = create_authorization_header()
resp = client.get(
endpoint,
headers=[auth_header]
)
assert resp.status_code == 200
json_resp = json.loads(resp.get_data(as_text=True))
assert json_resp['data']['sms_count'] == 1
def test_fragment_count_from_greater_than_to(notify_api, sample_provider_statistics):
with notify_api.test_request_context():
with notify_api.test_client() as client:
today_str = date.today().strftime('%Y-%m-%d')
yesterday_str = date.today() - timedelta(days=1)
endpoint = url_for(
'service.get_service_provider_aggregate_statistics',
service_id=str(sample_provider_statistics.service.id),
date_from=today_str,
date_to=yesterday_str)
auth_header = create_authorization_header()
resp = client.get(
endpoint,
headers=[auth_header]
)
assert resp.status_code == 400
json_resp = json.loads(resp.get_data(as_text=True))
assert 'date_from needs to be greater than date_to' in json_resp['message']['_schema']
def test_fragment_count_in_future(notify_api, sample_provider_statistics):
with notify_api.test_request_context():
with notify_api.test_client() as client:
tomorrow_str = (date.today() + timedelta(days=1)).strftime('%Y-%m-%d')
endpoint = url_for(
'service.get_service_provider_aggregate_statistics',
service_id=str(sample_provider_statistics.service.id),
date_from=tomorrow_str)
auth_header = create_authorization_header()
resp = client.get(
endpoint,
headers=[auth_header]
)
assert resp.status_code == 400
json_resp = json.loads(resp.get_data(as_text=True))
assert 'Date cannot be in the future' in json_resp['message']['date_from']