Skip to content

Commit

Permalink
Implmentation of Unittest cases (#466)
Browse files Browse the repository at this point in the history
* Implmentation of Unittest cases

* Minor debugging

* Corrections

* Minor corrections on feedback
  • Loading branch information
thebelrobot authored Jan 12, 2024
1 parent 41b222e commit 1176170
Show file tree
Hide file tree
Showing 16 changed files with 573 additions and 10 deletions.
3 changes: 3 additions & 0 deletions api/models/ivr_prompt_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ class IvrPromptResponseQuery(BaseQuery):
def get_by_call_log_id(self, call_log_id):
return self.filter(IvrPromptResponse.call_log_id == call_log_id).all()

def get_latest_prompt(self):
return self.filter().order_by(IvrPromptResponse.id.desc()).first()


class IvrPromptResponse(TimestampMixin, db.Model):
query_class = IvrPromptResponseQuery
Expand Down
3 changes: 3 additions & 0 deletions api/models/registration.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ def get_latest_by_phone(self, phone):
.first()
)

def get_latest_record(self):
return self.filter().order_by(Registration.id.desc()).first()


class Registration(TimestampMixin, db.Model):
query_class = RegistrationQuery
Expand Down
3 changes: 3 additions & 0 deletions api/models/webhook_transaction_log.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ def get_by_id(self, webhook_transaction_log_id):
WebhookTransactionLog.id == webhook_transaction_log_id
).first()

def get_last_record(self):
return self.filter().order_by(WebhookTransactionLog.id.desc()).first()


class WebhookTransactionLog(TimestampMixin, db.Model):
query_class = WebhookTransactionLogQuery
Expand Down
14 changes: 14 additions & 0 deletions migrations/seeders/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from migrations.seeders.user import *
from migrations.seeders.system_phone import *
from migrations.seeders.partner import *
from migrations.seeders.registration import *
from migrations.seeders.program import *
from migrations.seeders.language import *
from migrations.seeders.content_version import *
from migrations.seeders.content import *
from migrations.seeders.user_program import *
from migrations.seeders.module import *
from migrations.seeders.module_content import *
from migrations.seeders.program_module import *
from migrations.seeders.program_sequence import *
from migrations.seeders.call_log import *
25 changes: 25 additions & 0 deletions migrations/seeders/call_log.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from faker import Faker
from uuid import uuid4
from api.models import CallLog as CallLogInstance
from api import db


class CallLog:
faker = Faker() # Kept for future use

def create_call_log(self, phone_number, content_id, content_version_id):
call_log_record = CallLogInstance()
call_log_record.user_phone_number = phone_number
call_log_record.content_id = content_id
call_log_record.content_version_id = content_version_id
call_log_record.flow_run_uuid = str(uuid4())

db.session.add(call_log_record)
db.session.commit()


if __name__ == "__main__":
seeder = CallLog()
seeder.create_call_log(
phone_number="1234567890", content_id=1, content_version_id=1
)
2 changes: 2 additions & 0 deletions migrations/seeders/content_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ def create_content_version(self, language_id: int, contents: List[ContentModel])
db.session.add_all(content_version_instances)
db.session.commit()

return content_version_instances


if __name__ == "__main__":
seeder = ContentVersion()
Expand Down
23 changes: 23 additions & 0 deletions migrations/seeders/module.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import datetime
from faker import Faker
from api.models import Module as ModuleInstance
from api import db


class Module:
faker = Faker() # Kept for future use

def create_module(self, program_id):
module_instance = ModuleInstance()
module_instance.name = "Test Module"
module_instance.program_id = program_id

db.session.add(module_instance)
db.session.commit()

return module_instance


if __name__ == "__main__":
seeder = Module()
seeder.create_module(program_id=1)
23 changes: 23 additions & 0 deletions migrations/seeders/module_content.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import datetime
from faker import Faker
from api.models import ModuleContent as ModuleContentInstance
from api import db


class ModuleContent:
faker = Faker() # Kept for future use

def create_module_content(self, module_id, content_id):
module_instance = ModuleContentInstance()
module_instance.module_id = module_id
module_instance.content_id = content_id

db.session.add(module_instance)
db.session.commit()

return module_instance


if __name__ == "__main__":
seeder = ModuleContent()
seeder.create_module_content(module_id=1, content_id=1)
24 changes: 24 additions & 0 deletions migrations/seeders/program_module.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import datetime
from faker import Faker
from api.models import ProgramModule as ProgramModuleInstance
from api import db


class ProgramModule:
faker = Faker() # Kept for future use

def create_program_module(self, program_id, module_id, sequence_id=1):
program_module_instance = ProgramModuleInstance()
program_module_instance.program_id = program_id
program_module_instance.module_id = module_id
program_module_instance.sequence = sequence_id

db.session.add(program_module_instance)
db.session.commit()

return program_module_instance


if __name__ == "__main__":
seeder = ProgramModule()
seeder.create_program_module(program_id=1, module_id=1)
24 changes: 24 additions & 0 deletions migrations/seeders/program_sequence.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import datetime
from faker import Faker
from api.models import ProgramSequence as ProgramSequenceInstance
from api import db


class ProgramSequence:
faker = Faker() # Kept for future use

def create_program_sequence(self, content_id, program_id, module_id):
program_sequence_instance = ProgramSequenceInstance()
program_sequence_instance.program_id = program_id
program_sequence_instance.content_id = content_id
program_sequence_instance.module_id = module_id

db.session.add(program_sequence_instance)
db.session.commit()

return program_sequence_instance


if __name__ == "__main__":
seeder = ProgramSequence()
seeder.create_program_sequence(program_id=1, content_id=1, module_id=1)
39 changes: 29 additions & 10 deletions migrations/seeders/testing_seeder.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
from faker import Faker
from typing import List
from migrations.seeders.user import User
from migrations.seeders.system_phone import SystemPhone
from migrations.seeders.partner import Partner
from migrations.seeders.registration import Registration
from migrations.seeders.program import Program
from migrations.seeders.language import Language
from migrations.seeders.content_version import ContentVersion
from migrations.seeders.content import Content
from migrations.seeders.user_program import UserProgram
from migrations.seeders import *


def main():
Expand All @@ -21,7 +13,7 @@ def main():
created_contents = content.create_content()

content_version = ContentVersion()
content_version.create_content_version(
created_content_versions = content_version.create_content_version(
language_id=language_instance.id, contents=created_contents
)

Expand Down Expand Up @@ -49,3 +41,30 @@ def main():
created_user_programs: List = user_program.create_user_program(
created_programs, [user.user_id for user in created_user_instances]
)

module = Module()
created_module = module.create_module(program_id=created_programs[0].id)

module_content = ModuleContent()
created_module_content = module_content.create_module_content(
module_id=created_module.id, content_id=created_contents[0].id
)

program_module = ProgramModule()
create_program_module = program_module.create_program_module(
program_id=created_programs[0].id, module_id=created_module.id
)

program_sequence = ProgramSequence()
created_program_sequence = program_sequence.create_program_sequence(
program_id=created_programs[0].id,
content_id=created_contents[0].id,
module_id=created_module.id,
)

call_log = CallLog()
call_log.create_call_log(
phone_number=created_user_instances[0].phone,
content_id=created_content_versions[0].content_id,
content_version_id=created_content_versions[0].id,
)
Loading

1 comment on commit 1176170

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverage

Tests Skipped Failures Errors Time
8 0 💤 0 ❌ 0 🔥 1.462s ⏱️

Please sign in to comment.