diff --git a/la_chariotte/order/tests/test_models.py b/la_chariotte/order/tests/test_models.py index d5fff17..7398620 100644 --- a/la_chariotte/order/tests/test_models.py +++ b/la_chariotte/order/tests/test_models.py @@ -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) diff --git a/la_chariotte/order/tests/test_views.py b/la_chariotte/order/tests/test_views.py index 9e241bc..5e9edb3 100644 --- a/la_chariotte/order/tests/test_views.py +++ b/la_chariotte/order/tests/test_views.py @@ -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) diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..fdfd88b --- /dev/null +++ b/setup.cfg @@ -0,0 +1,2 @@ +[tool:pytest] +DJANGO_SETTINGS_MODULE = la_chariotte.settings \ No newline at end of file