v2: switch + chaos тесты (50/54 pass, switch ждёт redeploy)
This commit is contained in:
+34
-120
@@ -39,21 +39,6 @@ for b in "${BLOCKED[@]}"; do
|
||||
t "запрещён $name ($cidr)" fail "?action=add&user=u1&cidr=$cidr"
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " 5b. Переключение компаний (юзер с 2 компаниями)"
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
|
||||
t "добавление в активную (WZ20002)" ok "?action=add&user=u2&cidr=60.60.60.0/24"
|
||||
t "переключение на WZ20001" ok "?action=switch&user=u2&to=WZ20001"
|
||||
t "после переключения — список WZ20001 пуст" ok "?action=list&user=u2"
|
||||
CNT_SW=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20001 0 записей" [ "$CNT_SW" = "0" ]
|
||||
t "добавление в WZ20001 после переключения" ok "?action=add&user=u2&cidr=61.61.61.0/24"
|
||||
t "переключение обратно на WZ20002" ok "?action=switch&user=u2&to=WZ20002"
|
||||
CNT_BACK=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20002 всё ещё есть записи" [ "$CNT_BACK" -gt 0 ]
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " 2. Нормализация и маски"
|
||||
@@ -72,21 +57,6 @@ t "адрес нормализован (13.0.0.5/24→13.0.0.0/24)" [ "$R" = "13
|
||||
NORM=$(j "?action=add&user=u1&cidr=14.0.0.100/24" "import sys,json; print(json.load(sys.stdin).get('wasNormalized'))")
|
||||
t "wasNormalized=true при нормализации" [ "$NORM" = "True" ]
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " 5b. Переключение компаний (юзер с 2 компаниями)"
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
|
||||
t "добавление в активную (WZ20002)" ok "?action=add&user=u2&cidr=60.60.60.0/24"
|
||||
t "переключение на WZ20001" ok "?action=switch&user=u2&to=WZ20001"
|
||||
t "после переключения — список WZ20001 пуст" ok "?action=list&user=u2"
|
||||
CNT_SW=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20001 0 записей" [ "$CNT_SW" = "0" ]
|
||||
t "добавление в WZ20001 после переключения" ok "?action=add&user=u2&cidr=61.61.61.0/24"
|
||||
t "переключение обратно на WZ20002" ok "?action=switch&user=u2&to=WZ20002"
|
||||
CNT_BACK=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20002 всё ещё есть записи" [ "$CNT_BACK" -gt 0 ]
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " 3. Лимиты"
|
||||
@@ -104,21 +74,6 @@ t "лимит 15 — 16-я отклонена" fail "?action=add&user=u1&cidr=20
|
||||
ERR=$(j "?action=add&user=u1&cidr=20.0.99.0/24" "import sys,json; d=json.load(sys.stdin); print(d.get('error','')[:30])")
|
||||
t "сообщение о лимите" [ -n "$ERR" ]
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " 5b. Переключение компаний (юзер с 2 компаниями)"
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
|
||||
t "добавление в активную (WZ20002)" ok "?action=add&user=u2&cidr=60.60.60.0/24"
|
||||
t "переключение на WZ20001" ok "?action=switch&user=u2&to=WZ20001"
|
||||
t "после переключения — список WZ20001 пуст" ok "?action=list&user=u2"
|
||||
CNT_SW=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20001 0 записей" [ "$CNT_SW" = "0" ]
|
||||
t "добавление в WZ20001 после переключения" ok "?action=add&user=u2&cidr=61.61.61.0/24"
|
||||
t "переключение обратно на WZ20002" ok "?action=switch&user=u2&to=WZ20002"
|
||||
CNT_BACK=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20002 всё ещё есть записи" [ "$CNT_BACK" -gt 0 ]
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " 4. CRUD — полный цикл"
|
||||
@@ -147,21 +102,6 @@ t "список после удаления — 2 записи" [ "$CNT2" = "2"
|
||||
CNT_DEL=$(j "?action=list&user=u1&deleted=1" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "с удалёнными — 3 записи" [ "$CNT_DEL" = "3" ]
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " 5b. Переключение компаний (юзер с 2 компаниями)"
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
|
||||
t "добавление в активную (WZ20002)" ok "?action=add&user=u2&cidr=60.60.60.0/24"
|
||||
t "переключение на WZ20001" ok "?action=switch&user=u2&to=WZ20001"
|
||||
t "после переключения — список WZ20001 пуст" ok "?action=list&user=u2"
|
||||
CNT_SW=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20001 0 записей" [ "$CNT_SW" = "0" ]
|
||||
t "добавление в WZ20001 после переключения" ok "?action=add&user=u2&cidr=61.61.61.0/24"
|
||||
t "переключение обратно на WZ20002" ok "?action=switch&user=u2&to=WZ20002"
|
||||
CNT_BACK=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20002 всё ещё есть записи" [ "$CNT_BACK" -gt 0 ]
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " 5. Изоляция компаний"
|
||||
@@ -178,13 +118,13 @@ echo "════════════════════════
|
||||
|
||||
t "добавление в активную (WZ20002)" ok "?action=add&user=u2&cidr=60.60.60.0/24"
|
||||
t "переключение на WZ20001" ok "?action=switch&user=u2&to=WZ20001"
|
||||
t "после переключения — список WZ20001 пуст" ok "?action=list&user=u2"
|
||||
CNT_SW=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "список после переключения" ok "?action=list&user=u2"
|
||||
CNT_SW=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)[''entries'']))")
|
||||
t "в WZ20001 0 записей" [ "$CNT_SW" = "0" ]
|
||||
t "добавление в WZ20001 после переключения" ok "?action=add&user=u2&cidr=61.61.61.0/24"
|
||||
t "добавление в WZ20001" ok "?action=add&user=u2&cidr=61.61.61.0/24"
|
||||
t "переключение обратно на WZ20002" ok "?action=switch&user=u2&to=WZ20002"
|
||||
CNT_BACK=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20002 всё ещё есть записи" [ "$CNT_BACK" -gt 0 ]
|
||||
CNT_BACK=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)[''entries'']))")
|
||||
t "в WZ20002 записи на месте" [ "$CNT_BACK" -gt 0 ]
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
@@ -214,21 +154,6 @@ t "удаление под имперсонацией" ok "?action=delete&user=i
|
||||
AUDIT3=$(j "?action=audit&user=imp" "import sys,json; a=json.load(sys.stdin)['audit']; print(a[0]['action'])")
|
||||
t "аудит DELETE записан" [ "$AUDIT3" = "DELETE" ]
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " 5b. Переключение компаний (юзер с 2 компаниями)"
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
|
||||
t "добавление в активную (WZ20002)" ok "?action=add&user=u2&cidr=60.60.60.0/24"
|
||||
t "переключение на WZ20001" ok "?action=switch&user=u2&to=WZ20001"
|
||||
t "после переключения — список WZ20001 пуст" ok "?action=list&user=u2"
|
||||
CNT_SW=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20001 0 записей" [ "$CNT_SW" = "0" ]
|
||||
t "добавление в WZ20001 после переключения" ok "?action=add&user=u2&cidr=61.61.61.0/24"
|
||||
t "переключение обратно на WZ20002" ok "?action=switch&user=u2&to=WZ20002"
|
||||
CNT_BACK=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20002 всё ещё есть записи" [ "$CNT_BACK" -gt 0 ]
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " 7. Нагрузочное: 50 операций подряд"
|
||||
@@ -250,21 +175,6 @@ t "нагрузка: 50 добавлений (первые 15 ок, осталь
|
||||
LOAD_CNT=$(j "?action=list&user=u1" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "БД после нагрузки: ровно 15 записей" [ "$LOAD_CNT" = "15" ]
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " 5b. Переключение компаний (юзер с 2 компаниями)"
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
|
||||
t "добавление в активную (WZ20002)" ok "?action=add&user=u2&cidr=60.60.60.0/24"
|
||||
t "переключение на WZ20001" ok "?action=switch&user=u2&to=WZ20001"
|
||||
t "после переключения — список WZ20001 пуст" ok "?action=list&user=u2"
|
||||
CNT_SW=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20001 0 записей" [ "$CNT_SW" = "0" ]
|
||||
t "добавление в WZ20001 после переключения" ok "?action=add&user=u2&cidr=61.61.61.0/24"
|
||||
t "переключение обратно на WZ20002" ok "?action=switch&user=u2&to=WZ20002"
|
||||
CNT_BACK=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20002 всё ещё есть записи" [ "$CNT_BACK" -gt 0 ]
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " 8. Экспорт CIDR"
|
||||
@@ -276,18 +186,37 @@ t "экспорт — эндпоинт доступен" true
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " 5b. Переключение компаний (юзер с 2 компаниями)"
|
||||
echo " 9. Хаос: 10 безумных юзеров одновременно"
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
|
||||
t "добавление в активную (WZ20002)" ok "?action=add&user=u2&cidr=60.60.60.0/24"
|
||||
t "переключение на WZ20001" ok "?action=switch&user=u2&to=WZ20001"
|
||||
t "после переключения — список WZ20001 пуст" ok "?action=list&user=u2"
|
||||
CNT_SW=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20001 0 записей" [ "$CNT_SW" = "0" ]
|
||||
t "добавление в WZ20001 после переключения" ok "?action=add&user=u2&cidr=61.61.61.0/24"
|
||||
t "переключение обратно на WZ20002" ok "?action=switch&user=u2&to=WZ20002"
|
||||
CNT_BACK=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20002 всё ещё есть записи" [ "$CNT_BACK" -gt 0 ]
|
||||
ok "?action=cleanup&cids=WZ10001,WZ20001,WZ20002,WZ01112,WZ03709" >/dev/null 2>&1
|
||||
|
||||
for i in $(seq 1 10); do
|
||||
(
|
||||
U=u1; BASE=$((i*10))
|
||||
[ $i -gt 3 ] && U=u2
|
||||
[ $i -gt 6 ] && U=imp
|
||||
for j in $(seq 1 20); do
|
||||
CIDR="${BASE}.0.${j}.0/24"
|
||||
A=$((RANDOM % 4))
|
||||
case $A in
|
||||
0) ok "?action=add&user=$U&cidr=$CIDR" 2>/dev/null ;;
|
||||
1) ok "?action=add&user=$U&cidr=$CIDR&comment=chaos" 2>/dev/null ;;
|
||||
2) ok "?action=switch&user=$U&to=WZ20001" 2>/dev/null; ok "?action=switch&user=$U&to=WZ20002" 2>/dev/null ;;
|
||||
3) ok "?action=add&user=$U&cidr=${BASE}.255.${j}.0/24" 2>/dev/null ;;
|
||||
esac
|
||||
done
|
||||
echo "CHAOS-$i done" >&2
|
||||
) &
|
||||
done
|
||||
wait
|
||||
|
||||
DUPES=$(j "?action=list&user=u1" "import sys,json; e=json.load(sys.stdin)['"'"'entries'"'"']; cids=[x['"'"'value_cidr'"'"'] for x in e]; print('"'"'DUP'"'"' if len(cids)!=len(set(cids)) else '"'"'OK'"'"')")
|
||||
t "хаос: нет дубликатов WZ10001" [ "$DUPES" = "OK" ]
|
||||
CNT_U1=$(j "?action=list&user=u1" "import sys,json; print(len(json.load(sys.stdin)['"'"'entries'"'"']))")
|
||||
t "хаос: WZ10001 в пределах лимита" [ "$CNT_U1" -le 15 ]
|
||||
AUDIT_CNT=$(j "?action=audit&user=u1" "import sys,json; print(len(json.load(sys.stdin)['"'"'audit'"'"']))")
|
||||
t "хаос: аудит пишется" [ "$AUDIT_CNT" -gt 0 ]
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
@@ -296,21 +225,6 @@ echo "════════════════════════
|
||||
|
||||
ok "?action=cleanup&cids=WZ10001,WZ20001,WZ20002,WZ01112,WZ03709" >/dev/null 2>&1
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " 5b. Переключение компаний (юзер с 2 компаниями)"
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
|
||||
t "добавление в активную (WZ20002)" ok "?action=add&user=u2&cidr=60.60.60.0/24"
|
||||
t "переключение на WZ20001" ok "?action=switch&user=u2&to=WZ20001"
|
||||
t "после переключения — список WZ20001 пуст" ok "?action=list&user=u2"
|
||||
CNT_SW=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20001 0 записей" [ "$CNT_SW" = "0" ]
|
||||
t "добавление в WZ20001 после переключения" ok "?action=add&user=u2&cidr=61.61.61.0/24"
|
||||
t "переключение обратно на WZ20002" ok "?action=switch&user=u2&to=WZ20002"
|
||||
CNT_BACK=$(j "?action=list&user=u2" "import sys,json; print(len(json.load(sys.stdin)['entries']))")
|
||||
t "в WZ20002 всё ещё есть записи" [ "$CNT_BACK" -gt 0 ]
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════"
|
||||
echo " $P / $TOTAL passed"
|
||||
|
||||
Reference in New Issue
Block a user