Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feedback tests #1463

Merged
merged 1 commit into from
Jul 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 14 additions & 3 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,24 +26,25 @@
from dispatch.database.core import engine, sessionmaker

from .factories import (
OrganizationFactory,
ConferenceFactory,
ConversationFactory,
DefinitionFactory,
DocumentFactory,
EventFactory,
FeedbackFactory,
GroupFactory,
IncidentFactory,
IncidentPriorityFactory,
IncidentTypeFactory,
IndividualContactFactory,
OrganizationFactory,
ParticipantFactory,
ParticipantRoleFactory,
ProjectFactory,
RecommendationMatchFactory,
RecommendationFactory,
ServiceFactory,
RecommendationMatchFactory,
ReportFactory,
ServiceFactory,
StorageFactory,
TagFactory,
TaskFactory,
Expand Down Expand Up @@ -398,3 +399,13 @@ def event(session):
@pytest.fixture
def events(session):
return [EventFactory(), EventFactory()]


@pytest.fixture
def feedback(session):
return FeedbackFactory()


@pytest.fixture
def feedbacks(session):
return [FeedbackFactory(), FeedbackFactory()]
16 changes: 13 additions & 3 deletions tests/event/test_event_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,21 @@ def test_create(session):

@pytest.mark.skip
def test_update(session, event):
from dispatch.event.event import update
from dispatch.event.service import update
from dispatch.event.models import EventUpdate

source = "Source Updated"
event_in = EventUpdate(source=source)
uuid = uuid4()
started_at = datetime.datetime.now()
ended_at = datetime.datetime.now()
source = "Dispatch event source updated"
description = "Dispatch event description"
event_in = EventUpdate(
uuid=uuid,
started_at=started_at,
ended_at=ended_at,
source=source,
description=description,
)
event = update(db_session=session, event=event, event_in=event_in)
assert event.source == source

Expand Down
38 changes: 34 additions & 4 deletions tests/factories.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,30 +9,31 @@

from dispatch.database.core import SessionLocal

from dispatch.auth.models import DispatchUser # noqa
from dispatch.conference.models import Conference
from dispatch.conversation.models import Conversation
from dispatch.definition.models import Definition
from dispatch.document.models import Document
from dispatch.event.models import Event
from dispatch.feedback.models import Feedback
from dispatch.group.models import Group
from dispatch.incident.models import Incident
from dispatch.incident_priority.models import IncidentPriority
from dispatch.incident_type.models import IncidentType
from dispatch.individual.models import IndividualContact
from dispatch.organization.models import Organization
from dispatch.participant.models import Participant
from dispatch.participant_role.models import ParticipantRole
from dispatch.project.models import Project
from dispatch.report.models import Report
from dispatch.route.models import Recommendation, RecommendationMatch
from dispatch.service.models import Service
from dispatch.report.models import Report
from dispatch.storage.models import Storage
from dispatch.tag.models import Tag
from dispatch.task.models import Task
from dispatch.team.models import TeamContact
from dispatch.term.models import Term
from dispatch.ticket.models import Ticket
from dispatch.auth.models import DispatchUser # noqa
from dispatch.project.models import Project
from dispatch.organization.models import Organization


class BaseFactory(SQLAlchemyModelFactory):
Expand Down Expand Up @@ -650,3 +651,32 @@ class ConferenceFactory(ResourceBaseFactory):

class Meta:
model = Conference


class FeedbackFactory(BaseFactory):
"""Feedback Factory."""

created_at = FuzzyDateTime(datetime(2020, 1, 1, tzinfo=UTC))
rating = FuzzyText()
feedback = FuzzyText()

class Meta:
"""Factory Configuration."""

model = Feedback

@post_generation
def incident(self, create, extracted, **kwargs):
if not create:
return

if extracted:
self.incident_id = extracted.id

@post_generation
def participant(self, create, extracted, **kwargs):
if not create:
return

if extracted:
self.participant_id = extracted.id
51 changes: 51 additions & 0 deletions tests/feedback/test_feedback_service.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import pytest


def test_get_feedback(session, feedback):
from dispatch.feedback.service import get

t_feedback = get(db_session=session, feedback_id=feedback.id)
assert t_feedback.id == feedback.id


def test_get_all(session, feedbacks):
from dispatch.feedback.service import get_all

t_feedbacks = get_all(db_session=session).all()
assert len(t_feedbacks) > 1


def test_create(session):
from dispatch.feedback.service import create
from dispatch.feedback.models import FeedbackCreate

rating = "XXX"
feedback = "XXX"

feedback_in = FeedbackCreate(
rating=rating,
feedback=feedback,
)
feedback = create(db_session=session, feedback_in=feedback_in)
assert feedback


@pytest.mark.skip
def test_update(session, feedback):
from dispatch.feedback.service import update
from dispatch.feedback.models import FeedbackUpdate

rating = "Updated rating"

feedback_in = FeedbackUpdate(
rating=rating,
)
feedback = update(db_session=session, feedback=feedback, feedback_in=feedback_in)
assert feedback.rating == rating


def test_delete(session, feedback):
from dispatch.feedback.service import delete, get

delete(db_session=session, feedback_id=feedback.id)
assert not get(db_session=session, feedback_id=feedback.id)