def test_delete_billing_data(notify_db_session): service_1 = create_service(service_name='1') service_2 = create_service(service_name='2') sms_template = create_template(service_1, 'sms') email_template = create_template(service_1, 'email') other_service_template = create_template(service_2, 'sms') existing_rows_to_delete = [ # noqa create_ft_billing('2018-01-01', 'sms', sms_template, service_1, billable_unit=1), create_ft_billing('2018-01-01', 'email', email_template, service_1, billable_unit=2) ] other_day = create_ft_billing('2018-01-02', 'sms', sms_template, service_1, billable_unit=3) other_service = create_ft_billing('2018-01-01', 'sms', other_service_template, service_2, billable_unit=4) delete_billing_data_for_service_for_day('2018-01-01', service_1.id) current_rows = FactBilling.query.all() assert sorted(x.billable_units for x in current_rows) == sorted( [other_day.billable_units, other_service.billable_units])
def test_delete_billing_data(notify_db_session): service_1 = create_service(service_name="1") service_2 = create_service(service_name="2") sms_template = create_template(service_1, "sms") email_template = create_template(service_1, "email") other_service_template = create_template(service_2, "sms") existing_rows_to_delete = [ # noqa create_ft_billing("2018-01-01", "sms", sms_template, service_1, billable_unit=1), create_ft_billing("2018-01-01", "email", email_template, service_1, billable_unit=2), ] other_day = create_ft_billing("2018-01-02", "sms", sms_template, service_1, billable_unit=3) other_service = create_ft_billing("2018-01-01", "sms", other_service_template, service_2, billable_unit=4) delete_billing_data_for_service_for_day("2018-01-01", service_1.id) current_rows = FactBilling.query.all() assert sorted(x.billable_units for x in current_rows) == sorted([other_day.billable_units, other_service.billable_units])
def rebuild_ft_data(process_day, service): deleted_rows = delete_billing_data_for_service_for_day( process_day, service) current_app.logger.info( 'deleted {} existing billing rows for {} on {}'.format( deleted_rows, service, process_day)) transit_data = fetch_billing_data_for_day(process_day=process_day, service_id=service) # transit_data = every row that should exist for data in transit_data: # upsert existing rows update_fact_billing(data, process_day) current_app.logger.info( 'added/updated {} billing rows for {} on {}'.format( len(transit_data), service, process_day))