forked from DGNum/gestioCOF
Merge branch 'aureplop/kfet-tests_deterministic' into 'master'
kfet.tests -- Deterministic responses for cancel_operation See merge request klub-dev-ens/gestioCOF!337
This commit is contained in:
commit
31223aaed9
2 changed files with 23 additions and 15 deletions
|
@ -1,5 +1,5 @@
|
||||||
import json
|
import json
|
||||||
import threading
|
import random
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ class OpenKfetTest(ChannelTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.kfet_open = OpenKfet(
|
self.kfet_open = OpenKfet(
|
||||||
cache_prefix="test_kfetopen_%s" % threading.get_ident()
|
cache_prefix="test_kfetopen_%s" % random.randrange(2 ** 20)
|
||||||
)
|
)
|
||||||
self.addCleanup(self.kfet_open.clear_cache)
|
self.addCleanup(self.kfet_open.clear_cache)
|
||||||
|
|
||||||
|
@ -138,7 +138,7 @@ class OpenKfetViewsTest(ChannelTestCase):
|
||||||
self.c_a.login(username="admin", password="admin")
|
self.c_a.login(username="admin", password="admin")
|
||||||
|
|
||||||
self.kfet_open = OpenKfet(
|
self.kfet_open = OpenKfet(
|
||||||
cache_prefix="test_kfetopen_%s" % threading.get_ident()
|
cache_prefix="test_kfetopen_%s" % random.randrange(2 ** 20)
|
||||||
)
|
)
|
||||||
self.addCleanup(self.kfet_open.clear_cache)
|
self.addCleanup(self.kfet_open.clear_cache)
|
||||||
|
|
||||||
|
@ -244,7 +244,7 @@ class OpenKfetScenarioTest(ChannelTestCase):
|
||||||
self.r_c_ws.force_login(self.r)
|
self.r_c_ws.force_login(self.r)
|
||||||
|
|
||||||
self.kfet_open = OpenKfet(
|
self.kfet_open = OpenKfet(
|
||||||
cache_prefix="test_kfetopen_%s" % threading.get_ident()
|
cache_prefix="test_kfetopen_%s" % random.randrange(2 ** 20)
|
||||||
)
|
)
|
||||||
self.addCleanup(self.kfet_open.clear_cache)
|
self.addCleanup(self.kfet_open.clear_cache)
|
||||||
|
|
||||||
|
|
|
@ -1301,13 +1301,27 @@ def kpsul_cancel_operations(request):
|
||||||
stock=F("stock") + to_articles_stocks[article]
|
stock=F("stock") + to_articles_stocks[article]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Need refresh from db cause we used update on querysets.
|
||||||
|
# Sort objects by pk to get deterministic responses.
|
||||||
|
opegroups_pk = [opegroup.pk for opegroup in to_groups_amounts]
|
||||||
|
opegroups = (
|
||||||
|
OperationGroup.objects.values("id", "amount", "is_cof")
|
||||||
|
.filter(pk__in=opegroups_pk)
|
||||||
|
.order_by("pk")
|
||||||
|
)
|
||||||
|
opes = sorted(opes)
|
||||||
|
checkouts_pk = [checkout.pk for checkout in to_checkouts_balances]
|
||||||
|
checkouts = (
|
||||||
|
Checkout.objects.values("id", "balance")
|
||||||
|
.filter(pk__in=checkouts_pk)
|
||||||
|
.order_by("pk")
|
||||||
|
)
|
||||||
|
articles_pk = [article.pk for articles in to_articles_stocks]
|
||||||
|
articles = Article.objects.values("id", "stock").filter(pk__in=articles_pk)
|
||||||
|
|
||||||
# Websocket data
|
# Websocket data
|
||||||
websocket_data = {"opegroups": [], "opes": [], "checkouts": [], "articles": []}
|
websocket_data = {"opegroups": [], "opes": [], "checkouts": [], "articles": []}
|
||||||
# Need refresh from db cause we used update on querysets
|
|
||||||
opegroups_pk = [opegroup.pk for opegroup in to_groups_amounts]
|
|
||||||
opegroups = OperationGroup.objects.values("id", "amount", "is_cof").filter(
|
|
||||||
pk__in=opegroups_pk
|
|
||||||
)
|
|
||||||
for opegroup in opegroups:
|
for opegroup in opegroups:
|
||||||
websocket_data["opegroups"].append(
|
websocket_data["opegroups"].append(
|
||||||
{
|
{
|
||||||
|
@ -1327,16 +1341,10 @@ def kpsul_cancel_operations(request):
|
||||||
"canceled_at": canceled_at,
|
"canceled_at": canceled_at,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
# Need refresh from db cause we used update on querysets
|
|
||||||
checkouts_pk = [checkout.pk for checkout in to_checkouts_balances]
|
|
||||||
checkouts = Checkout.objects.values("id", "balance").filter(pk__in=checkouts_pk)
|
|
||||||
for checkout in checkouts:
|
for checkout in checkouts:
|
||||||
websocket_data["checkouts"].append(
|
websocket_data["checkouts"].append(
|
||||||
{"id": checkout["id"], "balance": checkout["balance"]}
|
{"id": checkout["id"], "balance": checkout["balance"]}
|
||||||
)
|
)
|
||||||
# Need refresh from db cause we used update on querysets
|
|
||||||
articles_pk = [article.pk for articles in to_articles_stocks]
|
|
||||||
articles = Article.objects.values("id", "stock").filter(pk__in=articles_pk)
|
|
||||||
for article in articles:
|
for article in articles:
|
||||||
websocket_data["articles"].append(
|
websocket_data["articles"].append(
|
||||||
{"id": article["id"], "stock": article["stock"]}
|
{"id": article["id"], "stock": article["stock"]}
|
||||||
|
|
Loading…
Reference in a new issue