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
from django.utils import timezone
<<<<<<< HEAD
from la_chariotte.order.models import GroupedOrder
@ -8,19 +9,33 @@ from la_chariotte.order.models import GroupedOrder
class TestGroupedOrdersModel:
"""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):
"""
is_ongoing() returns True if the deadline is not crossed
"""
deadline = timezone.now() + datetime.timedelta(days=10)
<<<<<<< HEAD
ongoing_gr_order = GroupedOrder(deadline=deadline)
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):
"""
is_ongoing() returns False if the deadline is crossed
"""
deadline = timezone.now() - datetime.timedelta(hours=1)
<<<<<<< HEAD
old_gr_order = GroupedOrder(deadline=deadline)
assert not old_gr_order.is_ongoing()
@ -48,3 +63,7 @@ class TestGroupedOrdersModel:
del_date = timezone.now().date() + datetime.timedelta(days=1)
old_gr_order = GroupedOrder(deadline=deadline, delivery_date=del_date)
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 pytest
<<<<<<< HEAD
from django.urls import reverse
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):
=======
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.
"""
date = timezone.now().date() + datetime.timedelta(days=days_before_delivery_date)
deadline = timezone.now() + datetime.timedelta(days=days_before_deadline)
<<<<<<< HEAD
return GroupedOrder.objects.create(
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"
)
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 "Pas de commande groupée pour l'instant" not in response.content.decode()
assert "Commandes groupées à venir" in response.content.decode()
assert "Livraison à venir" 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(
@ -95,11 +132,27 @@ class TestGroupedOrderIndexView:
days_before_delivery_date=-1, days_before_deadline=-3, name="passée"
)
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 "Pas de commande groupée pour l'instant" 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 passée" in response.content.decode()
<<<<<<< HEAD
assert len(response.context["grouped_order_list"]["old_grouped_orders"]) == 1
assert (
len(
@ -125,11 +178,25 @@ class TestGroupedOrderIndexView:
days_before_delivery_date=5, days_before_deadline=2, name="future"
)
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 "Pas de commande groupée pour l'instant" not in response.content.decode()
assert "Commandes groupées à venir" in response.content.decode()
assert "Livraison à venir" 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(
@ -191,3 +258,9 @@ class TestGroupedOrderDetailView:
assert item.ordered_nb == 1
order = Order.objects.first()
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