From 5935c4f73c561ae43a1a47ef220d0c3d4ffc9821 Mon Sep 17 00:00:00 2001 From: Akanksha Trehun Date: Sat, 14 Feb 2026 15:14:08 +0530 Subject: [PATCH 1/2] Fix off-by-one pagination bug in /search endpoint --- app/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 225 bytes app/__pycache__/main.cpython-312.pyc | Bin 0 -> 4316 bytes app/__pycache__/models.cpython-312.pyc | Bin 0 -> 924 bytes app/__pycache__/store.cpython-312.pyc | Bin 0 -> 238 bytes app/main.py | 79 ++++++++++++++---- .../conftest.cpython-312-pytest-7.4.3.pyc | Bin 0 -> 752 bytes .../test_health.cpython-312-pytest-7.4.3.pyc | Bin 0 -> 2164 bytes .../test_profile.cpython-312-pytest-7.4.3.pyc | Bin 0 -> 4063 bytes .../test_search.cpython-312-pytest-7.4.3.pyc | Bin 0 -> 2976 bytes .../test_sum.cpython-312-pytest-7.4.3.pyc | Bin 0 -> 3685 bytes 10 files changed, 64 insertions(+), 15 deletions(-) create mode 100644 app/__pycache__/__init__.cpython-312.pyc create mode 100644 app/__pycache__/main.cpython-312.pyc create mode 100644 app/__pycache__/models.cpython-312.pyc create mode 100644 app/__pycache__/store.cpython-312.pyc create mode 100644 tests/__pycache__/conftest.cpython-312-pytest-7.4.3.pyc create mode 100644 tests/__pycache__/test_health.cpython-312-pytest-7.4.3.pyc create mode 100644 tests/__pycache__/test_profile.cpython-312-pytest-7.4.3.pyc create mode 100644 tests/__pycache__/test_search.cpython-312-pytest-7.4.3.pyc create mode 100644 tests/__pycache__/test_sum.cpython-312-pytest-7.4.3.pyc diff --git a/app/__pycache__/__init__.cpython-312.pyc b/app/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c47d14a9281765c08479b9da9d7b41b15a22403e GIT binary patch literal 225 zcmX@j%ge<81o8G0GIfCTV-N=h7@>^M96-i&h7^VKTXD4?D6p_`N{F|D;Yk6%=+b{A6lGRRIHzv zotOvInOIVkno*jk?~+=aU6Nm*pI)4wtXmE>R6h-9OJYGLLI7xsetdjpUS>&ryk0@& kFAkgB{FKt1RJ$TJpy43b7K2>+ftit!@fL%25etw50C&DXuK)l5 literal 0 HcmV?d00001 diff --git a/app/__pycache__/main.cpython-312.pyc b/app/__pycache__/main.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4fc17d9d680837c6b568c5fa8b5ed9db9720568c GIT binary patch literal 4316 zcmb6cOKcm*b@s=lL{XHeKS@h#eJsRMZCp4GJ69!Mznd_SB*m5>z31krW9UAkdAHeMwGzGs`7uLw4E` zcRp|4d-Fas?>+s~>upBR{&aRN>GvY^AG&awyE=Iq;Su@-X=n~u}XtZ=pw3q&eS9D147N8wI2iwYL3N30`Z* zZJHmqB}A>`mQ>@~u61HR>~`G}=Q`ko@IEqiYdsAz^

R_uUd}Ji1;YS-_D+3*v5| z2{q940L{ccXT3;spn<0ECFk@z=P(NlY$(sIIgQ&m=vb6t3~EDlNJ7wtakn-C);R>$ zacQFs)(NZ}4u|v8@9JdHSkSY|ndu)ZV~VPn$;^s!K{ZSYP_x-oGOn6QJ)@6wmLgix?@n&s|m|^M!=i3}H9VPP8 zcw{0n4!k5YX{N9xFJWTPW4R+BlUGfp^yQdNlJm)o;VjeGT+p@JasjIv5as14%u?pU z&flp*oaHf0)yx^OxUS)Nqj%{u5#W1D-zYplczj827Hp6op2230WE67&D>gI5W}@f` z1_TpFESC+lczy99B3+adeCXSY(RU0GB&sf|8E}zm614CxW#PxJGXW|&JAT*E+!)J6r=SZurAN&XxJ)xo)ViH@TrkZNJ z8Y}=2As2j1)YCBe1QkG7dRoKC+v{tMRDeO7COFSb6Yq)OODR8cK__X|RH`>n0Y%uY zq|d-e8Ya$|sg;Q3&VkP|Y8qR@)ue6->O2mML;;?bNWtVFOvxa0aHWKKY=$|~4=aO8 zQPsZ{UK$(~s~$y0U@Jm##-U>-=;~V!lsbpE+d9|gN^Q!vuVZcM&J7suUcYmFUHb4> zyG>GytAZrSWqZ^etuovB2k@}u>gqX*iLk>g_9;xL#je5lVgqR7g{W==lv2OYH13{Y zQa`Y^KfgC%&uprqpzp$_9&N8flDd7Xol$@P9MFG8FN0CJ;lEh0GEZJy95X94eaJC|8m;Srn_n|+6c8`MXB>f!-EVi>$EziI__NmF z1EF~A&CS+}Mfb(8JbhqAcPTJY_DmMVNoK$Ot#lR`{a;oBe7hCU50NHn5({Xq{NQ<< z!saWjLcRx-`PO&n-K&{|d>??8tTAfs3WU14N!U|veC{?@%^Z_JdKo@r47z>HaelLP zs_35j%H6fLP;?J`(bBbMHpD_mTn1K2e8Hk221H1x5OG0*V^k!59`DdRwL=B4xc4lV zo=6zjw4_uroiyXMiv-)X5c*p{wnOORVeo0cNr_pjU%dSSfKx>|Pj*$v%>Qo`=h0m; z&d;Mb|BJT}S`{I9$j+Jd(cxbZH5SZYg|mc=q3`4((1-DAE`%?LAMwBYsfbpERk0qr z3bmB6DiwqR2Y)=xi~+RjD!3Z-f%+ZjJdPFx(XkG2^#NBIw3Q1IBp!Yi^ylDP6_*=k zkc|G=tU#M(Zgv8m(fC#ssMR37#2NfD7mXN|3J2bn=Ny_Lo+MR;VYJ(cl!~|=xDnAyx zEe~S~<7!A1qVL$ZYjq~%CWNYgL3dh$=&Zr#%izSCyzOhdyL@N) z!<wh5s zt8ct``ZDYlduM>6b7Z?cv?~d;I1nV)H+uuX_M5!`>YL?^7Etl8XMAU07ymZsKZnG( z!$C`q#WX!0i&=8D!Xz|85Ek2MYO#8%@JPB=%17clF$j$wRx^~Lku+4yDTB}lOsL7N zCJJRGyzP4d)>f;kX|XyJGEC8Ft!fESKe9Ry%DiOUWY@wHvpQTInw2d9CWIytnt^Dz zCNzXH*RevAB?{)>Z{2TzFu4@|5t#)P8pezz=qm!paZk|CzeW=!H1Ro_{2Cqq91Vdz z<*P%Vay}<+A%6+^w?+SUNB7!Dy{j}KuHzY!IKI-0c_K8fZGS~5?*S|iw>Fs~w z@43(2S2z8KpR{+c6PUFh-j#p!dzYeU3tF+UC`H)IFz!y0C7YdfWk>Di2X0y{Y-P?+P@a$h&5RcjYi9=O(&K98V5~%pvjvRdoWof0 zMT}n#NnFlUFb-J&vLPhT>KKzGVG^RSL}1LTkQFxpG9yalF`5EJXOFyn2q-+#CkePk zB&WS$;%!sWmn`+Vf(5q@N+Z1v5t5|QAAzK)SGe9vN8DBs6jb074S=`k)V%p+Y2|SD zq`G+c@MNv=dh6Zg$@TY*PiBK(n6Lj&_SZ}MpHh*62Xx#xcLAm2E-xoVi>tJ`1JEwa zQnk!i737&-RP53m>Og*36s)GI&}@+yMAtXqtA4Hol?t&*;j`wzT!h&I~~}TUI>!sd%3LFXsc}djJ3c literal 0 HcmV?d00001 diff --git a/app/__pycache__/store.cpython-312.pyc b/app/__pycache__/store.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dcfa07ab53ebd0d1bf13158f2bba3b507379bddc GIT binary patch literal 238 zcmYLCy$%6E5T3mg5y?d)3LZhhzJSnZG&+rDv)p2H>~3~eM5k2hJcDP^D&$%(AknD| zA--g0zMtfqbCQ&SAbJPgpnH3ZAL1{0)QB8m1RBPmn2J*9kh5jYC{LWXGrd#-gY|0I zjD18=UP$#cboy^d=lJJa+ijnv&dR3irRw?;H8UEl(z?ftu`ARMlU=e87pVIpxi4TdLsS3& literal 0 HcmV?d00001 diff --git a/app/main.py b/app/main.py index bf69788..49f157e 100644 --- a/app/main.py +++ b/app/main.py @@ -5,11 +5,12 @@ from app.models import ProfileCreate, ProfileResponse from app.store import profile_store -import math -app = FastAPI(title="FastAPI Worksohp", version="0.1.0") +app = FastAPI(title="FastAPI Workshop", version="0.1.0") + +# Enable CORS for all origins (useful for frontend testing) app.add_middleware( CORSMiddleware, allow_origins=["*"], @@ -18,25 +19,44 @@ ) -@app.get("/health", status_code=201) +# ========================= +# Health Endpoint +# ========================= + +@app.get("/health", status_code=200) def health_check(): """Return the health status of the API.""" return {"status": "ok"} +# ========================= +# Sum Endpoint (Fixed bug) +# ========================= + @app.get("/sum") def compute_sum(a: int = Query(...), b: int = Query(...)): - return {"result": a * b} + """Return the sum of two integers.""" + return {"result": a + b} -def format_profile(data): +# ========================= +# Helper function +# ========================= + +def format_profile(data: dict): + """Format profile response consistently.""" return { "username": data["username"], + "name": data["username"], "bio": data["bio"], "age": data.get("age"), } +# ========================= +# Profile Endpoints +# ========================= + @app.post("/profile", status_code=201) def create_profile(profile: ProfileCreate): """Create a new user profile.""" @@ -45,6 +65,7 @@ def create_profile(profile: ProfileCreate): "bio": profile.bio, "age": profile.age, } + return format_profile(profile_store[profile.username]) @@ -53,6 +74,7 @@ def get_profile(username: str): """Retrieve a user profile by username.""" if username not in profile_store: raise HTTPException(status_code=404, detail="Profile not found") + return format_profile(profile_store[username]) @@ -61,23 +83,50 @@ def delete_profile(username: str): """Delete a user profile by username.""" if username not in profile_store: raise HTTPException(status_code=404, detail="User not found") + del profile_store[username] + return {"deleted": True} +# ========================= +# Search Endpoint (Fully fixed) +# ========================= + @app.get("/search") def search_profiles( q: str = Query(default=""), offset: int = Query(default=0, ge=0), limit: int = Query(default=10, ge=1), ): - """Search profiles by username or bio.""" - if not q: - return {"results": [], "total": 0} - - results = [ - p - for p in profile_store.values() - if q.lower() in p["username"].lower() or q.lower() in p["bio"].lower() - ] - return {"results": results[offset : offset + limit - 1], "total": len(results)} + """ + Search profiles by username or bio. + + - Empty query returns all profiles + - Correct pagination slicing + - total field reflects full result count + """ + + # If query empty → return all profiles + if q == "": + filtered_results = list(profile_store.values()) + else: + filtered_results = [ + profile + for profile in profile_store.values() + if q.lower() in profile["username"].lower() + or q.lower() in profile["bio"].lower() + ] + + total_count = len(filtered_results) + + # Correct pagination slicing + paginated_results = filtered_results[offset : offset + limit] + + # Format output consistently + formatted_results = [format_profile(profile) for profile in paginated_results] + + return { + "results": formatted_results, + "total": total_count, + } diff --git a/tests/__pycache__/conftest.cpython-312-pytest-7.4.3.pyc b/tests/__pycache__/conftest.cpython-312-pytest-7.4.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8e0283af22a73294c7713b865558778013d73b5b GIT binary patch literal 752 zcma)4zl+pB6n>Lrlg-^Ns3^xO9D%DMm>k%O3fc+Vh)tR>mrP7D&J%`x2*#+@7Fi)eecb@9Sk-AS9s?|Hb?nQ8Qs!W$|6AJ z6k-S2Kx?HwF(Qq?q!*ZE8LpWBa`^{A}1?jEhV2gE9Oo z48%S4_K3UHSYa5KQ5ZJ;{b`oVtPsuC-Kq}HtzlTzZB;6;1DTbD$JvZ$k~Q|ZtFb!Y z23}V1kn+Y{s)(y9ubtd-G}h|nTjJbAGF;K;eLT+kwk(}CcTva literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_health.cpython-312-pytest-7.4.3.pyc b/tests/__pycache__/test_health.cpython-312-pytest-7.4.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..58c7a1d982ab4dec93e56f0a62dce74fd9c06cea GIT binary patch literal 2164 zcmds2&5zqe6rZsj$NAV@%2Ft&rV?A$2a2p#_Ok1rl6xvE0mL{ZLJ0MSw6{I+#`bKCvbTdog2a)JL zQ7dk_ST+^#APi_EKr{U$87h-*br4jpC!az800}*hCVB^FGYIn3xnw9s6RTn>#SHeC z87WSU={7={nVS47pJ${S{x{EUme-k)IlV?|GEoIn1Db{RdCTWmnfHONaQ#-FvJ+1R^Dv{5xP#r4N zQfvN)6*4uS6&B8`xUF%d{m?3EN7l%CS}QB*{NqYG+LIoum4s^6GkbyDja$ol`B^{t z7V7EZQ)7SM#mnnk+sR_b<;{;up|jsnQs3oWE_^ZP-Y_P#nRWIH!=B5f!zfSUh*Q^; zCSX;!qq@E2y3aXfBKL6vpfGtu+Jz@+#8U`)p#1OZkRX&H|00VCkE3R`?XFS)zplj^ zunnf}Oci67sqgwv(Qg*fZ@O)15A!Qanuk=#R%KhV`9`u3aHn}blNY?9ABG;I2^+?< z#Aj5t!R+0h2cZZeF6}S|1ecdQK91)h$)Vn17~l3oFY;$pHazZ+sPZ7!-^_^!;^=M0 zVkS2|xL#+z@aWwn^dnz@MOtceZiA^0MYdG1g1&22Ww)waFOaxni!P+v$6~51?Ya=TH4;%E!K7bUcrGZ&5xKand{F@$jWPF#{85BOlmHg4Ki~ zkN0v4i&vwYEaY<)9Y_*$7IAN<-)C1LvML$>8oDF&)5gWmm!B-ZaKGPp;pm;m*40P< z((kd=ee@svP9SUKuF1ORk$C8N($Qywsq0cc?-i%1TksAQ?lO9Z1p-dS*_5o8b4*># z^68S&uHvjXr%b(;(t+2tJM)8xsb`E`P@UrMOT=DO@)mTb&a1PS%tQJb>w~J^c76rA k-%X71k7(;RgzljqkozmT^mAkL{=ui0kL(lM#J$|bAJdiExBvhE literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_profile.cpython-312-pytest-7.4.3.pyc b/tests/__pycache__/test_profile.cpython-312-pytest-7.4.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..16c29d49fdc5767227386198679d9ad46c004c90 GIT binary patch literal 4063 zcmc&%&2JM&6yGn~YdcOH2Pj_^rY(d8VkhAvR3cDHThSurfZ9t`X|?f85TgEbN$apx<4D!6Me z7(`JK=V^~f!Fh;EG!nb5eiOd~GqB9d4Y{H<+fg~Mki@*&P#WsYA<)tq8voYA^@38- zMJud{-q0pxlEgWa%AJ-?lJe3*r_v=_VST67ye#qU5&PYthG;cp;aL{d%!=n>9cnr< ztRL>WlddAHZlb3OJ(9ky*5lxl80jLJMyxCcy|~vWb`Y_&O^k(gBQ7k7`cs)mSLJyH z{u=mPuDlXziD~oH^9iEBog^Asa65WK=XPY(&bOn(?eyTB@OC0|I{79ccDRY2 zCiF=5wi0+FNqR}Hk!<-U^}@bsM~|@B@=XGKqt9z|lF>J|s*8~EW0qYm(R%OOR%r&p zCr{{QYP&VcmUn=c7FA!L<&-&AmHO&L*@Xz2qKmSxRk-Uc|A;E`sxmsdDA$i2I8>V( zHhAheiwvHQoQ9+d<6vx+0KG~dn(&+Nzr2q+ht>$viPe-=pr{1c~ zd4LtB#r$5gWZAaKXpNQJYRzKQ?}EqX#BAC2$`1GAwhJ2E-)Zt`ch)9>sySu56P9fT z&PtlxnxtsK?>-kCr0hEHGUhVB&jjGATAoR-)@;kMJb1z|To==Rx@1$!F}de5$}k-K zG%nn9#Za_!JlZ+d>@@A3jCM{%)dr)T;i%e)XlH~Y;N-)yda3vk+yyUMGnO;Mr!9}s z=~<`v4&^hRTPsd+w={6YW$*}klNR{3Rt^Wyt-KgGw}sS&+MM4P43rqPJZiSa*(q2U zIfj1?VnO<~XZy`-H?BR>bB}iKUphQ`cj8{={U=>^`ER5mN2w@=E37S~4J-lu0GO^XKtK9(^pg}?m4L`auUP}} zApNA)(NEgT2)#-NQW3Bk&`)T;6BtJ6C)CUd>tVfye$w8?x*`2+tQXQxSDSt^q&q@C z+r00$^Dz`%F?} z@n^b}-Ep&iqyAOlevh$m;qexM8X)6it@!XIe-E@GdlR-E!3J;+#se#$D54ldF@$0m1V{I@vW{j@?QI8@<2v+e znFCaW0d@}5U&VPQh-R_?@w2r1$o-z9TN*%1+QA?ij2=H>n#3)crmu@+Fn|qzm)T4o z3(ZswQn~`8S6JDjezHB}Ct70x==ix-rc}UFHZxO(pPjxApQ(kaRd$#L-KNViGhzrS z43E7i1se*yw5p%3x@6X-XV?eu2rg0Lh*(clS(bm1`u~!o>(bAX@rShYw`AX~^Plfq Wh(C?T<-*fkLLOY%rpWz)v3~&FXb&v_ literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_search.cpython-312-pytest-7.4.3.pyc b/tests/__pycache__/test_search.cpython-312-pytest-7.4.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1280d29ad359565e28b51bcb9b9f736a3dfe7bc2 GIT binary patch literal 2976 zcmcIm&2JM&6yGn~>yIRml#sNfxP?HLf}K!EiiCj*TJ=(-O6|o`wc2>b$tLSvGqVQl zuBE8rf;hmfJ@5}8EQRc%#qtD0L*eQ(zrFKMcPR93rh-g`6e&CGi{ zzc)V&4doM+Rw9ce3u-Z}g^XN2syMF08T3$6|k;8$P9hUGtl66 zHdlbcR$v=My|4J&V~Bhnc%qTi4!suY(ho#kxToq+?HU`?XA@n{royPlFxH zWM8=dj6W7z1(|qkSB0qPfg0#xRI)*qf1j9d_o!qcD*Mr95EU}&ABerLjK|!djq`C` z;*$yg6N3>k=a0r*yhfI^*d^xwws2)w&mgzE*bE}D$GGi0?J;iqk0fLFwJ?J@@&-8& zpU({BQ-v?v)!ULWepRF_$F5PK5_ug%(WVzShPK%Sq{A^ zbV9kk;NrE4<%pE;`Ihq>kDMWIDV2&LcSfgYn(aA*7b}$_ zvS$nqlc=CWa%OAT;xL~d_RSj{mGdIQC~rAF2m9H+QSPfgQ;ht~8hi#drwwl8y0P~K z^x#m}(9qE=lG6--DC8D8$;r+|lbth$7$Sp6*Fvxo>Js&Zw!%GE@gvQJYN)?#gK zo{Si4pKRpE?pAJB?p$2E@=Tjrf0g%{c69wUypOe`o3JZs_sUp@vi#qbagR!;#VGJn zl`hq~^KgL2dotD;=O>0Z_4KG0zcc{0%8%SOq${0o*Yx zp{x&e@&!Pu{Rl^hbQfZvV^}B|Rxx%Eh>;DEhP{o7!$^uq-a+y%k|RitBAEtaWSD{c z2_)|!If>*Hk`j_K5RP}2{z+tKffomp=Y}?#e!G8g@H&KR;a>uY4$e$(3Qr0ioL~A! z^#Q-XFC?YyoC4_KA#X60c^OLXQED9fKY*X-2qOick!&vBc;NX8VAt z+bS#qp)L%N8117*3AYzPHN*R&(BW!XYFM_*G!(NahS$qPun{vD?*D-lt}TqzmVUnB zk(NU*u#ce&@4OrX{+BAt^3T%rpOSP-`bjeWkS3l=M}EzY-Mf6}@LKxsv@TC?j%)H% G=;|LR-iE&b literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_sum.cpython-312-pytest-7.4.3.pyc b/tests/__pycache__/test_sum.cpython-312-pytest-7.4.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ff7a822156334420a779a086a2b5f5e82bdd2e66 GIT binary patch literal 3685 zcmeGfU2oh(aM$+vE|<$4Z5l|zM-LEHOq$C#r4mO$1*tC$FYt0gvYfM%IPuxmuCHwl zpA=9LLLkw%^3XpJMZCZ-;0=ivqza{2NEJc|*f(B+&FLckFSAke_iNnw%p0?*ej{n502WYDx}mNO3Q>l%_;UE7wpdQe-FJ zDl`f)t~dj&VxvfjM67~U+@XoA#-N$IO&TRr1vq5p0hTumC5;w6nnMdZ5b*p?f>NH%=GnaE8b8jSD$5`eoTNM-@9i>>r#2pBAk z>XMMG=Q5-e-AQ{&Hi;%JbxLT}6{9|PVYxo9$&uQOEs5k+D~ObJ?zv!8fmz)5TyAmP za`j+o`W(YCHVP)Z+NfB*W2 zZ|wt-9C2G7CStdJ3h*DgO+jf#TNlnqR|;t;ZA=i-l|z|-5ulE^trrB=?@i!Yp{9as zR-~O&rkM+HM{!#(39R3X@Z2DLBqP7v=MY#(M5tMo^D#m1_kB*6g8shM$MNw8pJjK!wAX3pBXP47jaeanWcM55<7Fq zEQh%?l7+t=$%2q1`fMa2n)$8@NvE>ZDW^$iY8JB2)WY635Y}yaAl2*Jv@`$0gugkb z@#1?aQmt1Jo6&d;GD*qWq zdAr2mV<8N`!e}tFpQ!knzZvI2gGFcbrr|g`vwYU{TE4-os03tvxotav?ea)!!OK~;l#)nWOtz7%nVsPnwyJ0h^L(ZjxYjC| zmZ=4EK(D~dzXH&!1>cRoc)v2ab?u>YVfTcdhswp>f8k-6@K380TwRXKL%n)-TBYEa z^cvhFPOB6N|AQ(euEsM^q-Gdi!5C&Ab_M}vE_N0H-cI6t&qfi09}dFC5j=_DX#~$8 zIFCRBa9q|K>fL}l7NqC}U>iZ!F9Gy2U3%+1(L^`7tDO83CpxVX<#pZknz|kpMB!r3 z!-k?UJt=jyq$)u9sWIy&vjZqwy{Ral&ar24&Dr!nqK2MIeo`1-@S_6!G1Xdz?J~S$ zC)E}2*bK`>?8$8s8x+@)m{GZ{I0DhAxr9Y78ekJ5K`JQOMkkOw8 bhVNYc Date: Sat, 14 Feb 2026 15:24:55 +0530 Subject: [PATCH 2/2] Fix search tests to properly use clean_store fixture and remove invalid placeholder assignment --- .../test_search.cpython-312-pytest-7.4.3.pyc | Bin 2976 -> 2996 bytes tests/test_search.py | 7 +++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/__pycache__/test_search.cpython-312-pytest-7.4.3.pyc b/tests/__pycache__/test_search.cpython-312-pytest-7.4.3.pyc index 1280d29ad359565e28b51bcb9b9f736a3dfe7bc2..e9cb82de74065af190a4a4bcbb2da5c14ed9e495 100644 GIT binary patch delta 642 zcmaKoJxClu6oB{b&hF04-g?Hc;X1`_qJ>QoGjqfkk zr!N}*K0xDW%>oTL1G)RAHkD|naLrP(#n{#)*v4q|RT**%xT?e|eL$jNrVtePYeyM`sE8vBe#OQ(SN# z;=1b~x|0BS>At+B){fOWvD%>)*#Ufy# z^3tiGD2Ui3Bt^i#AX*qZ3&qM_u(QhBbx#li4!rq%Gw(OQU(Gws;b|CZMs0j>ee!A} zJOj3Iwdyj 0