mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-20 23:41:17 -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,
|
from app.dao.annual_billing_dao import (dao_get_free_sms_fragment_limit_for_year,
|
||||||
dao_get_all_free_sms_fragment_limit,
|
dao_get_all_free_sms_fragment_limit,
|
||||||
dao_create_or_update_annual_billing_for_year,
|
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.billing.billing_schemas import create_or_update_free_sms_fragment_limit_schema
|
||||||
from app.errors import InvalidRequest
|
from app.errors import InvalidRequest
|
||||||
from app.schema_validation import validate
|
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.
|
# 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.
|
# Otherwise, make sure that future years will get the new updated value.
|
||||||
if financial_year_start >= current_year:
|
if financial_year_start >= current_year:
|
||||||
dao_update_annual_billing_for_current_and_future_years(
|
dao_update_annual_billing_for_future_years(
|
||||||
service_id,
|
service_id,
|
||||||
free_sms_fragment_limit,
|
free_sms_fragment_limit,
|
||||||
financial_year_start
|
financial_year_start
|
||||||
|
|||||||
@@ -26,10 +26,10 @@ def dao_get_annual_billing(service_id):
|
|||||||
|
|
||||||
|
|
||||||
@transactional
|
@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.query.filter(
|
||||||
AnnualBilling.service_id == service_id,
|
AnnualBilling.service_id == service_id,
|
||||||
AnnualBilling.financial_year_start >= financial_year_start
|
AnnualBilling.financial_year_start > financial_year_start
|
||||||
).update(
|
).update(
|
||||||
{'free_sms_fragment_limit': free_sms_fragment_limit}
|
{'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.date_util import get_current_financial_year_start_year
|
||||||
|
|
||||||
from app.dao.annual_billing_dao import (
|
from app.dao.annual_billing_dao import (
|
||||||
dao_create_or_update_annual_billing_for_year,
|
dao_create_or_update_annual_billing_for_year,
|
||||||
dao_get_free_sms_fragment_limit_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
|
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
|
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()
|
current_year = get_current_financial_year_start_year()
|
||||||
limits = [1, 2, 3, 4]
|
limits = [1, 2, 3, 4]
|
||||||
create_annual_billing(sample_service.id, limits[0], current_year - 1)
|
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[2], current_year + 1)
|
||||||
create_annual_billing(sample_service.id, limits[3], current_year + 2)
|
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
|
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
|
# current year is not created
|
||||||
|
|||||||
Reference in New Issue
Block a user