mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-21 07:51:13 -05:00
don't update current year twice
This commit is contained in:
@@ -14,7 +14,7 @@ from app.utils import convert_utc_to_bst
|
||||
from app.dao.annual_billing_dao import (dao_get_free_sms_fragment_limit_for_year,
|
||||
dao_get_all_free_sms_fragment_limit,
|
||||
dao_create_or_update_annual_billing_for_year,
|
||||
dao_update_annual_billing_for_current_and_future_years)
|
||||
dao_update_annual_billing_for_future_years)
|
||||
from app.billing.billing_schemas import create_or_update_free_sms_fragment_limit_schema
|
||||
from app.errors import InvalidRequest
|
||||
from app.schema_validation import validate
|
||||
@@ -155,7 +155,7 @@ def update_free_sms_fragment_limit_data(service_id, free_sms_fragment_limit, fin
|
||||
# if we're trying to update historical data, don't touch other rows.
|
||||
# Otherwise, make sure that future years will get the new updated value.
|
||||
if financial_year_start >= current_year:
|
||||
dao_update_annual_billing_for_current_and_future_years(
|
||||
dao_update_annual_billing_for_future_years(
|
||||
service_id,
|
||||
free_sms_fragment_limit,
|
||||
financial_year_start
|
||||
|
||||
@@ -26,10 +26,10 @@ def dao_get_annual_billing(service_id):
|
||||
|
||||
|
||||
@transactional
|
||||
def dao_update_annual_billing_for_current_and_future_years(service_id, free_sms_fragment_limit, financial_year_start):
|
||||
def dao_update_annual_billing_for_future_years(service_id, free_sms_fragment_limit, financial_year_start):
|
||||
AnnualBilling.query.filter(
|
||||
AnnualBilling.service_id == service_id,
|
||||
AnnualBilling.financial_year_start >= financial_year_start
|
||||
AnnualBilling.financial_year_start > financial_year_start
|
||||
).update(
|
||||
{'free_sms_fragment_limit': free_sms_fragment_limit}
|
||||
)
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
|
||||
from app.dao.date_util import get_current_financial_year_start_year
|
||||
|
||||
from app.dao.annual_billing_dao import (
|
||||
dao_create_or_update_annual_billing_for_year,
|
||||
dao_get_free_sms_fragment_limit_for_year,
|
||||
dao_update_annual_billing_for_current_and_future_years,
|
||||
dao_update_annual_billing_for_future_years,
|
||||
)
|
||||
from tests.app.db import create_annual_billing
|
||||
|
||||
@@ -26,14 +27,14 @@ def test_create_annual_billing(sample_service):
|
||||
assert free_limit.free_sms_fragment_limit == 9999
|
||||
|
||||
|
||||
def test_dao_update_annual_billing_for_current_and_future_years(notify_db_session, sample_service):
|
||||
def test_dao_update_annual_billing_for_future_years(notify_db_session, sample_service):
|
||||
current_year = get_current_financial_year_start_year()
|
||||
limits = [1, 2, 3, 4]
|
||||
create_annual_billing(sample_service.id, limits[0], current_year - 1)
|
||||
create_annual_billing(sample_service.id, limits[2], current_year + 1)
|
||||
create_annual_billing(sample_service.id, limits[3], current_year + 2)
|
||||
|
||||
dao_update_annual_billing_for_current_and_future_years(sample_service.id, 9999, current_year)
|
||||
dao_update_annual_billing_for_future_years(sample_service.id, 9999, current_year)
|
||||
|
||||
assert dao_get_free_sms_fragment_limit_for_year(sample_service.id, current_year - 1).free_sms_fragment_limit == 1
|
||||
# current year is not created
|
||||
|
||||
Reference in New Issue
Block a user