Skip to content

Commit c61983d

Browse files
committed
fix: Fixed cron job and added tests - EVent Invoice Due Marking
1 parent e35f8f1 commit c61983d

File tree

2 files changed

+39
-6
lines changed

2 files changed

+39
-6
lines changed

app/api/helpers/scheduled_jobs.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -164,12 +164,13 @@ 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'})
167+
event_invoices = db.session.query(EventInvoice).join(Event).\
168+
filter(EventInvoice.status == 'upcoming',
169+
Event.ends_at >= datetime.datetime.now(),
170+
(EventInvoice.created_at + datetime.timedelta(days=30) <=
171+
datetime.datetime.now())).all()
172+
for invoice in event_invoices:
173+
invoice.status = "due"
173174

174175
db.session.commit()
175176

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import unittest
2+
import datetime
3+
4+
from app import current_app as app, db
5+
from app.factories.event_invoice import EventInvoiceFactory
6+
from app.api.helpers.db import save_to_db
7+
from app.models.event_invoice import EventInvoice
8+
from app.factories.event import EventFactoryBasic
9+
from app.api.helpers.scheduled_jobs import event_invoices_mark_due
10+
11+
from tests.all.integration.setup_database import Setup
12+
from tests.all.integration.utils import OpenEventTestCase
13+
14+
15+
class TestScheduledJobs(OpenEventTestCase):
16+
def setUp(self):
17+
self.app = Setup.create_app()
18+
19+
def test_event_invoices_mark_due(self):
20+
"""Method to test marking of event invoices as due"""
21+
22+
with app.test_request_context():
23+
event_invoice_obj = EventInvoiceFactory(event__ends_at=datetime.datetime(2019, 7, 20))
24+
save_to_db(event_invoice_obj)
25+
event_invoices_mark_due()
26+
status = db.session.query(EventInvoice).\
27+
filter(EventInvoice.id == event_invoice_obj.id).first().status
28+
self.assertEqual(status, "due")
29+
30+
31+
if __name__ == '__main__':
32+
unittest.main()

0 commit comments

Comments
 (0)