From 9023bd9334c16cc66d3731aa31f57818971d3fdc Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 27 Sep 2022 09:13:33 +0930 Subject: [PATCH] pytest: add test for migrations upgrade which breaks 'fees_collected_msat'. Signed-off-by: Rusty Russell --- tests/data/v0.12.1-forward.sqlite3.xz | Bin 0 -> 16640 bytes tests/test_db.py | 41 ++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 tests/data/v0.12.1-forward.sqlite3.xz diff --git a/tests/data/v0.12.1-forward.sqlite3.xz b/tests/data/v0.12.1-forward.sqlite3.xz new file mode 100644 index 0000000000000000000000000000000000000000..47229a748f84fac1b72c4f71fa4723dce482acdc GIT binary patch literal 16640 zcmV(nK=Qx+H+ooF000E$*0e?f03iV!0000G&sfak|NlV0T>vSRMV(;C8Tck-h>j-y zF_rzthkyo`yX=3c36|17Q5D#AvfsINET@Ii3=q;wuzmi+H-$t$t@)MZ;J3E-;=YWgoRAS0IvXiJy ztDzPt5eQTEzcBaATi^vHXc1Pw-keM<)YyPkRlcPAy+QgTJK-~pGw%}3uw2fYl~{D$ zXh*Co6hYbH8bU9#239I3wO1jc26<$*gH?NWZ zpaqG+q%%H6#vRecKr3vwqs!S{FBa~cGk5$6igBl(S|9OfTw{F#Tp6NfRfN!G@J=Z% z$=4(uBBfx=rj-P+`Zxk;nzzp6-y{3;?dNiQP9N|^=5wWmYd)i^*u-H|Z&6Qlu7|Ja z{QT8sMWoFAC~%;D04mD$Q7d^B6U!kw4CxYOz7hRo1E@C}ouhJl>8kzCQdtYTyre5GjIZSvTW5c;!(!nl@ccWsehzL#bAJnFV6cHAZvE44w+xu z0tcB3S*~WWyIOL+qmi-VXhA~F=&K(1ZUM{=N~%e7tPE?V*A!sk=APojnl;jo+Tc9^ zse%_Gbqi6c@W7Ly;Pf%J_qYTRYP+17;zmTe6ibLK#oWPJ?CI6~yfJ|7LU@HC&xeEh zG6}kRg=--Hg_qSIj2>^gZl(%RP!z<*lN1vxRfE(~QtQ|$qV*@AsemI+o-9h2{uA=M zRTeo%*Idm@!a<%(wBABq*S3RE=cb`z?zzb&fV)fnH&&C;dR4m>CPw45AaLL=XOkN; z2~>6>;~KFl;u1F2Z3Z&vXoetVyvnLxr_23!ZFe?J8xKHP9*j0~<|S$2BGr#mk7Yh6 z+q6lxy~baClF*RWtOMgzI>fxpb=-pIkIMMqyim}0*%Lr%X6&tc4)3c4;ZtAed-zpN z72n)$J@P)74UixDuMWLZKN6JeqV~cRI_BkaNz&)whAZb@2w*vGiiKV1gIs=~L|hJVrhj zzzJ;cg2P~&e3EfxKZ{X5-B!A}bz5o?iyII1s5L2y zebb%@<@c((u3nTKvwgwm29P13atvfdkftZ>CH82M|7N5OXi3icW_HKh#NxgRFjWJ+ zgZ$TS%c?3XQt(_FFRA#@@4bPvw7344=AEl>8hlu8yRolKuT%_w%?0Sz$)hMxZ``1( zY*Wb*ftK=g7XIyrC~89%YDd*RvywT}_&}rM3C2$v@yr_jOv}+yAbF#D{4^u-DW!r& zl)nY8pyqIzHKo;uJ(GHs8%A@5YNl$2H&mh=!|Y^3kwvmJwIfXvrW3o?&Y@%sy8bU@ z4q7nAWTu~Rc~9$CgR{IlI8qSWQ+02bC@niPqs-xZWXuH6 zq{2V#;PgCb!91rMMeHIYRP3jKG&_QN6z@;Vn&G>ck8j0aS`zIb%Q*JvuTq>b6+rN; ziYo6Wr<@I`D1R2C)L?!E)x9cJ_ys(Uj|Da)+QZEiD773$q|G_%(>TZhbkCR;UD>Z~ zPkq^7;S65~CX;MBRx5}91SGpXa1Z^p#^C|b6FebhuX1T^ZmkK%e8*cmAma{ z3))kE%(G;B$#u>VlS?mby&pIAnSQ}RoB;L2eDuvtmB9Iut0t?ai;GSIyVGbBSHW(a zWfHvV{b!2*1_+fHLF?gp{5O47H~QhS=g&vLjCQ7g`9f%D4oqZq{;wDIBrutD-?I!+ zu@G<6n5VBGl*UdhwG(IGx5kiBDd8}k61cF5i+<(1MOM=Q*xT)UI_urKkoZ=~q7N8x z`)LfyJ93MYVDI}m<3gX0uJ9Z=+!z9kCbfPDum}c9Bj~i>)xXBb^`cld(epJ|Btxf< zE|NM#dHgKpC3>vJLKfyyHQ4^bVn|v{aO0sZ*5If{5WR*i`~HK*gdsq06n&%2el+b6 zr3prOux#0k;_yfabi5}@ea_28sCp>S64BSF(AOHT;>afUV719)PxiJxq9AF`eVQdg zFtEA7KG|bYR9GwdCO;4!9%@TFMOQAUPp_shdQH?2+pWzV>yz^uS>n<7s6wKOpwNJC zL2)7?zOb^R5xIb3g_O|Hunnh>bBqVxk=ZF_opEezG)KKvg2k~^YZE8A5(TlvFZ;CI z%v_4XmvH0`9Wa22^IGywbuWsf9L9#_+}0IsYv8Va-!qluP3T$_pPwT+3;Afs6d=p) zt-l|kqjDUK9>1kYqAGh%@OR$iyC99H3ms1 zG+(FJFeK(+k=f{U`O47}YM_szp9s z(iuN3(X;pHgKFC=$d+aBYn1gt8<@%e=k!T_4_JKLF=uMxaf3b1x?UCVI#Kpn$bD$L}1#Qjv@#6Maq4Mw63- zVDE9==*5#1I{$1=sFT77DpCibj@$p-7N8jOwsMTlK`F=zG z=0@lS!~ZQ1blm+xdF-7q=ZWq%!E9a7b)9xW#R3OmW8l#tX=3FJ;=y%;16;QVxPN#G z=*x;kuZzl3bhIts8z5D8I&SbaF>Pa)xueo=>wC}6R;6f{##YY;#O7H4#7%;Mn1`Dl zHdp~pf74;reUN?s1s{;>!7)P5nJ)@i$EFWNebna+YFslcnc58vY`hu)sqtFxTNsHB zZ`V!)>f93(Exd+bf>AQ8t;@Y^!G+iXnfIGuk-+#UT7SAdK8`E+WwjKAk4r!?!im6Z z0mL$_BiF(iWj^(`b$%zp_mFnZedKc}4D|aGIP?VE=8-X2tp%rtAA=XI=TA= zkow4+9jNz1!oGY^(ReE+$6LgCzoIyN$)UWp!@hz65Gm)Rx%eH#*z%h`95RhO4@LkK z-xd`N`&%HW$qoH_Qs*ZV@57Za-0 zZr{(oTbkvJ21noiaGFkmo@mLJ=T(~5HMHm(EG!NZD0bsf5YA^JVdH;`eO}2#{xtRM z6P-&{n|)G6#V}JVdJ6IcF2nGdfh>f#w%#hPjr#7wFsn{JV*h@Cl3aJyct-*na!2O; z8=An%gJ?VJ(u-^N&3v{O;pC>9WQRi(d3oi{qAa@K6`RhqkL{T(F`i$Mesd@hF;rxjQy+!2@R%qJ>O ztJ7s{+n|8=*7S?1XTn>!2xvO;(}M2E_1)@LJPvQ&v>;*=-$1Y0VK;?Tr1b=TTKC)O z+{E!a<#K-Yybaw)x*YM0?!#c%Q5Ehv<9rZwsKb7w?b5!NHoYjwd3LB`DI*me{v z=soCR?!{-NR=fcVPr64pTN**IaNQLXZQ2L{Cb8t(9hWkTM@WzmFI{g zYe#K-OU_YzG)bP`=&58q?&hq0U>wwh@kgtWR4@&}aAxX=ODYBIndt*9pLi7K6i{RP zvd8_tuG;ZA3x+$48fiR~czYhPkHDC!?z2EKd4;(4V-9fcM4&L1#vEck?xF;Yt)8<` zRPbFhY#igBij)Bc?tVVDIRah-9~kGN0iTm_hST@oZz~umTNGoL(h9BucWQDG;v(33 z@tu-VW@TS66YbB#tbxY+*8ziqmoo(sI|pU{JJ8wY7qrHV+k!&Rq-$+&E85-0M@^Ry zo2Jh)r6d70t>b4}K@f9zg%ixDwk_X!%K4?LKFV>_V@lP=|CW6-`-ky*MPo%A9stCf zkR64=k*TIz!7&g!Rt{>Y6GZl2TaZ%t3x;j#Hw&0<|k!vJz=+wtxKV^sd4wj2J_1d2{cg7XN)`p_o0!{n%HQL0%e_C00gwd!l{8{B(Vu?Js0lMJXZwBz**qq< zRE%L5jU5I3#OIG{1-Cn;#zsx+h1-%GVhRvZ3Y^Z+9Yv@-n1h!Q`F5+p1&(~?bH`s@ zWpHq@98eZnGliYnzJ3!fAGQDTQ};4N_JTB7bY2|{_iQGY`9prKp$B)xjbuv0?`b9p zvWm?n6rw>}VN?KmuDx0><7OYNIZ;S!7_LNw%Zf=QSm+3yJE^bY;BegNfGPo%sjfYF zGwjDQFpYUP?OLLG=!L%wM`6YO)5e;+-yLOP%2q@5d zo^R;xADE_d|3Dkz+5hZt?Mka?)r>2GyR8Nk{h%MVrI>^te6u=|K&0Roq1D!X5Eujm zZ_TD57E|&$#)3@+X@#|TlGQ_Sf#MlgG4knf085e?aOjCe!6>xazpq2jB8KaH2D2YE zd=nL2<|gBUjD6f2Tv`HZDPePgX6jgQJ0`qVi{RU%Wr5TetlqHpwH&K-c~zC(jtv_$ zv4oo#W@Okegcn%Sw%EqsopC%JzyWM6CP#zwbU2kXU#r?%l#M249t}D=bJ)4w0NN5$ z?W^gxQ*s=NH<#*nKbkH^`(PC~B6i7D!8iZx$l@Iy;juvSH*;wJ(*mEdhm+Dh}YevN2!Vh?&TnZ=)_`vr8 zVrAnw7Aw#hy@aqmC{TB4ANryzEPhs=+RX!z#|(9Vv3ZXL2sOyU))ESi3e0_i#LW1Y4EH=UwE-2UQd-}^qOdlJ;>~6g&SPe6*$_^MJ6$OJo zg&faz0ETfIaV&`}o?q_WyD-r#;O2LR(Y~djqcvd*9dt1EUY(-uc@D-3#;|2_iD6H7 z0bL;GS(nmF(rF2x4*@ty_W~oBh#(MwYO1y+N4on33IN9C?ymLZc@j7_JkSlNCsNF~ zt&dcu&_IR&@9w&_BHHhLnvfF>=SLfc!KDS+x=FV5X26tW-~FES78b6#5TqUQE>2vZ zk!8{+2CIXQ^1=f!peZMqOgNeft)iIKyxd!%AsW^V_dPiMJ|f6?9_}nOinRCeGovYK zfl+}(6w_m~>o~2T>l-bMW0|GOiXepb-*>pfc?j0H{*ok$nac&~m)x_<@LSAvuiWn^ z`^KGt-!j)tY_@FmBFw@?L1Dr6vB&iv3>X62p-#O11A7ed4`ZFKxQ@iE55`_UoybD` z!h5?Q6V?_|@FYt!`e}(Gsxd&eu-KvCX>iGq^ornOYi80WiN=4i^g?e9o} zIfL%ST_Q|{1O%pZ7--(?Q+8)u0%`xS1Umhx-=y13&!7xKHPyBT&IFK>8J zueW*<&yF-OfQopLPVUG^qMK#wHba%MnAw=CG1B(Z%%Nt6S}Ei{=n4Gx+hWrK+Q@)Q1dLhFmt2Y0Sr|4y!{1XeLCtLYQcg#Q84q%Q`=4@|2}GD=06!V;T%a`Z5#KLHgnfA<26;TE zJ;O*>SA^5P%w77$_c<&nk|NekQTYomTr{GV5+ul6Y(c##Hm>BzD!Wv@i!uL~2W!BI zu%*46Hm4X=XtOatRQoGwgscvMtC{v1WGTK4vw9}Ax)n|fi)tCKDi~LjaMnWU#TdnL z_`zN*g&g+^jE7ZqBv7ph$lzwM4khe|S4e#g2P(3@v~jV?*(-A?#8aNM^@J8YRnd34 zBh8^-RpH^Jho0uyJ2A0m^F${U-JJ@&ec-70*ZnK*PsTfxNL^ge#(0_CldQC@n z-{^XlR~d!_Y1r{`Q6spJ=PVRj@V!7{1VpCKuzBD_vTr9r=YSzR7RZa;fw|Yg$XmI= ztq=f9op!G?!4m{SY2vBMFxCwWn1Q9=9ZG^|>Ii%+zoZt|ooQ3lzbQQq>op>c>EAzc ziO*XUl>xp?;2qA7`PgoJforN}queSuIAqWUXHw!NhjwfMVq45-pGw228WUv{pRNP4 zaVPkz*fWVtM_n{IjBGo*J)kKBwor26+0Q_O2Rnl`gZ)FU!9S;A;=-;L~qNDxvH)Lz3JJwhV7>L`6_ zo0R5USUP|5>i==tT3i91*TkMkNqHW=6bclJpRw3SZmZWty*95@5y4gs=3Yboy7Frg_r#|RHpC$Nti1X2QQ)!63 zyH7AitSqb~#HA5HZfn0M^}15Zp0s9ygd>-Q;fbiAOBiU)Q>DtSgfGdS))3?SSR-aU6CA$n@zpeslqNJL!9wkaW69y~H%W>uk*>6) zrenSX(OZ6)_?%dpNTB93ouSt->`##A0#&J+Uc>_cSUvxIL*EVzR?;rOn(ltL*OInY zbIO{jFQi1`0njEv_FP=@P`IwOz&zcxjcen-&jdngmNoyZB%oZZPZ3o4JsD3&)R|XO zmB&@ksoM1ZDM=E+UGKc8xrR=sP)oD^++Z{m&~_{Buo9yTC6j?1kreMfpvB-?=UQgc_FH9YcQAr z$$}^{P4}7}G8VXdqmSS3zEQ4KVrw1gGa9x|HH&7MitFSchMuoANVX@Pi>|d7H7xuv z7E6d?!0Na#hm|#i7JIzf&?*Y^6v0$D(&`pNU#iW^EILloZ=H$6B{I-Do+NdrRqU4d z3RaStm%XH26C_mRXb>M2y2>a()5Wi#ZZxQ(NdBqYI6cD$YI*ROop)0=cxCAQQmr__ zmau3){S-Qva(;Dw?h1vt6oP;8+WS1ljzqATcdkxXocmJ8ov=2DI{N(^Kw<6$%wWE= zOc8{7){-9Hnktp_4ofi#Knl@8lPuQH@-axpt1+!{OlOrP9{pGll+!`r;j)Fqu6WsP z@mebLnIIi5IhIb zFzEjH&V+}CZmxv| z=Plgq@Kwa@q_XF1iv)rS^~fVNi9I)+!z=8Wi}g?AZEf$HKpTtEw>i=Fpzx>ooG@ce z7ulQeX{fe&Ui8uMrTYwBC@$lI$``065^lWDW*(D1;sc&K^COb|oaWo}-Ijt!jx4FP zg&aGW2=-*r=}OuWkWap1FPjgZD*>3D|n zA`Pa{YNH6t{$9~HvQV<=OE&KhoBd19Z5T~usf3WldOW(W(C8}OcLe4c4hBQV(o+T% zwklzqq8G;RwC9WJoAFe!ne|E6HRaD|Q}#p|W4-z2gWNNOf4-owPinl#0?@-q9kVcc zAbiMtc6B89#|>V)d2$VujWa)8f3Klf@lKW=9Yih_$!amOUH}!N62U$jc*2{W`eNm} z1kA~IQM$B05oZ!L8a%6)=Sz%;pr0Lg#Eq{Be>B*Uuz-DM_-(lz8mJHFupQb z+6YUwYH<+6XqDdb#&nwjnniS>StFQo^+36Ocw%*%bV^1Gr4%*3C@w!DF6Jd?iOO2Z z_=txQms0t%jM0K&dk)ggGt$P|r+lfWaLW@1Lq1#Q7&?LX#b#n=?#?r!a8Q~*1|s?% zc6sv}0F5PByU=CR>s=&%iT_;+te&?ge3_+3 zyG)91&^kuFP|{_CA=MY-SX;uh16_ISS)F;TopsVin*oAeK|lrG;;!@(Og72nk58i1 zrqrsC$NHdliG5ppkf2ke2$@(QxMT^3@5N_MQUc!Ol`v*6gPE_@zz>T8ZVJm7%o{>%~4bTa^Y7r)zPG+y=7wO1*kwxU|f}C zH87pe@t)rod4^VReo8t2pGJ$K@I2Un%{W9gJl_A=#r$mTnjuy(Ngm*6A``)3ZrFpVM{t+N9x)wXfVR%%R+*`* z7+RMhSURjy2CE?vxavmux7`9fF2bX1!U+hXCSo72b7&*U!Ms<0jpZLC9S&A=8 zps_r#ka=o9%+3*lAHrzs#x0`h3*ZBUmyx=fduv%5Dvym{Q;p5C8S9Xxt+tKC3e<#s z8Lj;FV@x5Wlhlf-K%k)kzpwda{%JS5ftmIUK|!p*PbRw)!+gHNp2vAcK$HOjA=03E zEWvF{$(AGBq*eR~%C{fZmzJkDl)P&&V2H5l>>VU|YCD zB;j`h2#$TSIVmNH?^<0wvB((Poh;Boksx3XtUeUvQbw!vqZ~sEC{Rj5mC@8xDR4cTYg7XOSoPo`f}33Mgg&$j85vw_-Xv_6+gCNom8$k)B%F zpUbK%f1PL$Kr2iwd_|Eu(L1)df&G&05=$HU4K^)exz@qa!SN^jX}A)6Vrt>X@an6zu3$F_rQ$i+USVj*J+3sz z6$xahG*UKE$*&7q@-6)=u)yy7#GvT`zaxR-MaVW8V1Gy2G`TS9T+AC6;BbPX(p2{@ zox9`mAF2~nCH2VkQ@*0=ko6*Ug$q#Kum$Yc39GU$U zUlD&~;Rx}nBC`5+ICQdbC7FZQNg8yG-&UonP8m!YIjBJB?*17}cAWHB-P`iTHJT02 z>Z$(-o;|r#$%QTDWPmq9r1-MBqaMuq4^!QB!_?Bq)&J~nae9twh8D%;_&X_9BbHdV zu$~DtW&suaO1~|D$K=+otrN&|%;}BeE>jcLw2TIs;TvzpC}Z+=dAcNoY$-O4Mov2k zdd>G$XSqSHhDGYkS97X>Ry})+q!uSAg^;{Rts7hCZ@%T3*3c{DX&bW0B{b7jkRbzo96wjjM+wzkI>z#Xe zKh|v4{q|I|a=!}+nNU)*IIU?6bnsXq5+X@E~iIOVK~? zooUR%Ic;A2TXc?6n8=;5!db--KzWJ!6kAg)>Bpe!(Ow2~szdS_RIW)k`X6ZbLI@G* zqb+hAiV|Nzy?kU@7BUUK9dT{3$RjkH)d0;!4B>#pHs$-jm@yvEv_-8DgyqIeuyvNx zyP`T7d8Pt&JS&yLc=hP!pdmtJtP7#Rxt0WaoNLm>c~;H?DwXQ&dD7(*qK4WQ2XS2z z#&03Fl^r%_M{GHmQ3h`+<5AAPkh2w(1JX*Gy^DE{DDa90!r&w_d6CNrNg6CdLi4)O z9DkuH4DS@nf=LRt|HDKhrxa58DN(&PBso`e;0=6rfPRmfw-Jm{`Kz@46<2w!7B!?~ zEbX8Td(BaQ9RJ4G|G!98?}MQhrH@m=2vR1+h-TV&S1TF)B|70r;Z!RYW+r`}wtb(= z$T?H2g1%N>!}65=aG0QIiIEvoF$8c|%D}q)Je=5Ve_VZL z9K9PK@4ODH5Rdecpc&s-%IOibx*8mCIaj=}GzB7|@_L(5Zh*(v$xs9l4WuF2%yH^M!LWnTQd94te(w%Z=zZ|w6tdL45s;>UT=$OB|5R2$gna) z1wx?Z%DP`hmAe-U2vCb`WeUIfJ1<>0eK#t#V%PzS+uVK(eG=vq)fiEsiimZ+sA3IlDZVkgR!=uXa!Ik#k0Py)25f*-N?LE&~z1z^dNHqhyi@$FaGA}1yFq+sMl+nN|5 z*>S4wMr)#eR5JJE8``j)7k6`gTLIu<5oxJlM!aa`msKH=?I+PiJ(AP~HQWJxs)9$J zVPsCJVORI&%^8YibQJq{R-#7CsE>P%%8C!>gAf81OTlb75GdYq!K&zwn%?Q<6d1K5 zC;pS@dV|q+nA+5)0IAa&(MPjsnrQjAAgi321IT>6-kV(48PJbz^DsH8!lQw~2R=hO zT8z3UDI$`9X`YF)$xYhAL1eCzIOc&50gUV6zj|PtfzGG^V$mTPiwIYCGfXO9iGM|9 zHW8@KXCJI?t-`@S@&X7mFz#hVh|zl}96{!Gv5Kpo@+nMRCXeyW>WM;}i~!Ht*R81%d}`71snclPC6PIGu(cXY7aI28KL|e zX`en<3MMmeHAjHF6#~^b4KR=(yk*?(PqtI&A_xzKp>pM2ib0qN>^2dyi`-*=m|>I- zn(yk~Q(Jut1%+oezb+z^f9MHHub9*!(kjf9vRsTOTOdxP9!iGW;^w>$8Kmh5m!?>P z)t}MIV3?9D8$5^Q*3M?F$J407OAXPC;#7yr5!M$8|NNxs!!16LbzVsgDu7jUyn;G8 zDU{#?cX^_`@dO(=50yDp+v8Yr_Sc8HJ5>S;eL?#RUd~DquUM(O%Uxh+Cg#FY$C_Ak|L7SHu#?%z0V#2)FwbM8XW(8i{r5ju& zx&rD513rz4n^a^3<(19I2Bu+sq?dB-y%=mtEYjHAqfzw1A85ClRAItZkR+fjNTI9% zBY8srf<}R-hoiId6BD?kd5@j`MVrG+qr;$>l9WFtf(< z;Jj*{|48}x0bE{KaYD@H#@I23=T-fO*?DILNR>h3ina_>9Xz}#;YAC~ep>WKRuSRFM_ zJz!A;W}6IEAvzIwg&nyCx{3v=<0KY~s(9L9<0^sSk0fPB)Y6Qg_U&z!+V}!hXKsVw5G^| zH@Q#qP5$bq`&xxPysa&2VIE(QKq(}uIAWyXu+G^|g6#&!9;!W>mHB%y@KRl4WeSt9 z`P!F!&X9`T^7KfW!e+T*#mc7LDXB_!4>@Tp*ScoQ5zOMPWxIj2OcGY20tg)FnoymbX)nNi4x}-qA6}UttUq!<$q#fZqqFR1yhiM^eJ6D@pSov|AHrs*9OnMMAJCYw6Xo$B{j#O+urx|4je&A zsX4X{%~HEz07wY^m$nLhx%5!T>tdDK2TkC+;vusR;%XpnF8F+K9nJodOx-}18;VPH zVTCvZHDBW*Us6sgeBc77d!Hg({zphIaBd_!uj|2~Wr**$bYq9r-|uIek@-Gz(8zvs z;M32KC{<03zpzyzsrA*JJpzw`Blg_X*>XgY{Bqm4m^m5V)kgwX2Ce+CJ+=MJ!eEsM zeMwS%*jUt~uS9A{)r9!v?4u<>tKD+J#q-|3egf{@XvD|auQ7I_vK_#9j6PcnXYbKp zo}{9)1wCI4|3C}B4n<@4?7DFYy#08v7j-Ml6cZqWGp(jN{C&L`uGUt+8c|-aqFTSh zf~%htlqEIr7M`iu#gz`R;k<77T-iZLxU$d!Ph@ACQ{KT|Z*Q~YX9@lK21aB8qh1q(bJ%lR}MWd%rg%> zS^3<&%q`-Wy9rf>k^`@ANa%k-ESLN~E>5+`Wr@Fi7c>v5({Xfq|6D^rA8>DmUkK#I z7v<<65KV^G0)ln9p|&G_@%UG^CE?*(r}jUKh(;7`jPGXBekO(3VR007Ig?1IgAmlf zaX!GvyQN3br^I2FVd!`Y-iY>x=zX~5aSSr_D*7p+XTx#n`yLbBsjVxq>OVLeFN?DZ zzp%lLM{!n6n1To}QyR2(F2WW|`(U`Q^Y5Ij6cqiPsgeS23lzG0^=K}8wYd+fC=jyS zZJFB&z#t(F(YF2GIN56}@MpGDhEmHyjrVq+9+AfNrA|jB-G$uktcvZv(06Nf4*9}}AvC*a8Wl-o9^}Gi^YT+&eo@m>!%{twGlpQj!zVhV z_puz6t+oq~(*x_Nvq+@1Sn%)iM*q}h#3zp;C{lel7Md~QDpUr+eCiU{TCA!|fYJM& zw=IEb4Lvf;#r3J1Y{Rx4>G0w=6w)^5V!*{goSyj8h35eyc+ zkB#_^a@~$is(spAeM)iqH?xj@Tz(!+o6vmZV|kSo@uYpNYX+A}U;PKOx?{HjBHYQG zpq$L%(sYvesilbTb{B)84*gQpun*Y58wQdQxJrCy)S0HEy#OUL7hRlX_=aj$jXcp5a z$QD`Yf}s#5yNRdDV$;_3S9`2_%C#5eT{=vg8;0-p^^hOR)x=5c(W-XlF zs%w{|JH>m-apzEsilAB@nyT^E+tESBf~7m@mR^uWv2r7o_5U)MYBqPAE!N4hcq0IAN0-ka$-74aj z_G z3dn(e4kr`VZ3Xh)Ob}9De&{=KL)tXuXMM_UocI|}i_MjXq{7i`RgItS%^%|CS>vA8 zx6-7jWZe?2$F@PYeWaCg@=kBKq3#`~FWpLn_`D)qHt?5KI}iCK8W#Z7DuvzWA*R9k z(Z!gy70H2CFvew&O)GzsSd_(&?-}hT-(XM_*EilPCdwfyPLgUC@?_yE2uVGl>0Afv z;o5QWWZ3+g`+=EXxBQ1ps6-|8Wtfu!(OAVY^~lFx3n-U|KtDa_pTZzpx8&@W5+7ZASuJP|=e z%S~ZZv0wiMa|1MgsN~$kjG8|$@7!ZAUKL?NpLNi+xuLqtENW(^aiYhax9JzJl9t5B zWVmx)kHIx17M0uii_u^E(sA+8@V+!^Du*U4@95Kmu6I zVM-#+QJutX0rS^NjNiwA^RHGCmx8duDQ!NPk!^ZyA|q+a=uc|s&0+*626tzF$IrN!5y5w>RzUQuzTr{eh`EG1Re_3|n$50m3c4Xt&HNMy0g^{i8OmlxfQ? zkrU=9oZZR@q1+gyQMsDo2`%~rG`uJyH%ai~@Q=KqRR8Uw<-asLrOn!@4iQ=~N`f36{H}_MLhqOL)oZ zwywW3GdV4EAlr>Jb|Rozi05aQ)y!KNQ!hWK)JIBrg-&TtiX@2|L$>ZJ8srZ~jm@JQqvwI4|vZn<4v0hyD+bDSpG zLrLN06_!5XqBD+c8RdWc7DVumlJ2-9oH*e>89C z-j>`^+IIf+JI2+x-qVAsa7@sdxbU~)7|2>}^Wcb#)~KVNH?1SPix8kqQFF}a8Y8TK zcmQ0ZrccwMgY%SV<5T5%RST-YFw7jLZ@pVXQ*AKZ>cnNW9{4agzToj@A;t~+c%Ue% z<=|U=u(9EoiFPvMfNC|K zwv3JU%43*vu2cW3{oD06(1X>3SZ&oLQ*uT5E6VxG0?!%%;xu_MsI7n=@Av%quXz1D zCmwtgDN;-?Nzt^0q|x^X5)A@#oj3HpshLO3Wb_yVnuju_V|!WaVr7A1k!B2^J{lxe zTfJ)z9y;z&%6H~1ir8*n*Ba}rZv`FH6Nhwd=?PWQpHCM>*01~+GWl9zGAZI(gzZHi z9+TP7DOs8vDt7puCuJ8fZv)fS%p2Pc@E>l;_yZ@ml!LG3h2jP$!rfV@wPI9i{3<5N zWVDp&4~`d*3+3>>EPqv)@AHsHbl|^P;xz+N%k)~7^qX3SPIU`sJK%(-$;|Q<3W@s^ zU@ksMP8?|}xuWAwPxlz_Tm*I?4(*x*QT<_BK3d=mv&^n4J1bbzz?+aa**#u*$X%T1y(^AfZ8 z+n$a>TvUQ36&91v-cef#JI-OAQk~NzTkF$icjlzp^p$GaOtdHM_gHC?^JV=$Dm`*k zV7}ILm1r`Ex_7}tXVxPLibcf_GRMdf{jclD^cEpUWw|QYlRu{(8)8t(Xl2Av2hFV2 zIoxP4A=GR(Tztn6tzh()75_wZo~WCaDP>ZFjI|hP+^V`05=PI{#F=JzDG49FY!pw!-_U z*@u__X1}Bski)DIt+N>|^@wuw&p9oy5AWo+`=<6ir47QVBf7^x4~!9)@`7#tD(;H<}33QBBO`Tugxb2AMkoBvDDRp2=7O&lgP#e2){t|&w!UP zRQrq#M;+yBu5lMMT8$*U!!b0d?F})dsU>3ml`m(uWgC?c8Zwc};^Kdp=fA>-`px-7dudWrL)%cO zaMpNPfqTkgwRqYP2Fi~%CDNjzR^YF;bvGe1dgq* zb$`(J)4;jz*O;#agu35*yI4AKZusHBFJz!1vA5o$+fF(qR(1125s1NKjrIik`xrkK zr0Fr)S*oKj126PkAI`Ld+LXtU0B!JD6%(j*U@9X6GB*Nks(zWg&_tl-|K>U$v6%d;+Q zV0d;&+3#1FFqxu;;PP&%I$Et$uths{#F?&SZN2~iG|ra*tZR~J00G;90f2xI*;SWF PvBYQl0ssI200dcDj*FZN literal 0 HcmV?d00001 diff --git a/tests/test_db.py b/tests/test_db.py index 414bc066c..c539c270e 100644 --- a/tests/test_db.py +++ b/tests/test_db.py @@ -467,3 +467,44 @@ def test_db_sanity_checks(bitcoind, node_factory): # Will have exited with non-zero status. assert l1.daemon.proc.wait(TIMEOUT) != 0 assert l1.daemon.is_in_stderr('Wallet sanity check failed') + + +@pytest.mark.xfail(strict=True) +@unittest.skipIf(os.getenv('TEST_DB_PROVIDER', 'sqlite3') != 'sqlite3', "Canned db used") +@unittest.skipIf(not COMPAT, "needs COMPAT to convert obsolete db") +@unittest.skipIf(TEST_NETWORK != 'regtest', "The DB migration is network specific due to the chain var.") +def test_db_forward_migrate(bitcoind, node_factory): + # For posterity, here is how I generated the db, in v0.12.1: + # l1, l2, l3, l4, l5 = node_factory.get_nodes(5) + + # node_factory.join_nodes([l2, l1, l3], True, FUNDAMOUNT, True, True) + # node_factory.join_nodes([l4, l1, l5], True, FUNDAMOUNT, True, True) + + # # Both ends remembered + # l2.rpc.pay(l3.rpc.invoice(10000, 'test_db_forward_migrate', 'test_db_forward_migrate')['bolt11']) + + # # Both ends forgotten + # l4.rpc.pay(l5.rpc.invoice(10000, 'test_db_forward_migrate', 'test_db_forward_migrate')['bolt11']) + + # # Outgoing forgotten + # l2.rpc.pay(l5.rpc.invoice(10000, 'test_db_forward_migrate2', 'test_db_forward_migrate2')['bolt11']) + + # # Incoming forgotten + # l4.rpc.pay(l3.rpc.invoice(10000, 'test_db_forward_migrate2', 'test_db_forward_migrate2')['bolt11']) + + # time.sleep(5) + # l4.rpc.close(l1.info['id']) + # l5.rpc.close(l1.info['id']) + # bitcoind.generate_block(100, wait_for_mempool=2) + # l4.rpc.disconnect(l1.info['id']) + # l5.rpc.disconnect(l1.info['id']) + + # wait_for(lambda: l1.rpc.listpeers(l4.info['id'])['peers'] == []) + # wait_for(lambda: l1.rpc.listpeers(l5.info['id'])['peers'] == []) + # assert False + bitcoind.generate_block(113) + l1 = node_factory.get_node(dbfile='v0.12.1-forward.sqlite3.xz', + options={'database-upgrade': True}) + + assert l1.rpc.getinfo()['fees_collected_msat'] == 4 + assert len(l1.rpc.listforwards()['forwards']) == 4