Skip to content

Commit

Permalink
Organization and Project CRUD tests (#1467)
Browse files Browse the repository at this point in the history
* Organization and Project CRUD tests

* Nits
  • Loading branch information
mvilanova authored Jul 21, 2021
1 parent 2047687 commit 79ec24a
Show file tree
Hide file tree
Showing 4 changed files with 146 additions and 2 deletions.
10 changes: 10 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -327,11 +327,21 @@ def organization(session):
return OrganizationFactory()


@pytest.fixture
def organizations(session):
return [OrganizationFactory(), OrganizationFactory()]


@pytest.fixture
def project(session):
return ProjectFactory()


@pytest.fixture
def projects(session):
return [ProjectFactory(), ProjectFactory()]


@pytest.fixture
def recommendation_accuracy(session):
return RecommendationMatchFactory()
Expand Down
15 changes: 13 additions & 2 deletions tests/factories.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,11 @@ class OrganizationFactory(BaseFactory):
"""Organization Factory."""

name = Sequence(lambda n: f"organization{n}")
description = FuzzyText()
default = Faker().pybool()
banner_enabled = Faker().pybool()
banner_color = FuzzyText()
banner_text = FuzzyText()

class Meta:
"""Factory Configuration."""
Expand All @@ -74,14 +79,18 @@ def projects(self, create, extracted, **kwargs):
if not create:
return

for project in extracted:
self.projects.append(project)
if extracted:
for project in extracted:
self.projects.append(project)


class ProjectFactory(BaseFactory):
"""Project Factory."""

name = Sequence(lambda n: f"project{n}")
description = FuzzyText()
default = Faker().pybool()
color = FuzzyText()

class Meta:
"""Factory Configuration."""
Expand Down Expand Up @@ -655,6 +664,8 @@ class ConferenceFactory(ResourceBaseFactory):
incident = SubFactory(IncidentFactory)

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

model = Conference


Expand Down
63 changes: 63 additions & 0 deletions tests/organization/test_organization_service.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import pytest


def test_get_organization(session, organization):
from dispatch.organization.service import get

t_organization = get(db_session=session, organization_id=organization.id)
assert t_organization.id == organization.id


def test_get_all(session, organizations):
from dispatch.organization.service import get_all

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


def test_create(session):
from dispatch.organization.service import create
from dispatch.organization.models import OrganizationCreate

name = "name"
description = "description"
default = True
banner_enabled = True
banner_color = "red"
banner_text = "banner"

organization_in = OrganizationCreate(
name=name,
description=description,
default=default,
banner_enabled=banner_enabled,
banner_color=banner_color,
banner_text=banner_text,
)
organization = create(db_session=session, organization_in=organization_in)
assert organization


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

name = "Updated name"

organization_in = OrganizationUpdate(
name=name,
)
organization = update(
db_session=session,
organization=organization,
organization_in=organization_in,
)
assert organization.name == name


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

delete(db_session=session, organization_id=organization.id)
assert not get(db_session=session, organization_id=organization.id)
60 changes: 60 additions & 0 deletions tests/project/test_project_service.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
import pytest


def test_get_project(session, project):
from dispatch.project.service import get

t_project = get(db_session=session, project_id=project.id)
assert t_project.id == project.id


def test_get_all(session, projects):
from dispatch.project.service import get_all

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


def test_create(session, organization):
from dispatch.project.service import create
from dispatch.project.models import ProjectCreate

name = "name"
description = "description"
default = True
color = "red"

project_in = ProjectCreate(
name=name,
description=description,
default=default,
color=color,
organization=organization,
)
project = create(db_session=session, project_in=project_in)
assert project


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

name = "Updated name"

project_in = ProjectUpdate(
name=name,
)
project = update(
db_session=session,
project=project,
project_in=project_in,
)
assert project.name == name


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

delete(db_session=session, project_id=project.id)
assert not get(db_session=session, project_id=project.id)

0 comments on commit 79ec24a

Please sign in to comment.