Skip to content

Commit

Permalink
fix: Fixed cron job and added tests - EVent Invoice Due Marking
Browse files Browse the repository at this point in the history
  • Loading branch information
mrsaicharan1 committed Oct 6, 2019
1 parent e35f8f1 commit 5de71d1
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 6 deletions.
14 changes: 8 additions & 6 deletions app/api/helpers/scheduled_jobs.py
Original file line number Diff line number Diff line change
Expand Up @@ -164,12 +164,14 @@ def expire_pending_tickets():
def event_invoices_mark_due():
from app import current_app as app
with app.app_context():
db.session.query(EventInvoice).\
filter(EventInvoice.status == 'upcoming',
EventInvoice.event.ends_at >= datetime.datetime.now(),
(EventInvoice.created_at + datetime.timedelta(days=30) <=
datetime.datetime.now())).\
update({'status': 'due'})
list_invoices = db.session.query(EventInvoice).join(Event).\
filter(EventInvoice.status == 'upcoming',
Event.ends_at >= datetime.datetime.now(),
(EventInvoice.created_at + datetime.timedelta(days=30) <=
datetime.datetime.now())).all()
event_invoice_obj = db.session.query(EventInvoice)
for invoice in list_invoices:
event_invoice_obj.filter_by(id=invoice.id).one().update({'status': 'due'})

db.session.commit()

Expand Down
32 changes: 32 additions & 0 deletions tests/all/integration/api/helpers/test_scheduled_jobs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import unittest
import datetime

from app import current_app as app, db
from app.factories.event_invoice import EventInvoiceFactory
from app.api.helpers.db import save_to_db
from app.models.event_invoice import EventInvoice
from app.factories.event import EventFactoryBasic
from app.api.helpers.scheduled_jobs import event_invoices_mark_due

from tests.all.integration.setup_database import Setup
from tests.all.integration.utils import OpenEventTestCase


class TestScheduledJobs(OpenEventTestCase):
def setUp(self):
self.app = Setup.create_app()

def test_event_invoices_mark_due(self):
"""Method to test marking of event invoices as due"""

with app.test_request_context():
event_invoice_obj = EventInvoiceFactory(event__ends_at=datetime.datetime(2019, 7, 20))
save_to_db(event_invoice_obj)
event_invoices_mark_due()
status = db.session.query(EventInvoice).\
filter(EventInvoice.id == event_invoice_obj.id).first().status
self.assertEqual(status, "due")


if __name__ == '__main__':
unittest.main()

0 comments on commit 5de71d1

Please sign in to comment.