install pytest

This commit is contained in:
Laetitia Getti 2023-03-30 14:14:32 +02:00
parent 09e21f7e5b
commit 0aaef7aea8
3 changed files with 94 additions and 0 deletions

View file

@ -1,6 +1,7 @@
import datetime import datetime
from django.utils import timezone from django.utils import timezone
<<<<<<< HEAD
from la_chariotte.order.models import GroupedOrder from la_chariotte.order.models import GroupedOrder
@ -8,19 +9,33 @@ from la_chariotte.order.models import GroupedOrder
class TestGroupedOrdersModel: class TestGroupedOrdersModel:
"""Tests for Grouped orders model""" """Tests for Grouped orders model"""
=======
from la_chariotte.order.models import Grouped_order
class TestGroupedOrdersModel():
"""Tests for Grouped orders model"""
>>>>>>> 9cc7783 (install pytest)
def test_is_ongoing_with_ongoing_grouped_order(self): def test_is_ongoing_with_ongoing_grouped_order(self):
""" """
is_ongoing() returns True if the deadline is not crossed is_ongoing() returns True if the deadline is not crossed
""" """
deadline = timezone.now() + datetime.timedelta(days=10) deadline = timezone.now() + datetime.timedelta(days=10)
<<<<<<< HEAD
ongoing_gr_order = GroupedOrder(deadline=deadline) ongoing_gr_order = GroupedOrder(deadline=deadline)
assert ongoing_gr_order.is_ongoing() assert ongoing_gr_order.is_ongoing()
=======
ongoing_gr_order = Grouped_order(deadline=deadline)
assert ongoing_gr_order.is_ongoing() == True
>>>>>>> 9cc7783 (install pytest)
def test_is_ongoing_with_old_grouped_order(self): def test_is_ongoing_with_old_grouped_order(self):
""" """
is_ongoing() returns False if the deadline is crossed is_ongoing() returns False if the deadline is crossed
""" """
deadline = timezone.now() - datetime.timedelta(hours=1) deadline = timezone.now() - datetime.timedelta(hours=1)
<<<<<<< HEAD
old_gr_order = GroupedOrder(deadline=deadline) old_gr_order = GroupedOrder(deadline=deadline)
assert not old_gr_order.is_ongoing() assert not old_gr_order.is_ongoing()
@ -48,3 +63,7 @@ class TestGroupedOrdersModel:
del_date = timezone.now().date() + datetime.timedelta(days=1) del_date = timezone.now().date() + datetime.timedelta(days=1)
old_gr_order = GroupedOrder(deadline=deadline, delivery_date=del_date) old_gr_order = GroupedOrder(deadline=deadline, delivery_date=del_date)
assert old_gr_order.is_to_be_delivered() assert old_gr_order.is_to_be_delivered()
=======
ongoing_gr_order = Grouped_order(deadline=deadline)
assert not ongoing_gr_order.is_ongoing()
>>>>>>> 9cc7783 (install pytest)

View file

@ -1,6 +1,7 @@
import datetime import datetime
import pytest import pytest
<<<<<<< HEAD
from django.urls import reverse from django.urls import reverse
from django.utils import timezone from django.utils import timezone
@ -10,11 +11,22 @@ pytestmark = pytest.mark.django_db
def create_grouped_order(days_before_delivery_date, days_before_deadline, name): def create_grouped_order(days_before_delivery_date, days_before_deadline, name):
=======
from django.urls import reverse
from django.utils import timezone
from la_chariotte.order.models import Grouped_order
pytestmark = pytest.mark.django_db
def create_grouped_order(days_before_delivery_date,days_before_deadline,name):
>>>>>>> 9cc7783 (install pytest)
""" """
Creates a grouped order. Creates a grouped order.
""" """
date = timezone.now().date() + datetime.timedelta(days=days_before_delivery_date) date = timezone.now().date() + datetime.timedelta(days=days_before_delivery_date)
deadline = timezone.now() + datetime.timedelta(days=days_before_deadline) deadline = timezone.now() + datetime.timedelta(days=days_before_deadline)
<<<<<<< HEAD
return GroupedOrder.objects.create( return GroupedOrder.objects.create(
name=name, orga="test orga", delivery_date=date, deadline=deadline name=name, orga="test orga", delivery_date=date, deadline=deadline
) )
@ -57,11 +69,36 @@ class TestGroupedOrderIndexView:
days_before_delivery_date=-1, days_before_deadline=-3, name="old" days_before_delivery_date=-1, days_before_deadline=-3, name="old"
) )
response = client.get(reverse("order:index")) response = client.get(reverse("order:index"))
=======
return Grouped_order.objects.create(name=name, orga="test orga",delivery_date=date,deadline=deadline)
class TestGroupedOrderIndexView:
def test_no_grouped_orders(self,client):
"""
If no grouped order exist, an appropriate message is displayed
"""
response = client.get(reverse('order:index'))
assert response.status_code == 200
assert "Pas de commande groupée pour l'instant" in response.content.decode()
assert len(response.context['grouped_order_list']['old_grouped_orders']) == 0
assert len(response.context['grouped_order_list']['orders_over_grouped_orders']) == 0
assert len(response.context['grouped_order_list']['incoming_grouped_orders']) == 0
def test_grouped_orders_in_right_section(self,client):
"""
According to their delivery date and deadline, grouped orders are placed in the correct section : several gr orders
"""
future_grouped_order = create_grouped_order(days_before_delivery_date=5,days_before_deadline=2,name="future")
crossed_deadline_gr_order = create_grouped_order(days_before_delivery_date=2, days_before_deadline=-1,name="crossed deadline")
old_gr_order = create_grouped_order(days_before_delivery_date=-1, days_before_deadline=-3,name="old")
response = client.get(reverse('order:index'))
>>>>>>> 9cc7783 (install pytest)
assert response.status_code == 200 assert response.status_code == 200
assert "Pas de commande groupée pour l'instant" not in response.content.decode() assert "Pas de commande groupée pour l'instant" not in response.content.decode()
assert "Commandes groupées à venir" in response.content.decode() assert "Commandes groupées à venir" in response.content.decode()
assert "Livraison à venir" in response.content.decode() assert "Livraison à venir" in response.content.decode()
assert "Livraison passée" in response.content.decode() assert "Livraison passée" in response.content.decode()
<<<<<<< HEAD
assert len(response.context["grouped_order_list"]["old_grouped_orders"]) == 1 assert len(response.context["grouped_order_list"]["old_grouped_orders"]) == 1
assert ( assert (
len( len(
@ -95,11 +132,27 @@ class TestGroupedOrderIndexView:
days_before_delivery_date=-1, days_before_deadline=-3, name="passée" days_before_delivery_date=-1, days_before_deadline=-3, name="passée"
) )
response = client.get(reverse("order:index")) response = client.get(reverse("order:index"))
=======
assert len(response.context['grouped_order_list']['old_grouped_orders']) == 1
assert len(response.context['grouped_order_list']['orders_over_grouped_orders']) == 1
assert len(response.context['grouped_order_list']['incoming_grouped_orders']) == 1
assert response.context['grouped_order_list']['old_grouped_orders'][0] == old_gr_order
assert response.context['grouped_order_list']['orders_over_grouped_orders'][0] == crossed_deadline_gr_order
assert response.context['grouped_order_list']['incoming_grouped_orders'][0] == future_grouped_order
def test_grouped_orders_in_right_section__with_only_old(self,client):
"""
According to their delivery date and deadline, grouped orders are placed in correct section : only old gr order
"""
old_gr_order = create_grouped_order(days_before_delivery_date=-1, days_before_deadline=-3,name="passée")
response = client.get(reverse('order:index'))
>>>>>>> 9cc7783 (install pytest)
assert response.status_code == 200 assert response.status_code == 200
assert "Pas de commande groupée pour l'instant" not in response.content.decode() assert "Pas de commande groupée pour l'instant" not in response.content.decode()
assert "Commandes groupées à venir" not in response.content.decode() assert "Commandes groupées à venir" not in response.content.decode()
assert "Livraison à venir" not in response.content.decode() assert "Livraison à venir" not in response.content.decode()
assert "Livraison passée" in response.content.decode() assert "Livraison passée" in response.content.decode()
<<<<<<< HEAD
assert len(response.context["grouped_order_list"]["old_grouped_orders"]) == 1 assert len(response.context["grouped_order_list"]["old_grouped_orders"]) == 1
assert ( assert (
len( len(
@ -125,11 +178,25 @@ class TestGroupedOrderIndexView:
days_before_delivery_date=5, days_before_deadline=2, name="future" days_before_delivery_date=5, days_before_deadline=2, name="future"
) )
response = client.get(reverse("order:index")) response = client.get(reverse("order:index"))
=======
assert len(response.context['grouped_order_list']['old_grouped_orders']) == 1
assert len(response.context['grouped_order_list']['orders_over_grouped_orders']) == 0
assert len(response.context['grouped_order_list']['incoming_grouped_orders']) == 0
assert response.context['grouped_order_list']['old_grouped_orders'][0] == old_gr_order
def test_grouped_orders_in_right_section__with_only_future(self,client):
"""
According to their delivery date and deadline, grouped orders are placed in correct section : only incoming gr order
"""
future_grouped_order = create_grouped_order(days_before_delivery_date=5,days_before_deadline=2,name="future")
response = client.get(reverse('order:index'))
>>>>>>> 9cc7783 (install pytest)
assert response.status_code == 200 assert response.status_code == 200
assert "Pas de commande groupée pour l'instant" not in response.content.decode() assert "Pas de commande groupée pour l'instant" not in response.content.decode()
assert "Commandes groupées à venir" in response.content.decode() assert "Commandes groupées à venir" in response.content.decode()
assert "Livraison à venir" not in response.content.decode() assert "Livraison à venir" not in response.content.decode()
assert "Livraison passée" not in response.content.decode() assert "Livraison passée" not in response.content.decode()
<<<<<<< HEAD
assert len(response.context["grouped_order_list"]["old_grouped_orders"]) == 0 assert len(response.context["grouped_order_list"]["old_grouped_orders"]) == 0
assert ( assert (
len( len(
@ -191,3 +258,9 @@ class TestGroupedOrderDetailView:
assert item.ordered_nb == 1 assert item.ordered_nb == 1
order = Order.objects.first() order = Order.objects.first()
assert order.ordered_items.count() == 1 assert order.ordered_items.count() == 1
=======
assert len(response.context['grouped_order_list']['old_grouped_orders']) == 0
assert len(response.context['grouped_order_list']['orders_over_grouped_orders']) == 0
assert len(response.context['grouped_order_list']['incoming_grouped_orders']) == 1
assert response.context['grouped_order_list']['incoming_grouped_orders'][0] == future_grouped_order
>>>>>>> 9cc7783 (install pytest)

2
setup.cfg Normal file
View file

@ -0,0 +1,2 @@
[tool:pytest]
DJANGO_SETTINGS_MODULE = la_chariotte.settings