mirror of
https://framagit.org/la-chariotte/la-chariotte.git
synced 2025-05-01 03:12:26 +02:00
Remove extraneous comments, rename test functions.
- Removed uneeded comments (like previous commits). - Renamed some test functions to make them more explicit, and remove the associated docstring.
This commit is contained in:
parent
71cff89a00
commit
53d35094c0
4 changed files with 21 additions and 53 deletions
|
@ -15,49 +15,32 @@ class TestGroupedOrderModel:
|
|||
"""Tests for Grouped orders model"""
|
||||
|
||||
def test_is_open_with_ongoing_grouped_order(self):
|
||||
"""
|
||||
is_open() returns True if the deadline is not crossed
|
||||
"""
|
||||
deadline = timezone.now() + datetime.timedelta(days=10)
|
||||
|
||||
ongoing_gr_order = GroupedOrder(deadline=deadline)
|
||||
assert ongoing_gr_order.is_open()
|
||||
|
||||
def test_is_open_with_old_grouped_order(self):
|
||||
"""
|
||||
is_open() returns False if the deadline is crossed
|
||||
"""
|
||||
deadline = timezone.now() - datetime.timedelta(hours=1)
|
||||
old_gr_order = GroupedOrder(deadline=deadline)
|
||||
assert not old_gr_order.is_open()
|
||||
|
||||
def test_is_to_be_delivered_with_today_delivery(self):
|
||||
"""
|
||||
is_to_be_delivered() returns True if the delivery date is today
|
||||
"""
|
||||
del_date = timezone.now().date()
|
||||
gr_order = GroupedOrder(delivery_date=del_date)
|
||||
assert gr_order.is_to_be_delivered()
|
||||
|
||||
def test_is_to_be_delivered_with_old_grouped_order(self):
|
||||
"""
|
||||
is_to_be_delivered() returns False if the delivery date is passed
|
||||
"""
|
||||
del_date = timezone.now().date() - datetime.timedelta(days=1)
|
||||
old_gr_order = GroupedOrder(delivery_date=del_date)
|
||||
assert not old_gr_order.is_to_be_delivered()
|
||||
|
||||
def test_is_to_be_delivered_with_crossed_deadline_grouped_order(self):
|
||||
"""
|
||||
is_to_be_delivered() returns True even if the deadline is crossed
|
||||
"""
|
||||
deadline = timezone.now() - datetime.timedelta(hours=1)
|
||||
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()
|
||||
|
||||
def test_deadline_after_delivery_date(self, client_log):
|
||||
"""If the deadline is set after the delivery date, an validation error is raised"""
|
||||
def test_deadline_after_delivery_date_returns_an_error(self, client_log):
|
||||
assert GroupedOrder.objects.count() == 0
|
||||
create_gorder_url = reverse("order:create_grouped_order")
|
||||
response = client_log.get(create_gorder_url)
|
||||
|
@ -75,15 +58,13 @@ class TestGroupedOrderModel:
|
|||
)
|
||||
assert response.status_code == 200
|
||||
assert not response.context.get("form").is_valid()
|
||||
"La date limite de commande doit être avant la date de livraison" in response.content.decode()
|
||||
assert (
|
||||
response.context.get("form").errors["__all__"][0]
|
||||
== "La date limite de commande doit être avant la date de livraison"
|
||||
)
|
||||
assert GroupedOrder.objects.count() == 0
|
||||
|
||||
def test_deadline_same_day_as_delivery_date(self, client_log):
|
||||
"""If the deadline is set the seame day as delivery date, no validation error is raised"""
|
||||
def test_deadline_same_day_as_delivery_date_does_not_raise(self, client_log):
|
||||
assert GroupedOrder.objects.count() == 0
|
||||
create_gorder_url = reverse("order:create_grouped_order")
|
||||
response = client_log.get(create_gorder_url)
|
||||
|
@ -102,8 +83,7 @@ class TestGroupedOrderModel:
|
|||
assert response.status_code == 302
|
||||
assert GroupedOrder.objects.count() == 1
|
||||
|
||||
def test_delivery_date_in_past(self, client_log):
|
||||
"""If the delivery date is set into the past, a validation error is raised"""
|
||||
def test_delivery_date_in_past_raise_error(self, client_log):
|
||||
assert GroupedOrder.objects.count() == 0
|
||||
create_gorder_url = reverse("order:create_grouped_order")
|
||||
response = client_log.get(create_gorder_url)
|
||||
|
@ -139,11 +119,7 @@ class TestGroupedOrderModel:
|
|||
|
||||
|
||||
class TestItemModel:
|
||||
"""Tests for Item model"""
|
||||
|
||||
def test_items_sorted_by_name(self, client_log):
|
||||
"""On the grouped order detail view and other views where items are listed, they appear in alphabetical order"""
|
||||
|
||||
def test_items_are_sorted_by_name(self, client_log):
|
||||
date = timezone.now() + datetime.timedelta(days=3)
|
||||
grouped_order = GroupedOrder.objects.create(
|
||||
name="test",
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
# fmt: off
|
||||
import csv
|
||||
import datetime
|
||||
from io import StringIO
|
||||
|
@ -9,28 +8,23 @@ from django.urls import reverse
|
|||
from django.utils import timezone
|
||||
|
||||
from la_chariotte.order import models
|
||||
from la_chariotte.order.tests.utils import (create_grouped_order,
|
||||
order_items_in_grouped_order)
|
||||
from la_chariotte.order.tests.utils import (
|
||||
create_grouped_order,
|
||||
order_items_in_grouped_order,
|
||||
)
|
||||
|
||||
# fmt: on
|
||||
pytestmark = pytest.mark.django_db
|
||||
|
||||
|
||||
class TestGroupedOrderIndexView:
|
||||
def test_anonymous_user_redirection(self, client):
|
||||
"""
|
||||
If the user is anonymous, they are redirected to login view
|
||||
"""
|
||||
def test_anonymous_user_gets_redirected(self, client):
|
||||
assert auth.get_user(client).is_anonymous
|
||||
response = client.get(reverse("order:index"))
|
||||
assert response.status_code == 302
|
||||
assert response.url.startswith(reverse("accounts:login"))
|
||||
assert response.url.endswith(reverse("order:index"))
|
||||
|
||||
def test_no_grouped_orders(self, client_log):
|
||||
"""
|
||||
If no grouped order exist, an appropriate message is displayed
|
||||
"""
|
||||
def test_no_grouped_orders_displays_a_message(self, client_log):
|
||||
response = client_log.get(reverse("order:index"))
|
||||
assert response.status_code == 200
|
||||
assert "Pas de commande groupée pour l'instant" in response.content.decode()
|
||||
|
@ -47,9 +41,10 @@ class TestGroupedOrderIndexView:
|
|||
len(response.context["grouped_order_list"]["incoming_grouped_orders"]) == 0
|
||||
)
|
||||
|
||||
def test_grouped_orders_in_right_section(self, client_log):
|
||||
def test_grouped_orders_appears_in_right_section(self, client_log):
|
||||
"""
|
||||
According to their delivery date and deadline, grouped orders are placed in the correct section : several gr orders
|
||||
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,
|
||||
|
|
|
@ -7,8 +7,10 @@ from django.urls import reverse
|
|||
from django.utils import timezone
|
||||
|
||||
from la_chariotte.order import models
|
||||
from la_chariotte.order.tests.utils import (create_grouped_order,
|
||||
order_items_in_grouped_order)
|
||||
from la_chariotte.order.tests.utils import (
|
||||
create_grouped_order,
|
||||
order_items_in_grouped_order,
|
||||
)
|
||||
|
||||
# fmt: on
|
||||
pytestmark = pytest.mark.django_db
|
||||
|
|
|
@ -10,10 +10,10 @@ from ..models import GroupedOrder, Order, OrderAuthor, OrderedItem
|
|||
|
||||
|
||||
def place_order(request, code):
|
||||
"""Creates an AnonymousUser, and an Order for this GroupedOrder, with related OrderedItems"""
|
||||
# Creates an AnonymousUser and an Order with related OrderedItems
|
||||
grouped_order = get_object_or_404(GroupedOrder, code=code)
|
||||
|
||||
# check if the grouped order is ongoing or if the user is allowed to order
|
||||
# Handle permissions
|
||||
user_is_orga = request.user == grouped_order.orga
|
||||
is_to_be_delivered = grouped_order.is_to_be_delivered()
|
||||
is_open = grouped_order.is_open()
|
||||
|
@ -101,9 +101,8 @@ def place_order(request, code):
|
|||
grouped_order.compute_items_ordered_nb()
|
||||
send_order_confirmation_mail(order)
|
||||
|
||||
# Always return an http.HttpResponseRedirect after successfully dealing
|
||||
# with POST data. This prevents data from being posted twice if a
|
||||
# user hits the Back button.
|
||||
# Redirect to prevent data from being posted twice when the user hits the Back
|
||||
# button.
|
||||
return http.HttpResponseRedirect(
|
||||
reverse("order:order_confirm", args=(grouped_order.code, order.pk))
|
||||
)
|
||||
|
@ -125,14 +124,10 @@ def validate_articles_ordered_nb(order):
|
|||
|
||||
|
||||
class OrderDetailView(generic.DetailView):
|
||||
"""Confirmation page after a user orders"""
|
||||
|
||||
model = Order
|
||||
|
||||
|
||||
class OrderDeleteView(UserPassesTestMixin, generic.DeleteView):
|
||||
"""DeleteView for an order"""
|
||||
|
||||
model = Order
|
||||
|
||||
def get_success_url(self):
|
||||
|
|
Loading…
Reference in a new issue