mirror of
https://framagit.org/la-chariotte/la-chariotte.git
synced 2025-05-05 13:21:49 +02:00
duplicate grouped order part 3
This commit is contained in:
parent
0bf680c74b
commit
604ba77842
1 changed files with 84 additions and 0 deletions
|
@ -1288,6 +1288,90 @@ class TestGroupedOrderDeleteView:
|
|||
assert models.GroupedOrder.objects.count() == 1
|
||||
|
||||
|
||||
class TestGroupedOrderDuplicateView:
|
||||
def test_duplicate_grouped_order(self, client_log):
|
||||
"""The orga of the GO duplicates it.
|
||||
A new GO is created without any order but with the same item_set.
|
||||
The user gets redirected to the update view. The old GO remains the same"""
|
||||
grouped_order = create_grouped_order(
|
||||
days_before_delivery_date=5,
|
||||
days_before_deadline=2,
|
||||
name="gr order test",
|
||||
orga_user=auth.get_user(client_log),
|
||||
)
|
||||
assert models.GroupedOrder.objects.count() == 1
|
||||
order = order_items_in_grouped_order(grouped_order)
|
||||
assert models.Item.objects.count() == 2
|
||||
assert models.OrderedItem.objects.count() == 2
|
||||
assert models.OrderAuthor.objects.count() == 1
|
||||
assert grouped_order.item_set.first().ordered_nb == 3
|
||||
|
||||
# duplicate
|
||||
duplicate_view_url = reverse(
|
||||
"order:duplicate_grouped_order", kwargs={"pk": grouped_order.pk}
|
||||
)
|
||||
response = client_log.get(duplicate_view_url)
|
||||
assert models.GroupedOrder.objects.count() == 2
|
||||
new_grouped_order = models.GroupedOrder.objects.all()[1]
|
||||
assert new_grouped_order.name == "gr order test - copie"
|
||||
assert new_grouped_order.delivery_date == grouped_order.delivery_date
|
||||
assert new_grouped_order.deadline == grouped_order.deadline
|
||||
assert new_grouped_order.place == grouped_order.place
|
||||
assert new_grouped_order.orga == auth.get_user(client_log)
|
||||
assert new_grouped_order.description == grouped_order.description
|
||||
assert new_grouped_order.item_set.count() == grouped_order.item_set.count()
|
||||
assert new_grouped_order.item_set.first().ordered_nb == 0
|
||||
assert models.GroupedOrder.objects.count() == 2
|
||||
|
||||
# redirection
|
||||
assert response.status_code == 302
|
||||
assert response.url == reverse(
|
||||
"order:update_grouped_order", kwargs={"pk": new_grouped_order.pk}
|
||||
)
|
||||
|
||||
# The initial grouped order did not change
|
||||
assert grouped_order.item_set.first().ordered_nb == 3
|
||||
|
||||
def test_duplicate_grouped_order__not_orga(self, client_log, other_user):
|
||||
"""A user that is not orga gets the duplicate view. They get a 403 error."""
|
||||
grouped_order = create_grouped_order(
|
||||
days_before_delivery_date=5,
|
||||
days_before_deadline=2,
|
||||
name="gr order test",
|
||||
orga_user=other_user,
|
||||
)
|
||||
assert models.GroupedOrder.objects.count() == 1
|
||||
|
||||
# get the duplicate view
|
||||
duplicate_view_url = reverse(
|
||||
"order:duplicate_grouped_order", kwargs={"pk": grouped_order.pk}
|
||||
)
|
||||
response = client_log.get(duplicate_view_url)
|
||||
assert response.status_code == 403
|
||||
|
||||
assert models.GroupedOrder.objects.count() == 1
|
||||
|
||||
def test_duplicate_grouped_order__anonymous(self, client, other_user):
|
||||
"""An anonymous user gets the duplicate view. They get redirected to login page"""
|
||||
grouped_order = create_grouped_order(
|
||||
days_before_delivery_date=5,
|
||||
days_before_deadline=2,
|
||||
name="gr order test",
|
||||
orga_user=other_user,
|
||||
)
|
||||
assert models.GroupedOrder.objects.count() == 1
|
||||
|
||||
# get the duplicate view
|
||||
duplicate_view_url = reverse(
|
||||
"order:duplicate_grouped_order", kwargs={"pk": grouped_order.pk}
|
||||
)
|
||||
response = client.get(duplicate_view_url)
|
||||
assert response.status_code == 302
|
||||
assert response.url == f"{reverse('accounts:login')}?next={duplicate_view_url}"
|
||||
|
||||
assert models.GroupedOrder.objects.count() == 1
|
||||
|
||||
|
||||
class TestItemCreateView:
|
||||
def test_create_item(self, client_log):
|
||||
"""A user that has created a grouped order adds an item to it."""
|
||||
|
|
Loading…
Reference in a new issue