From b34a956baa1cfb9083c0edb86d476dbde1cead49 Mon Sep 17 00:00:00 2001 From: Eggbertx Date: Wed, 1 Jan 2025 14:52:43 -0800 Subject: [PATCH] Start adding pre-2021 testing --- .../internal/pre2021/sqlite3_test.go | 54 ++++++++++++++++++ tools/gochan-pre2021.sqlite3db | Bin 0 -> 81920 bytes 2 files changed, 54 insertions(+) create mode 100644 cmd/gochan-migration/internal/pre2021/sqlite3_test.go create mode 100644 tools/gochan-pre2021.sqlite3db diff --git a/cmd/gochan-migration/internal/pre2021/sqlite3_test.go b/cmd/gochan-migration/internal/pre2021/sqlite3_test.go new file mode 100644 index 00000000..0b6c1dfe --- /dev/null +++ b/cmd/gochan-migration/internal/pre2021/sqlite3_test.go @@ -0,0 +1,54 @@ +package pre2021 + +import ( + "path" + "testing" + + "github.com/gochan-org/gochan/cmd/gochan-migration/internal/common" + "github.com/gochan-org/gochan/pkg/config" + "github.com/gochan-org/gochan/pkg/gcsql" + "github.com/gochan-org/gochan/pkg/gcutil/testutil" + "github.com/stretchr/testify/assert" +) + +const ( + sqlite3DBPath = "tools/gochan-pre2021.sqlite3db" // relative to gochan project root +) + +func TestMigrateToNewDB(t *testing.T) { + dir, err := testutil.GoToGochanRoot(t) + if !assert.NoError(t, err) { + return + } + if !assert.NoError(t, common.InitTestMigrationLog(t)) { + return + } + dbPath := path.Join(dir, sqlite3DBPath) + + oldSQLConfig := config.SQLConfig{ + DBtype: "sqlite3", + DBname: path.Base(dbPath), + DBhost: dbPath, + DBprefix: "gc_", + DBusername: "gochan", + DBpassword: "password", + } + migrator := Pre2021Migrator{ + config: Pre2021Config{ + SQLConfig: oldSQLConfig, + }, + } + outDir := t.TempDir() + + config.SetTestDBConfig("sqlite3", path.Join(outDir, "gochan-migrated.sqlite3db"), "gochan-migrated.sqlite3db", "gochan", "password", "gc_") + sqlConfig := config.GetSQLConfig() + + if !assert.NoError(t, gcsql.ConnectToDB(&sqlConfig)) { + return + } + if !assert.NoError(t, gcsql.CheckAndInitializeDatabase("sqlite3", "4")) { + return + } + + assert.NoError(t, migrator.migrateBoardsToNewDB()) +} diff --git a/tools/gochan-pre2021.sqlite3db b/tools/gochan-pre2021.sqlite3db new file mode 100644 index 0000000000000000000000000000000000000000..137996f869215ea9a1c309704733aa93078447df GIT binary patch literal 81920 zcmeI5&2QW09mh%0vR)F2NgPA)QqMHf%$5@?da<3vE!L`@+5~l+)Uk^dL#xpeZLy(9 zg{0zSKo3saVZe6ScG-P@zvkAAV2ADZ@XeA)+ldei zjq#;riF}^l^YZ&V?++#Z?!2+8+KRMom~GjXD%>fK=ed_9iR0*$Ei$a5C8!X009sH0T2KI5C8!X009s zc_v^f4O=yIE5_FUG4U6i_$j^N009sH0T2KI5C8!X009sH0T2KI5cmoZn2jYke!7wz zi&dT70;!`}-{f6;Kmd009sH0T2KI5C8!X009sHf#XJCPl%u4Qs*+sOh(LADk+)IRFYQ< z&flEeY^(af;%;fVSd4IbwX11TN1;c!(M@B?&?T9!-CM%aY*%-efby26AI>ZFxtLC=;;=&pn=}gfc9l4Ab@+UnP|X zwJa?!E)7KPIXPN-3Nl2+Lh*8GNl^9svZgjKNmk3~YE5ZNk<=aCFqLL+9=tgAF2pDg z7bfX7PI*Ya-K*^4Qla$Dn%q_jbI;S=b46#TJL-0$r8MqZ-L|dJJ@knDURy4fDXk@c z6;5d}ryI8=!<0;AM|mKzsMwVsEj#z4?JE;6?6%NXCex|DGATbvnb<8;kqL`DSeaOX zanAk!>|Z$X9=+iJ0T2KI5C8!X009sH0T2KI5CDN^kHFqoY=TQpB$F5BWnSQ?l9j1s zGM0>`Qpr?HZ8jDCy7TVtl)S>eLC>CpFOi?B?`*VG%k}BqSkNWAr7#H!EqPy}k6q`u z6CJgqScQhwcRRkcyii;&UaRVc{;+LyE$(*`w|A1KT#YA_GnZdWIk}n-a>X_nHt3&{ zAIucw`4 z$tnQ-T7Vw#P%aeN_y2kEUmU$~fB*=900@8p2!H?xfB*=900@8p2plH@Y2jST+XcY) z|Bq9_LKhGK0T2KI5C8!X009sH0T2KI5Qrwg*8f8G9w$oKKhXyc5C8!X009sH0T2KI z5C8!X009tqIt0EeJje0O1Yl-nW{lpG?8uPaL#{$6G4GN5uF<-_i_Y$VLBEAXvUcBZ z$?@^arI%hBo4hg^ z3Js%u$5tD6Ri#Px0vz*uw{ANI1<0m= zEYXwvd;JddpiGv^m4(8)ogLq9VBIj)9aWb#=I9#`9Qor}I((Cj%!=V|OST7;DKA&9 zML14To=%Y?77zdd5C8#(zz@`TA~!X~ z|76-`HhFg%b=OpHa5B2GUaM}@q>bt;t2HTbmS)o_wJF_L+o-)(TbFLH-?&*_e@lA3 z_LfxL+_-gPje^~*t!+qax9ER!b@fs@rKy%pV@6Xkr8_sPtE&_^@Rq(+d$qc`x*-)w zu&J8To7MG|>(%wyg~hzIxpw1?&Dy@~%JtgH>(VR}d-0pn%uJrb*bh6(5z%%#njtsq zk0EKRwx;xD!B<1_(sm_+)UEDTf0(6({C<9Y-DYN(a{D%Nf)oyx_RRV)(Bb$>6kS_> zP-g>j-BQ1&M2jt4DP3K>R`!HDWEI&ugj9*e+EljXu4dOQ`{6+#`jpa)#$B3UymIT- zYOT5!&grYw)jKtcw?Xp{TWQwGEcC{Wo3%R|)tk4&(kq+m>r{8@fe3|^eY-^gG*&Z$ zVhM5+*cD=|$%0aYQe$C{&Ko1iEJjD7X4O*e+J;3Eb$Oc%7DdaIi%e2C>W=kk>o8F! z$kJ>pmJ=)4c;2yF(a~O|2^EPe?JcEAk!qT;dl>GG^-V^b%ucJO(y;5cQTL{P2bNF} z#HwUS1n4Andcr%(QiBc zv^z-nkQkjF!Jm>pP5`&pKT2|r<(BM@Z*K>Zi^Zr`$mDF5YPL;_ke;UQQ;cfi%7YHo zJgY}K)ViaB1*YbGZlO>?)s`*l2Ogt5ju;^-K7_h%*!#o8A;sYuy|2smlPcGc^|~84 zs1_mhY_qGR^N%hHP7C=U7|7jl7PS!XY-F&7c<#fr5NdS&J(V{uGItski)={tIyPye z_U)d*%MC zQ*9bRm3v)9ZzuzoLLapO&so;QFHy++qbi@s&Cl~6Ec!i^tm{UX;%h6q?UX|Ab*wK| zRz|(P!;}b3LEfdlKB(W(!y{{$KKjQimyW^A^F>GNm8BCwhS8C+(1dL>|4m-?xOOt7_E;nrTJ`J8vuvAOuFP|FCtxWQq zsyCGf-gwEDPR@1R$6hb_XJb^IldMkf$=O8i{CWQUV3Kdq(ukf8!z#3YdOB2Gp3E>M z=9HGR%}`p}uVn<-ORY%@o1n_}4yYtD%yc!K-!n6=ju(T*5&_4sFeluAy4(w>9#Ux3)~>zA7^%0#>D-icBp~KIzO&Kg{?_n@Yzpomr80CJw6X zxeueU(>j8z3=|uitGF9i!R7%e5jFYrbquzqLNgW$c)&W4d}#G};Bte!8yfYIJ@eO4 zYW_r)7P$(oq5OGnv|Kv>gM|}LFZbgYe8x;u)^eQBlY@L6*P-c#33f;ueUNN`Zl>t3 zbAxi}T{yB5pc_{Wqq)DF>a9ZL@7&ZnDDdFiw^Zz@e-t=!#=GxcH|5>_6$1JB-E@%V zKt&2I$9w(v6=!<;qQMQbAkIV9jL}Q@!xK4p50Gs(Ia^Zo-SCJKbAFz zjLVfeDy{?CP>?HUT42jN0kz&4N8j9G=w|G1?H$p~2x3#w6t;sIkrerEb=w_k)K4;C zQmEh_?BR`^Bp-L5mG#KVp<9IBLTkrs{WDx8Z!A80m9|*j_ zC%N1NFIFmYvrV=Ewi;wLK$z?QML>m&8C;EUN>c`T@k@?gI6wddKmY_l00ck)1V8`; zKmY_l00fQ~fuxX2IlBe!@BcsH#D9vP94{524G4e$2!H?xfB*=900@8p2!H?x95(`a z`oaH9X*~5#VQ$v3(3LODJx?cHO*SR6nnX4knNcU3jDu$A0RZEt#pJeWv~6SVe}r16 AjsO4v literal 0 HcmV?d00001