42 lines
2.3 KiB
Python
42 lines
2.3 KiB
Python
|
|
from django.test import TestCase
|
||
|
|
from django.contrib.auth import get_user_model
|
||
|
|
from apps.orgs.models import Organization, Role
|
||
|
|
from apps.mlstore.models import AgentModel, Agent
|
||
|
|
from apps.onboarding.models import OnboardingFlow, OnboardingPage, OnboardingField, OnboardingSession
|
||
|
|
|
||
|
|
User = get_user_model()
|
||
|
|
|
||
|
|
class OnboardingModelTests(TestCase):
|
||
|
|
def setUp(self):
|
||
|
|
self.user = User.objects.create_user(email_address='user@example.com', password='pass')
|
||
|
|
self.manager = User.objects.create_user(email_address='manager@example.com', password='pass', is_manager=True)
|
||
|
|
self.org = Organization.objects.create(name='Org', owner=self.manager)
|
||
|
|
self.role = Role.objects.create(name='Engineer', organization=self.org)
|
||
|
|
self.model = AgentModel.objects.create(name='test-model', version='v1', path='model.gguf')
|
||
|
|
self.agent = Agent.objects.create(model=self.model, organization=self.org)
|
||
|
|
|
||
|
|
def test_flow_str(self):
|
||
|
|
flow = OnboardingFlow.objects.create(role=self.role, agent=self.agent, title='Welcome', description='Intro')
|
||
|
|
self.assertIn('Welcome', str(flow))
|
||
|
|
self.assertIn(self.role.name, str(flow))
|
||
|
|
|
||
|
|
def test_page_and_field_str(self):
|
||
|
|
flow = OnboardingFlow.objects.create(role=self.role, agent=self.agent, title='Flow', description='')
|
||
|
|
page = OnboardingPage.objects.create(flow=flow, order=0, title='Page 1', body='Body')
|
||
|
|
field = OnboardingField.objects.create(page=page, order=0, key='q1', label='Question 1')
|
||
|
|
self.assertIn(flow.title, str(page))
|
||
|
|
self.assertIn(field.label, str(field))
|
||
|
|
|
||
|
|
def test_field_unique_key_per_page(self):
|
||
|
|
flow = OnboardingFlow.objects.create(role=self.role, agent=self.agent, title='Flow', description='')
|
||
|
|
page = OnboardingPage.objects.create(flow=flow, order=0, title='Page 1', body='Body')
|
||
|
|
OnboardingField.objects.create(page=page, order=0, key='dup', label='Dup 1')
|
||
|
|
with self.assertRaises(Exception):
|
||
|
|
OnboardingField.objects.create(page=page, order=1, key='dup', label='Dup 2')
|
||
|
|
|
||
|
|
def test_session_str(self):
|
||
|
|
flow = OnboardingFlow.objects.create(role=self.role, agent=self.agent, title='Flow', description='')
|
||
|
|
session = OnboardingSession.objects.create(flow=flow, user=self.user)
|
||
|
|
self.assertIn(self.user.email_address, str(session))
|
||
|
|
self.assertIn(flow.title, str(session))
|