Skip to content

Commit a8d515c

Browse files
committed
fix: Fixed cron job and added tests - EVent Invoice Due Marking
1 parent 9ff0f83 commit a8d515c

File tree

3 files changed

+43
-8
lines changed

3 files changed

+43
-8
lines changed

app/api/helpers/scheduled_jobs.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -164,14 +164,12 @@ def expire_pending_tickets():
164164
def event_invoices_mark_due():
165165
from app import current_app as app
166166
with app.app_context():
167-
db.session.query(EventInvoice).\
168-
filter(EventInvoice.status == 'upcoming',
169-
EventInvoice.event.ends_at >= datetime.datetime.now(),
170-
(EventInvoice.created_at + datetime.timedelta(days=30) <=
171-
datetime.datetime.now())).\
172-
update({'status': 'due'})
173-
174-
db.session.commit()
167+
db.session.query(EventInvoice).filter(
168+
EventInvoice.status == 'upcoming',
169+
Event.id == EventInvoice.event_id,
170+
Event.ends_at >= datetime.datetime.now(),
171+
(EventInvoice.created_at + datetime.timedelta(days=30) <= datetime.datetime.now())
172+
).update({EventInvoice.status: 'due'}, synchronize_session=False)
175173

176174

177175
def send_monthly_event_invoice():

app/factories/event_invoice.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class Meta:
2525
paid_via = "stripe"
2626
payment_mode = common.string_
2727
brand = common.string_
28+
created_at = common.date_
2829
exp_month = "10"
2930
exp_year = "2100"
3031
last4 = "1234"
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import datetime
2+
3+
from app import current_app as app, db
4+
from app.factories.event_invoice import EventInvoiceFactory
5+
from app.models.event_invoice import EventInvoice
6+
from app.api.helpers.scheduled_jobs import event_invoices_mark_due
7+
8+
from tests.all.integration.utils import OpenEventTestCase
9+
10+
11+
class TestScheduledJobs(OpenEventTestCase):
12+
13+
def test_event_invoices_mark_due(self):
14+
"""Method to test marking of event invoices as due"""
15+
16+
with app.test_request_context():
17+
event_invoice = EventInvoiceFactory(event__ends_at=datetime.datetime(2019, 7, 20))
18+
db.session.commit()
19+
event_invoice_id = event_invoice.id
20+
status_1 = EventInvoice.query.get(event_invoice_id).status
21+
22+
event_invoice = EventInvoiceFactory(status="paid")
23+
db.session.commit()
24+
event_invoice_id = event_invoice.id
25+
status_2 = EventInvoice.query.get(event_invoice_id).status
26+
27+
event_invoice = EventInvoiceFactory()
28+
event_invoice.created_at = datetime.datetime.now()
29+
db.session.commit()
30+
event_invoice_id = event_invoice.id
31+
status_3 = EventInvoice.query.get(event_invoice_id).status
32+
33+
event_invoices_mark_due()
34+
self.assertEqual(status_1, "due")
35+
self.assertNotEqual(status_2, "due")
36+
self.assertNotEqual(status_3, "due")

0 commit comments

Comments
 (0)