Skip to content

Commit 0754df0

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

File tree

2 files changed

+38
-2
lines changed

2 files changed

+38
-2
lines changed

app/api/helpers/scheduled_jobs.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,9 @@ 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).\
167+
db.session.query(EventInvoice).join(Event).\
168168
filter(EventInvoice.status == 'upcoming',
169-
EventInvoice.event.ends_at >= datetime.datetime.now(),
169+
Event.ends_at >= datetime.datetime.now(),
170170
(EventInvoice.created_at + datetime.timedelta(days=30) <=
171171
datetime.datetime.now())).\
172172
update({'status': 'due'})
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import unittest
2+
from datetime 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()
24+
event_obj = EventFactoryBasic()
25+
event_obj.ends_at = datetime.date(2019, 7, 20)
26+
event_invoice_obj.event = event_obj
27+
save_to_db(event_obj)
28+
save_to_db(event_invoice_obj)
29+
event_invoices_mark_due()
30+
status = db.session.query(EventInvoice).\
31+
filter(EventInvoice.id == event_invoice_obj.id).first().status
32+
self.assertEqual(status, "due")
33+
34+
35+
if __name__ == '__main__':
36+
unittest.main()

0 commit comments

Comments
 (0)