Skip to content

Commit

Permalink
chore(api/tests): added tests for project view ordering by eol
Browse files Browse the repository at this point in the history
  • Loading branch information
c0rydoras committed Aug 21, 2023
1 parent 8330fe4 commit 0858845
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 33 deletions.
40 changes: 7 additions & 33 deletions api/outdated/outdated/factories.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,53 +7,27 @@
from ..user.factories import UserFactory
from . import models

DEPENDENCIES = [
("django", "PIP"),
("djangorestframework", "PIP"),
("djangorestframework-jsonapi", "PIP"),
("django-filter", "PIP"),
("django-cors-headers", "PIP"),
("django-extensions", "PIP"),
("django-debug-toolbar", "PIP"),
("django-environ", "PIP"),
("flake8", "PIP"),
("flake8-bugbear", "PIP"),
("flake8-tuple", "PIP"),
("flake8-isort", "PIP"),
("flake8-debugger", "PIP"),
("pytest", "PIP"),
("pytest-django", "PIP"),
("pytest-cov", "PIP"),
("pytest-vcr", "PIP"),
("pytest-factoryboy", "PIP"),
("python-dateutil", "PIP"),
("ember-source", "NPM"),
("ember-cli", "NPM"),
("ember-data", "NPM"),
("ember-cli-htmlbars", "NPM"),
("ember-cli-htmlbars-inline-precompile", "NPM"),
("ember-cli-babel", "NPM"),
("ember-cli-qunit", "NPM"),
("@glimmer/component", "NPM"),
("@glimmer/tracking", "NPM"),
]
PROVIDERS = ["PIP", "NPM"]


class DependencyFactory(DjangoModelFactory):
name, provider = random.choice(DEPENDENCIES)
name = Sequence(lambda n: "ember-%s" % n)
provider = random.choice(PROVIDERS)

class Meta:
model = models.Dependency
django_get_or_create = ("name", "provider")


class ReleaseVersionFactory(DjangoModelFactory):
class Meta:
model = models.ReleaseVersion
django_get_or_create = ("dependency", "major_version", "minor_version")

dependency = SubFactory(DependencyFactory)
end_of_life = Faker("date_this_year")
major_version = random.randint(0, 10)
minor_version = random.randint(0, 10)
minor_version = Sequence(lambda n: n)

class Params:
undefined = Trait(end_of_life=None)
Expand All @@ -68,7 +42,7 @@ class Params:

class VersionFactory(DjangoModelFactory):
release_version = SubFactory(ReleaseVersionFactory)
patch_version = random.randint(0, 28)
patch_version = Sequence(lambda n: n)
release_date = Faker("date_this_year")

class Meta:
Expand Down
32 changes: 32 additions & 0 deletions api/outdated/outdated/tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,38 @@ def test_project(client, project_factory, version_factory, defined):
assert generated_project.status == "UNDEFINED"


def test_project_ordered_by_eol(
client, project_factory, release_version_factory, version_factory
):
outdated_version = version_factory(
release_version=release_version_factory(outdated=True)
)
warning_version = version_factory(
release_version=release_version_factory(warning=True)
)
up_to_date_version = version_factory(
release_version=release_version_factory(up_to_date=True)
)

project_last = project_factory(
name="A project", versioned_dependencies=[up_to_date_version]
)
project_middle = project_factory(
name="B project", versioned_dependencies=[warning_version]
)
project_first = project_factory(
name="C project", versioned_dependencies=[outdated_version]
)

url = reverse("project-list")
resp = client.get(url)
json = resp.json()

assert json["data"][0]["id"] == str(project_first.pk)
assert json["data"][1]["id"] == str(project_middle.pk)
assert json["data"][2]["id"] == str(project_last.pk)


def test_maintainer(client, maintainer):

assert Maintainer.objects.count() == 1
Expand Down

0 comments on commit 0858845

Please sign in to comment.