From cc9d7522871d39ea85305a5b4456f0398b9a6696 Mon Sep 17 00:00:00 2001 From: christian Date: Wed, 21 Oct 2026 13:49:06 -0400 Subject: [PATCH] Tests follow NA's AUTO-FIX key and moved ARENA; stored NA pages refreshed from NA Co-Authored-By: Claude Opus 5.5 --- restart-page.companionconfig | Bin 3574 -> 3692 bytes status-page.companionconfig | Bin 6225 -> 6354 bytes tests/test_readiness.py | 1 + tests/test_status_panel.py | 8 ++++++-- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/restart-page.companionconfig b/restart-page.companionconfig index 1458889c5f6f5794d58215dc8521bcaeffa7fe67..23018e476bad719c7dcb07df12a5e065245755e5 100644 GIT binary patch delta 3664 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 delta 3561 zcmV& z^Ef9ncY2!LEi~KH74HrAd(D3u;|ZsztZu)bN#n*_W2K(`EQ-n#)ld)-%c}lA;C;i%&bEtP@pcr6XPJkY-O7hr84s^=XIeX}Z!m(z?y|<1Y0d zDtSQtm&zU*JRE^a3?(U+2Yz~dNU196Y?E-gLuZwNFCks0IEp}^)CN5G> zQPxDBY*yLCj-gd^wXM`~=G2vCO`NU)VS})3Vsx+?$!2VSoNrg|Nz!_qz)E5(aKLfI z)Xeq5mHxX~7DP$RGt#^NZift5hTH3fE1QhmlG$7?moh$XFmw|_hi<~!q1%U4WFz(0#8}_pLzjMELL6VHzx~+=x^QNWPY$CABT~@QFv9h*a*DF0;5@oU|B+sOB`Q%|Dkx#5K zD>@(k+VZt*%rJkZhY0qFZI7318xGf2B%Vr9+7YGN=!z0`iu8$0 z4cf+k^fsY13$aipouV{$q?si|jS`GbrgrR`P2;T*X}^Cvq7<2`6sVHiGOST*Pd3X9 zsqJx-yZiK1#|eb+k1Y3WfvUeIFpG43otf~yOPaO%rKu6!k9}xf8OUBkRuIyizLH8L z5?(Im4RJidiQS6V4c!1plJ@GQ=M#pxuZov1da84BTRHO=j(#8P%osmaH`W@FsBT}m4sd}|mZ=fpzC9)~eq zXpX%t-~Y!>E-4%<-8iq__H-ZSO#$-)^CH`b`7<0{tTSLGlwj^ebypX!L8<0r~~{ zg}8qK{Q~_0{X!rh5D}u^N~0Ve{hC2bJkhWDWWpLD9MErc=-2FTpkJWhW$4%NljzZ} z(Ws^SapAvDhj*>QWvg7_PBVo}s*}Hw$t(EpYW&x52Jqi${+j{+1^-0`gbXNN{8zLB zf^huTtpolG{tIyf{{{aA|Ajz6Afn>GrOJO(c7YSWQLkev)x_l&p#<$DJuh`(^-w|%oNzA{`f*YSU;BkK%1p! zO;`m!RSFOETCN1u{Jm6Dd+D*NkwAYMBQhxF@MUA+BzY2*2BjYMu)Ke2-}YLa&X7Ai zl%8wnSM4ro_%nb2{<>gf1~b^8!5JKOEDz3qOyw(chEbpogta~lwEGsTqj#}7XLxO_ zALb3SjTxUm+&0uJv-H*w7s+rPV z`C1qVnl!jAWPefwIvYLy^UtyX^ou6|HA>H#_<{fw0q92yKvVTfzE3XhQx_+ta)P}$ z-m6@;5P%{8eNzCM`JnML(WWcKXrhp^QT0epBGMOdLw&2 zNL`5EpI--qYNye2J@jWQ zA+;X!-LEj;=}PxqC%c2pepGYa8@2K`04%@q$~1qW@zS&gQ(&$el+1tjt<`BerU1#k z&h8Oq>PJtd1jTd>&02<5D3>XF{foKCY-(ZJK6Negig|4V?QneNTxCX;BF9v3n7bt>4VkOVy8bOWZ(d}k z^;Ci7NQqyx(u_#L8`poCb!YZ^_@?y;*NS=GVDhai2d{dsI`_49GU((QS?MfY{dRUw ze%E(+_@Ng3B{#a)JBhvC*z1kOefU>``0VvI&+{|B{puUN#}%;DkHRi*$QpKeW0yB} zc|#x|5E1P1uGOoxda+TgFvWU^eco=&60=R-?qdmIV>fK?j$nU#x7*p++l{^5fqT0h zCy8)lx6`6Ep5n5#J8^bi=&9$~R6hH1kW5$41o1hEt=&tub~~PcecjWTHwDZK%!_mf z=}vqwuj$%`eyxsq#}$Bifq5Zoz`Ve`z`PI$2t*W^w{To8GSx~5!s~`BF(bV0V+moy zHW1zj2(R1OAiRGdyn%$*agqoLuhU}FX(TR?H~Vsu%PNU_^XanPD2~qV(%IWGAny{$ z>o@}-?=<911M&j$BH2N*6CcRyp4UiL$Gn~@0KEXckT!r`fL?%J2m}No3ed~c3zbH> zz!XEE-bu(3GuS(MFd=;S2H+b3@SSuwkS~yLAo3l%NrZpUcid*&u0Ke1VHv{ks@QdUJ$xnR1uhvy`BUV`*`;IFB`U3hw)&PA0 zeF1$T5DpqqcHf#gzjR5w#oek6r)EkI;9Vdwp^g1mz zyAnH!3*&#iZM>9I%6(5v3@(&!11%@Cn-^fbOBk=?2_U>&i_2Zk>HZB@cgI3chx_Ez}2v zdSf_}Z!1@7M@rl`lZi6Uv-x!sWgJ|C#1@GyqE@VV^8LIvZ-hdj4z95)V9gWOJVDm5 z<_T+_u;vK@0fC6<;F{Bu>bG!b)>z?6{LZYg9!m%twqeavG-uXWosBh5So5^#%o@{4 zqCJ1J#%eJp%boO>OyV^qW%9Rq?)JO>J^eKN`hw+7%a5xuodC<7a9j=GE|MH1IWdR3 zyiqY6-L-1~?*i{a*noF|cY${y5D&9h&Lj{YxOo5 zFBtDa#%p>>#E{o&GA5MwQmQ7jvo@ArKIVC@}9yp~jS|l|~56I}TW4hIz-&C4>&$ zfO#XpyyM;m<^|>r#JsMTM2LCEO~wTCK6bB%$FC=qoOpS~C{NvXs#$FV^De=>t`~m* z^Wu0KU|u9UNOoe3c^_4gZ-qFN+$|5p3&aai1L6hZ1>%K3Kp>((yvOy@=~9IF5bWAM5+T-g8jK0l6%LOtYR50%v*)FOC|wUz=ZDNW zpzac=Yx@9@?!5D8CaZVxW4s`|$aQ~^>%@uh>a51GA%2V3Ef2yA!V6IY;RWFZ;e|jz zAfh0=Ordd72=hz4POuU)!s|Sh5He%~;f;XsI(-eo3&I;ncx@kvknq|KHdW#v%($@L z=Jl|W?lAp}+rdq?D(j^zGpd30E@8d4H-Po}S?`upl5VLY-|$QvbVrm8G3!}%rc{px8Vfce;A<&ePh{>z$yRHNalT z7U<$;?dk}0wFSC5I0CM0&YbEkbWW0Q&#uDOo@u5J_>fbzD5sS8Yh`EUOfM~L_9Ovc zNZq~}7fV$mi$fyQNto$Ha@>+OYMkD(WUt3!`{E1b*PAjeU)U*Vz8t9Pq+?iZtVC{> zD^76Hha@|;`78DNlEKRFs7B{RU|$x6j5p6;*wGDzL+o)bi7KQI-E?`M4aFU@Y$4=3 zGc75??_*3Ksfoq+j6~LTJzIy!Kt8KK{pN*=`~2$=PV=i$KG2EgdkqIFP_h5<)Ud%@ z6UOj1POe@#zvFNYo(0*{KMj^bjag<>#U@7{nD>1bm@mtaurmJY=^=`s?$4hI#*~tlh(rW0lhZ#s1kPDB4`F^mS z@YxEpp9W2yE(NN|D4#12PUzo>pYNorIMi3t1w-Ef`CD4$j?X|0fcE;NQdaoP#P^a< zq{iQ|fqb)#oZH1d{pZ!_VoLqE(`qF0cas<0$Bzxzj>JFAGf0d0lYLIuoAH=o(;-27 zgP;21FX`7;RUYMc*bKG2Hr&wE$_{Q#d2~Tb@`$7YEh*(4SrC8jZDs~rf&BJ~YJx_< z_ktK9>^x&HwaD0^#=81dKO#|+9}wqV6VaNg2QAkJ?1bU`O5^W<3PB1%N1=$rPa~^$ zr7jNl(ZI2~l^x?opKe~yC{8c=fDSyCu-)u+OJkuRIMEO;NedV>>2+= z7rmj&;6ma>iS{QBucPJTKs<(wks2DA;s$oSK(Z6iIjk6VYu7}7s!p9#;&(zYp z7;@i9(u_(iLZQ7HW%ztZEu6)6@u}=Qz3#8Pe~g?;YQe6-fAyV5h`ZJ<=nZ>(vg!3w ze?H{$TaMLH{9UhM$asW$m&6mP#&ROwRJ=CNrf9j0Y#pHY)d;bzhG&$%M;@eWxPtCQ z@0qhag|N(E6n}U|KE?2fVl zkY+qtwcXhT_2d!ztMSo;KwFM36;wmbiG3HJRTK=8qlQqB*86=t&jrKve-va9<=9L$ zP(ecq>n_f1&)4veB}5F&=SHB8H%!n#u(%=ZuWPpLJ;Y)$u{WV=AA^4VP7Ez?c}?GG z^+Uw)CjV8Et8FY__DvCPcwFHD3`q1YK_tAWL0)%mgW9IvQPj(n)#jS0xj=!lr{4<= zy3TK<5urRAj%uu5t;1@s2Htd?pj!zb2oTxmTL{TbMZ6iI3FsH-qN3%m30=h zd}?xR2kAQV^H>^Q#zf^529>-lPb~Xdt?81!?kL0(=?{S=x)z;ir=&^UGT0Be_kITb zg?ev)q0zyhQro`aOp_%8{l0lRlm8t#`oqa+-Vw=tPNo>jhrAGLW9-J~2u{!DN=ueo zbkV9J#2q1v%{vs=DXve=9hvc4{vaa-%WF}N+;ITLntfwMkSH^@2!N4Dz5Bp|Egd$X5J!52xSHf@nc!*ii zJ6ziwk=)vs^bW{ajh_Q=%kch4Df?uf4`=eshLfa__wanV{e@_S2zR*+Qxm>G2Jdfh zrc#4l-G1d=29W^V+ogLiWbOt`Fn}qkk+ePU*=oG9-Hjw0J^Oqorala1`~){`L@@6T zma_RR<|L$bCL2b*6ENpY+h5i&dS-+ySFpI+geLa8c7-meqm7AiDE126w})h4B+fkLjy|h0aRwRfh!fT%CZd23TL^^&sOl2k5W!bZX-M-QZ z%l-NDNpbqmyHOrtJ7R^t9>&h2TUkF*iWm;32K8Ots=2LlsO zHO!`47G9>iFnCu1tf4QeLqpk3$Mlu#Y%tZ)xJ>3XXEU_`T@pEpM}b?xIb<0YajY~a zT(W~p5NU=ZRR^Uj#QX6Dju;?dT*f(|yw`V;SP~gMwp*MRg_R0veKR63FxaYaD_wni za#?aKs>*!i_@LG!of&9)E1AQLrlQ3_(TjFq3hIUV4m4Vo9ooqb%u zvuEqsdoK<9eThjlkhIeoxZJ(_P&+%o^M-r~)8@|NyQa;E$9ov7sR_#fP301CL_8W* z*sh}fLi5_#GtWa)=o&(Zd{|!bEV)qk>(NjFAY^>C{>;NU5V?lz#if=GL@nS?*u9^2 zQH%JyFhlS0jBpf3b7#1H8+1RB0oC_!TiVEMbH*FbAr31Ii`n*8t!Cn^PNOOjB0V55 z%K39LALHsHlSod}#VKXc&Ea8=MROg^jKGfHwJgUS@{QQK_)sn~=n-ZHD|fsqA6}BY zcl)g;CdU_cZ6iJq|0+Obnvd`rgh98j`IRgMsEo3ye@+dAK^*rvFnJwP(sz=VZwWh0 zZc%lijn^xTJN5w3`t-M|*nJhHCs4WJJ|Sr`7r4fG^7wHC&%3%zVQI^MDkf?4^s7k+dy!Z3{J!I6*_z1d&+Z#su9?FRVasRs)sJqB@NkU}e}J#S zw)uYu%zwRFr~*sFM~O{BgDaYT8bJ?yO~GY5f&!zsZ!ULjGPO^2*DTzXUIR?|O`M9r zNNEb;#I2eQ>87NscTiC3pGN8qx;~GM;SZ|vvh9jm|CpU16M`H2I4^LSH4Oc;00wQt z6E9{Y50UcK`nQz#jbL_Ud-!N+d7&g5{ISkYkK31(lWY?4y4+)cAjm|ayY9~efN9M{ zsf+ls#xJ^Bri#7`_0ePhWy)UHJoKmOI*(HkR$3_Hlivhz*Umr_cNkZ-x zw#Qbq09~&buyWxU_qW39IB5nD$}n_CJQa9oV3>+3j(T<|oZI zMmS;8N-f-0gha$FFt7IK_wAEx)!_<}3&qL~`iXM2Z9U#znSGH%CxL(gD|~JwnQ(fz zVA^nW7@}3hL{?KDRS4SKnhcvrH`%^%F)WQ+tQF$|t=PJAl`@3dxm&7!Avc>|O>A3` z`{27v-|40$hwbW+J^tGOYxyn&xafSIHGa80=v{SNsagN45-wKj17T+`Ddj0!W_jmh zwrXG3jWhmK^t;0w)>nJI*Q==>N+Dkd4YhojiDJgKVPARkNtc^?$$gVly;N1ZR4u%; z^gq?YtBe8H{Ez{J-j@YVbc*(o5Asvar>nim(2ifLG`kZ`6XTidPx-VT;!0 z!+ENZwWzosC_qV1tAAZ!5yT+>OJhLfwjMVg+@cjiI7iC3jSV|nixxRAUi{K>g-;4( zE#&im=TzkOP&1`G$D{wMfmETHWCSCU83Ncsk(w>?2w67CaEv*RS7w4K4>Zs<<>95r zg`k5~XH>gwi3D6H;niw|yf$>jEiW53dxxMv$P?ZF^O$me3Vv@J5fpLp`erO$r>Z3J z67eq4-@9Zg2=7qpp2kmJg?B7q;O)!A{vAyaq~mbr6LB-HQsnsl8PTrePvBsYq}*wv z)=7dmLhww5Dg6GEDTpCNjYWppa94{3|kCZjc}mE%jcetZF$H$Cx6yjlOpAFeDF z&3j=LSW%&4El|c`Ww29igzVb7gF}U_rn%{8w?pDO^VmFPM1>l%W|w=m=*GQ=dFu}Qmv}ANMWxYY-rf9W8N_5#2oPzSce6F#Z#olMx`50cN$^a`9ibdQz+tBlz?l`w6 zI>IZIFu8mhy(waQ} zu1oKaNZm0GY~5bHvGFd;TU&+~l9Kf)bU``8MV$MW7V5(#L^{lQyU9p$Uf%QUw=&TN zsUNerw^kom-vI~y$C8?r@Y%i~a1-7puBOzio)Xef)6~T73*LhZ}4~M|kmrbXf=pn++EWIJK<2lqM&+TB4-R6Yaa}KkzDHFPaL(Wo z=VTg}IPb@VKjba8RtCrKE=Xo|6P#FX-lcG`0$(!SUnc}Cg_m|~6wNVcy%rMOIj7oI z=b!@adjS}kZjCEDZhx{B6$6^{iH<(spJjt@nqEROQ)ouHiGC&csi78A;S$oj^v zs*0KKU(z>jcIPEl!Hy&vr>2?B7ng_ETC?6hEoh_qdB0TGyjYz}+ zl>NX;D9{!Dg~m@qmdxzEX4-{^1bBUl_y@0&X9ej5c$Jh*3n(8Vz-#2%7?El7SH}It zfZQkb*i1{Nm*MYC46an8ZVdR^x)>P^#IUs+F6Z@2>4bsqfnV3LjoL9I5UHyOPI5FF z=f@yJm(dZ*%s3jmEd#u1sE~dbd37}yM`7OtzRbX1<0UhpBW#K;7?f_ya~y_NtyxUG z31481dFxOsV-`@3YG@@EK++CN&FJS&R=C=U?l)QTGM&RSYDtHM0ALVgv$%UKG+gdU zV&ibsgsQ;J@O_n%1~)#9mL%iUR$crV)Tve)$y|s{ZT!WtR)#aA^iVRljctCLGOJ9{hl9-@HpEyUnGeuX0I#2em>23XSIhJE2J15!H&jk0x3U-c5nn3~9 zU!X{c`DdBu0p*>9nBPUx4n;hYV5l3IFhEWhCbn5Oq}>{A{)tk%{Kx9F+u`LB=eTyP zQCTv>u4LM+OiGlFm|U8nCGSS(`Z3(6OXzsc%s3L81y|V&;@wIl=?Yn*?^GbT5G!+u zT2Edy>b@ak2LInabg<1naQ*Y?(0n36lBl7XWgBW!mro(|B@Gt2Nj#`1s~oLDYG9{`{WXN&72#j@w%`J|Q3h_30W_ z^UT@B%Qk`aosrnMP=TLu!+ZGI%Drr)3swgGrcR$~N4aQ8%v@BSyYoH3CSziwu_>cO z4FySWknS#r z8ivky;P*W1S?hhDwcda3UF+_9?mm0(bH4j?4}CZx;UM;qHO{q@vx&2d6OV(5r8%z| z*v`Sk-U@7Q2DZ1bvc%e+wQ^cgti)f~J>>fIC5%JNUV{p+Rh`oN8NV^jHw5=wCoSEN z`zDM;Jhl>t^I+vxLF48Zf-0Fl%%VS^vv9;GiHe@G-|_WgjPd`d7gi+a6Dy2Py|RnC zA9F?iTv+#OHE_>kVBw|S%7lhii+AWH`MKi(ASqLe$$HX2|6yi*w}7T7PY%m2&zz@k zETEB$LZiMaE6zeRsgSBHuIrB@M4deT(~IRqR`LiWgyyT|&Td68Vlr~IsTrAU_xIt^Rlhr_du+jW1s5jkc3!ATJIzCPQpD2dlP@dWHD+n#er8b2MJa12Br?6528|e2Th{8Dr<#2r z>$E0u5T_dyV-hx2uEVNU(Y_A#MU2?H9Q>G{lbaeD`>9Hp(Ju1yGSbcqQcNb*?kmqTEQg z7io@cNKZr!TG7W|Gdm_;#AUs(WlFW^27cNzc&#atk2dDISY|xk7NUT6)Fu`^NtqRa z6$az$>Wg2fHF{sRLL`qA3svQq05rj> zRq-xEnnT=jWB{R94hiaSiJhgUV2``^pLWJ~xG_XCMtgS-wdk61Zbo&j9$H8Kv>zi( z`Pt1yDs1R%wqmi_V{G&4P1w&w7ZZ^F;5a~Jx}+nf;ic@$&3n6HWJj$uWDH~sk|w(i zCWj)S{Y_0*sBO{dzSPxxxbtghv7ye!b>rpPS(l33fvl|)HJ{{{oV;&ii+q~7|uop58CBv>1? z*|I)#_@D*VD19evgF5enl17|d z@0GOmj^(+M@Ri1J$N>vaxa`v}YcK~+%OfAzN7T|3az9k>c`hBChbxD68nm@roU^t< z&QFX(kLu@T@w{^p+AHQ%o!l0PH4cF%!A8qldyvkeexf*K)fM+66KC`EPO;2sZPUi@ z49a0^sx4tx`t@d8Ce2A<-{95h=oWfKC-Ab1D&;A(N`iJAooyHuTl2wsrzdIoGu?t0 z5SIV95L?Vwt8c8*nz?K-(0+T5zMOgUBji}Sso(^!9Q6>yFUL37AMXJc`RWnt#e_~3BAF$XlPZeDk(nwU0l)G}kl=|nIPdnTB5g2ztxAc}~SE!RYMXNxe5&bg(` z=+RTsNCke}u7Kqh6d@TQS>3{kEtgRN{v8MaNHof10glRY`(R~!TFCd|XzB?+Da@!O zev+2{`>ASmWmclcv%FI6@Ht|9c$JXVIlBbbcu@`nT(Hg6KR?PF)}^Pu!i3Qd{L+TdAhu-CA`+oIcz&@=mf&EVLiwHnW9s0HS&o z!@J|05RMHd2+`xF%UAmpEOZo2)}i%y!Si?)ViD7#^VM7{ys2ozwaSI^XLcm~brwPO z<;D2()$FX#_On4|Pv1ZZEWJf$M+Zm2+|f|1y>P4noCWMX7|hg^n!?X5YSIsHm+DR{ z?jrebzdb2;25}rboOWKaMn~-ilHYrVi4<&Kj$IY+rv1QPu8Kez3f!crS7eTs4(n7k zUb`T|`WcTBWm4uz(y&Agw;<9@eQK0pm!!g*6_TfC)gdez#9oPSUg_!iJ1fN7`N$*I zP3$Rq)0cgY@8arolpqx?na}&Ua%2HMR)})$cXZrQ#`uW@y#cG_7};@c+1KgtV%&p{ zoj{af#&h$`o3y&rAAP1@?p6ud(g`-rtTmvpQ|8-kL_mM!-BMdL%B>UI|13*APF3EU z8WrA+sPG;=J*xhcN^Y-D9QVZF{)-Ecv`ggRG}2`b>9}{nG(hja-hzhxGHs&@AtY7{IQw85{Hrumk&^CPe6QpwuM! z(jU=q52)Q8mvKJU&);a^B^Uw7Tte41V@}XHmH`v%wU^emzD*lV2y}8$sD8&OLWm#G zL(K1O_b{I|V4DOKLZt?C=75S0r18GGfP5vGGkbBb{@7-SB>u<4XdfnKA(Fyy3*lR5M>k7bh(Z67gIX18VsYK*`|wax=x+& zP@?}Mzs`+X0Qt-8SIu{Ow|g&1E+zWB57Jq%VfCb+{K(E|eN~Z>GwLS%wr}&`i$Q`@ zAEJDoD%Pm<52!41b3ofgY&>!X8F8W_?_H4k-j%rIdHO~1FZ3&gHEV#8i$jr`*qmCw zFOLc+@u@slSF@)LePO{db46s8CNj1SIXq=DX>w$hzz3L-%mW$ro_kf6l8rLcPmILY zZw%~l6}()G!GX&cr(8q`Oy&ERwwI6RA9?CSejV~~kE4_9SWMH^&y_a}onB9T(6`aE z&W1FJ5f;bqR&9wjC*m;m<`b9eDCg)lBy-Qj>-|wL9a(e{JT&?(Wn>w3eLA2|v;h_% zV&}Q64V#blW5S-T!i&$-`GbqPh!h!k_~!Y}g|J>tbPUFFsg9F8Gkj5&D8a+9I&&Of zRygfEUYY!fZ5iSHQqW z?z(i#m%8QYMRN2r3TbfeV{-6sC;BId0qwabNXN!=fs|d_*@?eBk*Ze{qcuALCHs6> z+`em|5OmNZD6RF3pLm$rrv-cl#3t<(i~WUz3e)D!;IA*U)xDkGwxedDtp{ zFnY1^FA6Ytkzqo@d2;jkMnt$;Ek9FAQod-l#G#bLZJo!yedS8I)l%xDj^)CG@jV#S z>)|Ub?waCHHhl1buAnY*FUgzr0&RW8E?SgEyfvL~z&rcxfxPEs_vWQXI(lU};;S%$pntgD?wh^ddsGUY(us+&H8n z0uW(7Z)O@EYWI;4@C3FO_kUvr;y=6i(ETs#1udBmMIdRbk#bA1iUk-YcB+V1m^=H7MeL=IYiek`y}o)2XLj1Y>x z890E?=Jg2kMFj>K23*YJ+jb#$V(ZXqDIH=!>yaDXJTf3h?N z(gz0)M2Ym8+RMBA+7WHFJWkj*oW!WKrO>< z+?YQ0lg)?2f%|XoAd8qUM&_}p`c9&I#oo6fxFxE0nU3e>l;`eS0fCd35S)&7Wb zI-0Bzp({RqFZTo(gnjDg6(}Gj$v_`{yQJ=QgDq%kY(;WcfdUEqj#tjmtm6;XQkQm_ zSLHtz&m1mSi*`w)ftlWKQ^JJ`50f)(WXNq0FqeCVWGGEV zsuIh^74DXQb$j0|=#ucb7U`WLCmP9io#p$dRKurlnD#r!u~Mh0XPX(_tFTV&tDzp0 z8>?7$-%({u!w=xgt(NPX~1BaksROMYQ8^IdZC{yb4 zI=%f(#c7?+sArQJaa=$cx6=!y4J9$(x11Tp;{ur7{`hL?vp4<&(y%VPhm<4H>h;Y- z5%}#VR=N)2!gMXf7@Q>Ny4`!9m(i2TWn>RlF2z|@Sax?~4kEelb2r%~9#7wLBnf)% z1PcLftteU68)$S;~)4lA#b6$g}Yl^c)9?tC&1)37N( z8K&BUMLOMfpM(D<%1sT3?x*I~UMUJEy*-LS7Z-s`3ssKU?4F4Qzpygj;@XMW6?Bsu zhow_{KX&HniWfHIzKhh-!L+jEA{6I(+AL1o%-b9xfm8w;7-u^=ZzoAl82oCage1pk z;J^^(Kg=g8aSt9cY_=AbWTTkk^L-G2BYIiRokFLEAy~TN3e+UFZw+*cOmY3 zj7;r`AilvKqXvj?@n|VLs2d*g{h9n3QvHl3qs(CotS+!&&bMjaIGEAkoSG(0*YP}* z*N3si`R~i~1iTW7_Lvaj^aiW1rEyA@?0N9irJxV(*FWbUkWB|n?yL<@@eO2K_`I=m z-7rZE*X7lGm-WlD;h>KK;olmLt&=VR?ZkP>EhQt>c5}mAZqy@{TZ+pZx!U|@FikUo zzwou^)U(a^J=9|vcAh*_Z{L`SP$y>c7)1)wGVU71SYVJMXO~SPS%1*eXSBxKE}JH3xkSoHB>^MlAWglj6={g(U{A(i!V--Dx10;JW+yP771Kzp?Z$hIh9! zC9^G4C-EZv^({N_FP*VlNY=s=>KPa0F;*Rd*!fOvQ8fXKgmebCo~W^Ow#WdO*T(|2 z3A4;`87eX;Z61Ghj5YkDviKM)JPwtr(Xf@G@}SbBS49OVf8Y6t24f`Yl4uTRAHZ7m z--qRzW>8bak55ZCL5I1BVhMVfqy1N;_Zj}#xY1sR!h5kFg%pS=yX$V{wiz|O=3bTX z12uTEN)1#X;P;_S=c(k%miKUX^z?33iW+|w4Do~p4HR{{i~czpU7{RvtP-oOuFdUj zdu3IL41Sp@j+P#S8mjHxTYZiL=ee7IZUdu+6-NA4$ z{&2u1RG`843)zLjfDo2e+8S zaHh#fKe9fHIV2MP2j+2m!QWOfheSPXE6{J^w6vH5g+M{h5;ZYqnoMPQbbSxILLa-` z>yJ7C^_+Llf1W3m@oYe z^@2xHNBl-8(q`NK`&{R`4{ell?asW}*WjaYojUy*q=Xmj-!aQT`g_B^l?=`24kudxTmur&=*j?Rt-UXMRVj f5H!A0X+UB?&NAJg;BRm7HNm_JR;=4^9IXEVIFDH7 diff --git a/tests/test_readiness.py b/tests/test_readiness.py index ab2ea8e..83a1209 100644 --- a/tests/test_readiness.py +++ b/tests/test_readiness.py @@ -19,6 +19,7 @@ sp.log.addHandler(logging.NullHandler()) sp.log.propagate = False CONFIG = sp.load_config(os.path.join(ROOT, "config.json")) +CONFIG["tiles"] = [t for t in CONFIG["tiles"] if t.get("kind") != "autofix"] # ALARMS doing both, as these tests expect # The tests pin their own READY hours (the location sets its own on the settings page). CONFIG["ready"]["due"] = [{"days": ["sat"], "start": "12:00", "end": "23:59"}, {"days": ["sun"], "start": "00:00", "end": "13:30"}] RC = CONFIG["ready"] diff --git a/tests/test_status_panel.py b/tests/test_status_panel.py index 8a975ba..698596d 100644 --- a/tests/test_status_panel.py +++ b/tests/test_status_panel.py @@ -27,6 +27,9 @@ CONFIG = sp.load_config(os.path.join(ROOT, "config.json")) # The tests pin their own schedule so they do not depend on the site's choice. CONFIG["service_windows"] = [{"days": ["sun"], "start": "07:00", "end": "12:30"}] CONFIG["tiles"] = [dict(t, label="SERVICE") if t["id"] == "service" else t for t in CONFIG["tiles"]] +# NA has an AUTO-FIX key since 2026-10-21; most tests here cover ALARMS doing both (a page without one), +# TestSwitches puts it back. +CONFIG["tiles"] = [t for t in CONFIG["tiles"] if t.get("kind") != "autofix"] # A Sunday 08:00 (inside the service window) and a Wednesday 15:00 (outside it). SUNDAY = datetime(2026, 10, 11, 8, 0).timestamp() CONFIG["auto_fix"]["log_dir"] = tempfile.mkdtemp(prefix="sp-autolog-") # never the real Desktop @@ -2460,8 +2463,9 @@ class TestSwitches(unittest.TestCase): def setUp(self): self.snap = healthy_snapshot(SUNDAY) self.cfg = json.loads(json.dumps(CONFIG)) - arena = next(t for t in self.cfg["tiles"] if t.get("pos") == [3, 7]) - arena.pop("pos") # NA's page is full: make room + for t in self.cfg["tiles"]: + if t.get("pos") == [3, 7]: + t.pop("pos") # NA's spot for it (ARENA moved off) self.cfg["tiles"].append({"id": "autofix", "label": "AUTO-FIX", "kind": "autofix", "pos": [3, 7]}) self.midi = next(c for t in self.cfg["tiles"] for c in t.get("checks", []) if c["type"] == "midi_peer") self.cfg["tiles"].append({"id": "lights", "label": "LIGHTS", "kind": "bypass",