From 3773c2e4de0587316ed418ab457970184ff1043e Mon Sep 17 00:00:00 2001
From: Tue Herlau <tuhe@dtu.dk>
Date: Mon, 27 May 2024 14:12:39 +0200
Subject: [PATCH] Minor change not on pypi

---
 dist/coursebox_testing-0.0.4-py3-none-any.whl | Bin 0 -> 6531 bytes
 dist/coursebox_testing-0.0.4.tar.gz           | Bin 0 -> 6636 bytes
 dist/coursebox_testing-0.0.5-py3-none-any.whl | Bin 0 -> 6647 bytes
 dist/coursebox_testing-0.0.5.tar.gz           | Bin 0 -> 6795 bytes
 dist/coursebox_testing-0.1.0-py3-none-any.whl | Bin 0 -> 6651 bytes
 dist/coursebox_testing-0.1.0.tar.gz           | Bin 0 -> 6810 bytes
 requirements.txt                              |   2 +-
 setup.py                                      |   2 +-
 src/coursebox_testing.egg-info/PKG-INFO       |  24 +++++---
 .../__pycache__/__init__.cpython-311.pyc      | Bin 0 -> 181 bytes
 .../__pycache__/__init__.cpython-311.pyc      | Bin 0 -> 189 bytes
 .../__pycache__/testing.cpython-311.pyc       | Bin 0 -> 15069 bytes
 src/coursebox_testing/testing/testing.py      |  56 +++++++++++++-----
 13 files changed, 59 insertions(+), 25 deletions(-)
 create mode 100644 dist/coursebox_testing-0.0.4-py3-none-any.whl
 create mode 100644 dist/coursebox_testing-0.0.4.tar.gz
 create mode 100644 dist/coursebox_testing-0.0.5-py3-none-any.whl
 create mode 100644 dist/coursebox_testing-0.0.5.tar.gz
 create mode 100644 dist/coursebox_testing-0.1.0-py3-none-any.whl
 create mode 100644 dist/coursebox_testing-0.1.0.tar.gz
 create mode 100644 src/coursebox_testing/__pycache__/__init__.cpython-311.pyc
 create mode 100644 src/coursebox_testing/testing/__pycache__/__init__.cpython-311.pyc
 create mode 100644 src/coursebox_testing/testing/__pycache__/testing.cpython-311.pyc

diff --git a/dist/coursebox_testing-0.0.4-py3-none-any.whl b/dist/coursebox_testing-0.0.4-py3-none-any.whl
new file mode 100644
index 0000000000000000000000000000000000000000..682187d524c7dbf262da14f3d2ac1097aba55c7f
GIT binary patch
literal 6531
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
Pz`?MbiGksm7>EY|3#U+=

literal 0
HcmV?d00001

diff --git a/dist/coursebox_testing-0.0.4.tar.gz b/dist/coursebox_testing-0.0.4.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..68cae0a4239ad93bdedc5abb61de0d37061a66a8
GIT binary patch
literal 6636
zcmb2|=HO^J{2+zte{z0lQE_TgenosqYH>+sUb?P<o`If;UP)pR!&}?G!H>6X`@8j@
z_Lnnfd^edJ7J4L@8{Z5U+oT$-;KT9uZGc*7QtOXLH|n<S$!R<O|KGWZPuABk-qzi|
zUi<7hA#eBR9`080n{*_1AA83ye(kw%)=iT?@BBSWCz}0Td;R;YoB3zVU-NGMDEsrz
zUF{_nNnspM_Ww2ueylswINi_s*}vUxn^Wax@Gibub-U*Jt;_p@U*^wOtCMjnc~dWE
zC}ntj_u8wyyDr}Od+Squ!G%NnpE<6c_kZ@OJvVdYuAE)AGv3_s-|W)OUu84*F8i~&
z!fpFO+t7diO(g4C|K7h5fAxR0*Z=)p|MHjo`u`wy^}hUf`%PbYeXjrf>;IPWE4KUJ
z)S3Rge?LF((tq9=r7Qk3rmf#v-tg)Es`rh5uEz)e+aLJ1{t0{cg`IN^gXV>JEY91f
zdRS6boZIZPZBe4{yEV}>M4uS6^;}5g_T9bU;hjz;_EU2^&SZET=Pr_tl3QFh)yLVZ
z(_VG*OwoInv=Z$$?qTK3kZ@$JKcjQpxkYRyLng1nO`Z!b|EAoHR%A_>9TE7%UxxdG
z;O+TGieDLaEACzS_)^Cd$t?l<r<i`>Qcns#eO0DEAu`D2ooq(w84r$P>k_q&#a=S`
zkB*sbQ`9V*yHi;+q4Zq82lJ9b7TW`5VJGiwpR4(A>7Hmuo3gnXVXE7jR~$ENKEq+G
ze&uk~h5lH36~WS2UIU8@dH1fbDV1THEvMi-GbOOa^1E?;+?!6}%*z&E8dRQ^=Ez4J
z)BHEvPvV)vk1OS||K)a@eYCxOP|h{i_pspBWB=4o{Z?wb{aMl^)P#{;;e=bLn5*&W
z(vvg1+8ARK)=z!y*YU)$#^zas9_OD4m!sb;WBlU3>&d47g+ER|T;N?b{Ylb=|2xa?
z*sA?{sA}^%^pkgf#ijjHLJbl!^Z4sk|Moxm@F)CJ@cTbIymtNHB~hZU?^(a#>p4BY
z>ev&n=gQBGll^|KUPXSvy~=tIzv}e8iVCvdIEALHsJiRzQg%&NX6}K<58Ll$=KshJ
z{e44vp7Oc=zl@eD;_c0e?_a$7QsAJsj!pdUX}t;dY+Ii1{oK#I;F9g@dHlQ!xGI<Y
zHny2?dh+4R!758-;~ZbJ->@sXvj0cvh2I}jJp6twKOTGH&xO`$vUL`3xq>dNTzvWP
zy~wFD^7CZ>-FUk7S3~Lo#Tgm0Kc6n?j`Vmh@K2Vv`fu@@V}bu`EE<k$eJL{VS^e+Q
z?l)m4A1)~G<oRjwVt%M;iu#oo#VP^s_h@fWSnZkU!oV_rz20t3r=mNyHmotzBP4gv
zV30nQqV+$1?f(^D<){9;_V52ufBS0(zI=^8`rrKf^lSA|%QCh8|2MrPnK~`kaP>Fi
ziun)rZS_2Cu(deb?{-RRUWTT?e3e_NHuIw&F5=~z(x6&=dUKwp)f<&4m!5McRrs7M
zO2l9IG-sbb@$my!Ohu#N*WcQ=I_;NlWysoovS*`0*86w6uHBgN<1@pY?89jr6Ysx$
zWbkI4nNN#)u2GMs<-&#8M~zmyJ)ib?8|Ss(jt?&Qwf5grd!U~szOY}e<ZV{LEj9T^
z(MCLqFBT?#eY*Ar>wn8-6U&}BF+BE><>F=fA|Q44`Hkzrr+4=*Y+iELk4fjp*6@bu
zxrdwnrS{9PIdatP?md6u){-3oOZnIBK032fGveIqN%PV#Hyo;$yUg~bK8d|)!7PQ_
zYVWP9k43+o;WqgK=Y`z$vOfj(SFSOOVL2e_X1_UB;<oke{ojS!uG%^MVD%O8W}dap
zxlc&!!GbJ{4cX5e#n|7xaaiqeFJ?M>^sV>%|DQ8>^Fg76dk(`R?zkOkj~G?f*NHMl
zW$?Qge4ldM@TAKurs*&D%HQL(a`y|$f77$j{1*Sd=T>sH5eH+h?n~z@&V2qbV`s;d
z!g=pQZ#^+j;Yj9>j{f<BW5=TlZ*BHeygD&Up>s;f3FpQ4Zmhn_pOyA{qt}-A&kf8r
zpF3>bGO1CW*P7qiYG&m*mZbIC=YO^=Iw>YmD;vz;-Zv%DK`Y|;qeTp&K`#&7Vcn|0
z?|JaDa{9(i?Wg{Szy5#!#jpRj%Y8Rr40!$j)PMH>^%rby>|RS1|33fy|7&*MegE!f
znSDR&wz~7*|G2*nKmV_vIEDYa`R9jI{)T`1fBMb-s{iZX)Mx!~c2y8_<9T-euKo3Y
zv(Gj!{r>+q``Kxm{;!|7?)b*Xw@f!ilrL^ATFAk3W2>9OOTpB_12y-1@0HKu-K$mf
zK7GorU1f_qUnR#Fea=}iwb{JlW`^I)rP_|cANN=N{~o^O|Es_AH~r6kV;}zbSW4Az
zu8;M5cYgYpU!Na;^MClp|6jh9J*f!(@0NV+ZO7~!gU5dy-8Pl_W-_Jz5B>AMy#N2s
zzxVI2U;QKgW_{-W=A+jq{m=bff97vk*8ga=`2YEuzyDitPJg`e24kJHwOMYq^~+<^
z6>k3J|IDzxSE8<B_vxf(?R`((A`5->L|u2!TK0O^x9-O`|J8n($HE;nTlit{pU3ho
zcdg}A3m^QNcJ}+(_xmpT$?E^>nNVZxBWHCwDxCkNMe&_tzfGd-zK3Q19^qdRe(kb(
zMAg(6ihtbqcJ|-?XI*t>+1Bk<tr3DV&)uqVJ^a<SpkmWsg9qPz(%m@1HpW~u(cQl4
zVEwd8)$>e8SFZ1v5To)_#mu|3L@&@NSnu)cn?`jD6OL@xF8y++Of_;|cC`C{uHS1_
zZau9lpJsfmxmPV|_k|8!rUb{t-2qLJIa04)r0-pL=FoSorQ-X;H9JogP3mRvyi)lf
zvPM&Dd%AbN@L%up+>>f{UG|ep>O-&WJeOgcY(D+S;e+$H&(w~8{Bm!M&@VTm*3$~I
zH~nr@UfB3Q(Bh&zcWa=!dG&II*^8GfsOgV?Us5r*Yt7+mBd=?W)>ij5)jCgYPm6q6
zs`*WZO=n}~N-wW7QpfdJcz;+&-1w)G#68{qW?02*D>-e)-P))22K?I}_5Zi_`v0a^
zf8F2y?tlB_yX!Uo>)ZTK+<!0RxxL2U^<Va1`mgnO`IrA$E53OB+8=m7+jPpm|7l<L
zNB#eQ{^kEW|Nb}sO<P^M;M)JG|L!mO@2-5j_(sN;P2$Y{`~I(gzwlrFwr`48r5F5{
zKFeJC@BHc|b7fWE+%F3HIKS(E$e-nJ{(pY+fBMlz{r>+_Uyn6{#lHO4K3@N9x2@=Z
z&A<Pr{Hu?Y`BCyGeEP@u*9%gU{#-Y?`aRz3zxLn%tA72D{W~{vpXt<p;lKWC{?-3)
zS1ehu`(M6HLJq^P`u!I(%zXC!yWUda`11dCkINV4KQ=t)_`*L!L~!SFv!1;r)wxkK
zo-EjRq2g%g`&}hUeYMkC&E`gJJe`w%Na#oOb@}Bt#4gU7|2?duy=nRRo6j75FEc35
zJoDm7o=IHKkGR7VZ?s4CMf5}~6@FK?UtnF9>6-KW=-Y!o$}5~c6!e%`HWwb-yk=qY
zwHr&1eD835_TcCl-SE7*YlV(4VEb4zDKATgb>U~u{Y{H<k}_nHtv5JvM@*ZT_x!V~
zc1oB>q)b(0H%r?|nf)7Py%L^n^W=ifqh-(8GrAn@FMFQZFtdNh-=B^TYOc6`m3?$v
zr$h3=iMC?`JVL5Z^$*0VUhLVGmo9Ov;)!L_>zXZhI>Meji$0#5S}RaJ&my+QZoAE$
zNZz><1un=X<VhMST<2QwJY-wCXy&{q*Kb}EG%lX!^Wja~XpuF2m5Kq2u=+k-#oBvc
z4|L4nwdb9k6c{<hQI7ZU5{Wvo?ui{Up6%RLw9C^w^>x^<{ga(_E%i9>1bsVMl&p~W
z!0|()%2OY1U-kc26-(=G?0Rk-<Ts(T<KJXvrIgoyOup)bPycLje%6xXl1II`lob|~
zSbDF2nIHA_X^i7b%^Merl)QG$SD*6!=d;7}d2DxXwQG!MQJlAH<>dM_;Y4-Gg+2a9
z!_;|LB{X&%J0!4Ob^2FHg)*BL)q3X>{>irPk&f(b?cVlhrjPYKWo51y_Fo2<w68z&
zRb@X^!)COPZOycUf%i_XS^p!GLHB~7%&S8g$K)0(Zr#|d;8uKK_3~TkOWmwgtfg<n
zpNKzuYNM&NP*g&RAJ-&(X)dLyW)J&||8VBzKi~4>%t9}>P$Rdep$s>&?{hR9Xumbl
zB`I{(pZ7Z!=}z2Hc2dOU*imcF4R2+{<@iLWYHQTwDfP15Di?d$u9#Zev2|g(+XMEe
zPOB#$6S%kVNv3&n>ZLWJ882qHY;-x!@<L3++g5wpC-;RGDRH9KD@1t`H&onWsarWy
zack6@v&n9y8CN&HpDHmka^cyn5uP=20ZNZM8<&Tie7;xc*5#e1H=oY`EHS6fDtF1H
zdwH97XvLXvMK3W@pWNw|WZXS*<<kZ$)^?>!)2~Krc~w5V@G*~Pf_pQ!aCz2;PhBkO
zg8qJsnnD*whs_B&eRK8K&@FrFeq{y!k`(^+^5vdVqx{*YUO#)sSGiJn`{zBGpU=G9
zd-3YZlom7oNeq=6zfHNuel($dNpRt0wzCe~vI7~nI~o<0%*$LqExRCj;~dGSn<t&r
z<((w+c2&kUnfH5^9Xj91wf#qrO#YOf2oGj^duF#EC#QK!zMb=1E^f2(zK~ZhCNsn?
zI<hq?oLOJ_kXPmLmB$UjSwyEDUw_i^zqgy@<b;;va*xadj`TT~<n&kVc0bOxpGmW~
z?(+K;0^%X}d(-OPaQXM$?>lVYwP@Q!A+e1U56rtbE4ptx%cKbgYIPpGHf@O_5joS?
zf*+W4_V`Tw_{c9T=-icaQR_-vroI+(xw>{2OQ)ClgH10rr_6hNQ*p95(?W)D&L0Qt
z>XJMkHDtRTc@QX;DpJ66{oCCc&M#W-cb%HNpsU<+>Bpo8zq(VLQZj;DW;2|+r2c?q
zb3@<@cBy4O$K5|}RkJ_c6n-#!iQ5U+4j<k>{30h0TYa;AXLsUa{hg)r@4wk+*u?7L
z&#_9iXO4e}hTwyz-3BN9CCwLVZ~Itv>g*wrvrT7MI1ijOH(inLZLCnDwP<qP>>XO%
zt4<$R>hkf}q@T9@k9Fk7&^IQ`9wqlnwCvk;C6<Zs@QNs$l-{VZF>2=4NB2X8RG5y1
z>ho*#1uk8yyrVi;@xA9>kH}XWPg|>V1UNXyF;|$a6?yQXI^=`xrp&{?Gb0%5%p&KV
z+Syc<Ii;rC;!*J8o`xTa`FfAMmMvq^Irmn@ym6Dw=~x%PEpl8cw`W^zuWS^vJkMl*
z%(J)aWzd?|Cso}6b7l4w-SfQ}7q=v%z2aSlli>yj<wnJ0T{gR<Is2ART^My_D%T;&
zKj%3<7yV#$Z0=TW5VKB<iJSA~-2bWHS0;F6xZd}i(C20_)$Jma$+7eU%^^I2I-e63
zeUz|m?>S#=x#(rd`PnU7HUwXop3L1Nwc^NK&j}srwdGRB_@vL)RBGsQgm-D2mp=Kt
zCTypHrSPn)PI~Y8H`Kj(ym0-|O}sH0OlJ?u9_p``WEEvzwe7H>-t)B5Fxi_mleKpm
z3b@(EM~PJVo<148tlHdLq|TJ*MG=?g<r9$;82XtGmo`0GHtD&=`nu!CfAm$Kl+-$N
z_^5EZxwV$o#3j2I%v#?6o^u}Sg!sQF%ndF|7$i@$wp@Ns`Tv^&(e{MOutjEiTI&u?
zVl2NP{9K#qR$S`Li=2hJ`>$QQcz@4Y@v!?(O0^{_M15CIFfok&;w8vg=`3(|6YG?u
zNx~DE7W+2DEZ68he9>XW*2D8>`&=?8sMs>)Wb@9z+m8(x`6M(isuuCfMMbY)W6ZO}
zt?qNl<NFWRc&vGS@Sey)so8AT&X{iue6Uo)<K)v4iKhZpMt1V8h0pFj%AT}h&ziI)
z+136pW2fxc`H6w|XNTjP6Epj43fLzL?Q4sA5fyhZMU*A#ox6^1>-YZOxkd|uvkxVF
z+1YR2ySH=4w@d2RTG~Y}-zZHjQJCwy=e(eGQ(xm_#|9O>b#orqPO=H(>oHg1dU0f?
zm2k+a%bNZ1CtKxR&)tYU@Q2O*Li5gFoz*Wrbkgi9+ABVoPI14&rEYAeX{lNm;iB?>
z;~$nYhs}8o>H5#s+56!}D&Mb}4Qz8hTH41ma-^&)-S%sq&J(K(hok3rvNHF4Dg4;<
z{f0v960y%=oz<SKQw{G;>6Du7EvvcM!Z~B-3W-~rE^7;_eGBQk&!K<r4&N#FzQaqk
zPi*>>l`(l*NtkB9hK_7S`FFRTOujHL^ataj`RlVS5)7XN9gf}i!7!IU|6x|LOPTuh
z#;a*62CH*Dve%k4Ot(>cyltYqwLZrRgW1+Dt*zIlIIk1lSj1Hvd+PJ@lH@xVU0YVa
zi|oEukfQ!tKg@adG)14y-sYzdX!G1TxiMgyh^^|!8PC(B-u`;0X53f#PPg^Uotu%8
zZW9DAeNT9#zW(Qty?ctg-v4g7Quj%A_HJ2?Sw;#Xe|%Zrm^MY<`{&!ZHiNB6<&USE
z;Em!~p(eXW?jQWUB=>i%GM)STPU;oMqbKLI?>>IVf8oQgJuh$a%oVzFuz%;Zf~!1l
zSmoRL&t7}h@o@LUC*BV8goXYW+gw;*b+}GPH{9cR^-Yz6xxH<=_os2~%Q<!P!Blg*
z=lkYl2HStjX|CCj^YY$t#qYK}dpGr^oN8yf`h0?Sww-6;@&nhhte#j@PY6^tJio~3
zy<=L+(!0+#KQ{c@_CZ7LLz(Lho;Q1@t!F9}$-m|OPEMlV=Fg_*+l6|bslDH|gE>I#
z#Ns>ad;PBI+(@`RdGSP<=mN&u=XXwAaV52U$BlWsMO)4_U%S7*-oNj{S!Z4awWWzK
znsTPTSS0<wSHG=TR%=(vn!eZP76kMBSs$aL!=5(PU~|ya?u}_e!Z}sX8(XG-U=G{t
z!L-LEtlq8thZ2`y%7%FT42vE`Gu8bn%2N&teHJcN5X)guw2RrEt)Y@By3y*m;uoj4
zivsU<=*QP~?&VF$S5D1WPJMqZ^=Hokt<}>08>?0yNa?;;9uOBX>9l`P&zaJX`wJdf
zu77&VqDR=^!k(1{4dy4g{&4Ybm?!dvuPAE5<6kFqiZpuGolY_mPy4`|)g6>D?ZBKF
z6?;ON>rFpg&_0tq<G4ZpN1HiKKN{+v7CYOS%W;1Z`flU-;PIg!AH$ytvWN%YiQjx_
z@`0Sm|7JuA^xZyrdd5eki_C5tR&)l&q#B2aycgegHEQYg4B>j^y(Mo8l|xt9#rT(I
z-%Y)@fIH(+7+1#mEa~F)&(54`OR{|$C29UUWa(<9b7z!mCVO6TyFJq{^9EaJ8?&5=
z*}3J9gr?-EKYp7ceOq(!$xRQm_AQNamPi+^?%J?z*%F>7iaX*i2HZ|HNX_57*X)9i
z8Ka|$3X{{mvNQ2K=VjjscM14%<q26g+NzaK+9x1$yl21h!h{=&T-m}W6YtJ{CCwaT
zSE?Nywbe66`<B`}$8hVDMJIMWI+pdZ>h0`Jye-+@+)G>ksD3$kq2gnWk2BBO>m8vU
z`N`M0T9f?N2)^ttUzl`Q?mV;jzP0(uU0aq$E0}eizV>tOmt7k(`|3T{b8p*z;daf*
z%e8rHrq6t8XFl)Z^QOt61#6aE-uWinGgzIg)i9nd^0mC(?W4b#=Utiq#KZP-+_N<)
z_ss0pU5<0A{42T3dqc{}=&63?>8mgA%Hs-+TNJe~p#05*r@EV>O^oB;=3d>tHRic7
zx2wU$ON+jLH`WSo>J$wsx+m|I7I6E9R{pLBn%5?E)$BfY(Z1to`&Qv9&M%8^oKgOw
zz+YmK+}!q0wRv-<luh{s<8OKL<!NHqKAv~Dcv4U0;%wd9`H%V5-f4Sjw9Y>C(u6HF
z$G>L=2qb=B5B%Pet+dM}-y?x<cIn}5>%E;XC@!7-<m|E7jRulWc@o||zgyF?Q^3nA
z@Rp>;gk5fm`y;u}%brzD*v4eTV(T!2^<M>B*I&U0F_Cvtvh!Z9+mtfVOU`ok<BCbC
zD)y($jvO`q*BE?7^Py7Q%1@Vi=RdFW>T<D*{9*V#yMQr=r?1E6^-kZq&vl=_{OR*m
zuYDeL!2RF!6CP^+olbAd*ZO(tyK#+sv$w!cwbTp`KK`9-dH3$dSevufEOFBEE|sl$
z$T&G9___Ux_xrE><bU;h{qws2sTXeFmePCjeqY4D_^N--!E^tw+V?;7*Z<J{|9!vg
z|Mf5Y<$v`r;DNTP=kmYLPy3(y{r{D-fBx1_xPQa=`<3te*H1d9u{ozZa_jub9Lo}C
z+}dfn{OudwI^Vwi)0jSbE;`AZnfpof-QtUWe=OIs2JH5Yt7-2pJCT1rbMl)g*_ok_
z#b0gleCH(VdvEt4{ltrUN2)t+U45{{x2XJN$jRyVR2IuFoql}FN#nd8%>(xDPt9<e
zy8M05MYd0erh$gK{)CCYwb*@Od6|mdmzBKYj0MXI7WyCBaLc{JZDHr$#qWNmitm4A
z>9v1igX7hLgzIOREf2AU+-MB@xL)<g?3%aV@7JfBu-uDSCuZUJNs~2FHooD>)%6A0
z+FPEN9ebzw&wo;<39DXr?k<@RCp=&E&Nckv_WR)Xg72>mbG=*j&9-=kw>7`}Y1bt^
zpKI1LCE6ObY;0e<wx)(9rsDX;!`;jK)@bJ6sX35;E&FTpteaJ9gx>zP>^ZyU^9R0#
zKl~<UxE(%sc!FP=T;4+E@Og*B6(sJ<RQcG-SOv8)u1t`ve0jxLO?Jla1!7MWH7lx~
z=!AXy5bb^HfB3)spZ-t%|KI8V|4sF#7O&!@-WdNr{I7m*>4r!D<u(5QFAaKhX6g3S
ztb<B71&;jLxms2HV3z+pj`g<2X;<diZ=c8HYjfvh63e-}v0vs`oqXDQzA?4Vpy;Lg
zt30-QwPx!3K77$h{Xg|@__z3_`=|VkUtY2Q#=palC;h!|?i+mb|8)<qE1`eZzuCX(
z|EYi4zyCA+p3lGNU%{XFd^w$)|I>uO*K7R#&vn<oZ`ajJbEoV)Tz*-&V9ElG-(VeD
zn!opNGWga0wtn%(od40kv;O|KH~#1KEi}keb!rIF#7q78|M;Vds)ZRoFfafBR-smz

literal 0
HcmV?d00001

diff --git a/dist/coursebox_testing-0.0.5-py3-none-any.whl b/dist/coursebox_testing-0.0.5-py3-none-any.whl
new file mode 100644
index 0000000000000000000000000000000000000000..08b8241af526bd067c3f2918b2b1e0a0a227ba0e
GIT binary patch
literal 6647
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

literal 0
HcmV?d00001

diff --git a/dist/coursebox_testing-0.0.5.tar.gz b/dist/coursebox_testing-0.0.5.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..948c64903a428f73273f1966d13ea78dc21ce01d
GIT binary patch
literal 6795
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

literal 0
HcmV?d00001

diff --git a/dist/coursebox_testing-0.1.0-py3-none-any.whl b/dist/coursebox_testing-0.1.0-py3-none-any.whl
new file mode 100644
index 0000000000000000000000000000000000000000..b2b828d3450243caf2b694369b65d7d2311cbaa5
GIT binary patch
literal 6651
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

literal 0
HcmV?d00001

diff --git a/dist/coursebox_testing-0.1.0.tar.gz b/dist/coursebox_testing-0.1.0.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..8e01652f51a8fe70ffd9e79bb3ca7be97eade700
GIT binary patch
literal 6810
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

literal 0
HcmV?d00001

diff --git a/requirements.txt b/requirements.txt
index 9e98f0e..daa9fbf 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
 tabulate
 pydocstyle
 darglint
-interrogate
\ No newline at end of file
+interrogate
diff --git a/setup.py b/setup.py
index 8b7f890..f2b0d3d 100644
--- a/setup.py
+++ b/setup.py
@@ -13,7 +13,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
 
 setuptools.setup(
     name="coursebox_testing",
-    version="0.0.3",
+    version="0.1.0",
     author="Tue Herlau",
     author_email="tuhe@dtu.dk",
     description="A course management system currently used at DTU (testing software)",
diff --git a/src/coursebox_testing.egg-info/PKG-INFO b/src/coursebox_testing.egg-info/PKG-INFO
index 4b3dd8a..c2216ec 100644
--- a/src/coursebox_testing.egg-info/PKG-INFO
+++ b/src/coursebox_testing.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
-Name: coursebox-testing
-Version: 0.0.3
+Name: coursebox_testing
+Version: 0.1.0
 Summary: A course management system currently used at DTU (testing software)
 Home-page: https://lab.compute.dtu.dk/tuhe/coursebox_testing
 Author: Tue Herlau
@@ -13,22 +13,28 @@ Classifier: Operating System :: OS Independent
 Requires-Python: >=3.8
 Description-Content-Type: text/markdown
 License-File: LICENSE
+Requires-Dist: unitgrade
+Requires-Dist: tabulate
+Requires-Dist: pydocstyle
+Requires-Dist: darglint
 
-# Coursebox DTU (testing tools)
-DTU course management software (testing plugins)
+# Coursebox DTU
+DTU course management software.
 
 ## Installation
 ```terminal
-pip install git+https://gitlab.compute.dtu.dk/tuhe/coursebox_testing
+pip install coursebox_testing
 ```
 
+## Usage
+Lightweight testing framework.
 
 ## Citing
 ```bibtex
-@online{coursebox,
-	title={Coursebox (0.1.1): \texttt{pip install coursebox}},
-	url={https://lab.compute.dtu.dk/tuhe/coursebox},
-	urldate = {2021-09-07}, 
+@online{coursebox_testing,
+	title={Coursebox_testing (0.0.3): \texttt{pip install coursebox_testing}},
+	url={https://lab.compute.dtu.dk/tuhe/coursebox_testing},
+	urldate = {2023-07-15}, 
 	month={9},
 	publisher={Technical University of Denmark (DTU)},
 	author={Tue Herlau},
diff --git a/src/coursebox_testing/__pycache__/__init__.cpython-311.pyc b/src/coursebox_testing/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..cb07a3524436c168970ebe50c272682b5987478c
GIT binary patch
literal 181
zcmZ3^%ge>Uz`)RyJ3WP&fq~&Mhy%lnP{wCA1_p-d3@Hr344RC7D;bKI7#J8ngCu`>
z=x5~Trs|iJW~A!7<R_QrrskCt>nG=z78R!^<yXX)q!yQC=B4Ww7bRm6jgQaF%PfhH
q*DI*}#bJ}1pHiBWYFEU{z`y{qx|pAVf#Cx)BO~Jn1{hHUawGsv3@%at

literal 0
HcmV?d00001

diff --git a/src/coursebox_testing/testing/__pycache__/__init__.cpython-311.pyc b/src/coursebox_testing/testing/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..a54daab617b9aa0c5213055bb97a77116eb0aa27
GIT binary patch
literal 189
zcmZ3^%ge>Uz`)=YKRpFRKL!yn%m`(CW@BJrn9h*G5X_*-=(m!gh>3xL;WJ3`SAc#-
zer~FMNohu^zDs^`X>Mv>NwI!%erZv0YEphhd`W6?NoHQUesNJU7EzdNe0*kJW=VX!
rUP0wA4x8Nkl+v73yCPNw1_qE5iuoBB7(OsFGBSQ(fDuK^3=9ka>0dEE

literal 0
HcmV?d00001

diff --git a/src/coursebox_testing/testing/__pycache__/testing.cpython-311.pyc b/src/coursebox_testing/testing/__pycache__/testing.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..ed30ef86b238a5f876435c78c871610552c3fb25
GIT binary patch
literal 15069
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
Np-;F#X#6BNoB+#V4gLTC

literal 0
HcmV?d00001

diff --git a/src/coursebox_testing/testing/testing.py b/src/coursebox_testing/testing/testing.py
index 681e748..255a243 100644
--- a/src/coursebox_testing/testing/testing.py
+++ b/src/coursebox_testing/testing/testing.py
@@ -1,3 +1,5 @@
+from pydocstyle.checker import check
+import fnmatch
 from subprocess import run
 import subprocess
 import time
@@ -102,22 +104,32 @@ def check_py_script(student_dir, module):
 #         raise e
 #     return p, total, out
 
-def check_pyhon_documentation_in_student_repo(student_dir_complete=None, package="cp"):
+
+def check_pyhon_documentation_in_student_repo(student_dir_complete=None, package="cp", exclude=None):
+    if exclude is None:
+        exclude = []
 
     if student_dir_complete is None:
+        assert False
         # It is important to not import cp_box here during CI/CD. The coursebox packages is not/should not be installed.
-        from cp_box import cp_main
+        # from irlc? import cp_main
         from coursebox.core.info_paths import get_paths
         paths = get_paths()
         student_dir_complete = paths['02450students'] + "_complete"
         # At this point, also set up the studnets_complete repo.
-        from cp_box.material.build_documentation import deploy_students_complete
+        # from cp_box.material.build_documentation import deploy_students_complete
+        from coursebox.material.documentation import deploy_students_complete
         deploy_students_complete()
 
-    from pydocstyle.checker import check
+
     n = 0
     files_ = glob.glob(f"{student_dir_complete}/{package}/ex*/*.py", recursive=True) + glob.glob(f"{student_dir_complete}/{package}/project*/*.py", recursive=True)
     files_ = [f for f in files_ if not f.endswith("_grade.py")]
+    files_ = [f for f in files_ if not any([fnmatch.fnmatch(f, pat) for pat in exclude] ) ]
+    # for f in files_:
+    #     print(f)
+
+
     files = []
     for f in files_:
         with open(f, "r") as ff:
@@ -189,7 +201,7 @@ def check_pyhon_documentation_in_student_repo(student_dir_complete=None, package
     return n
 
 
-def _run_student_tests(student_dir_base=None, weeks=None, projects=None, fail_if_no_projects=True,
+def _run_student_tests(student_dir_base=None, weeks : dict=None, projects : dict=None, fail_if_no_projects=True,
                        fail_if_no_weeks=True):
     """
     TODO: Refactor this function to accept full module paths of tests as input, and move the cp.* specific stuff out. Possibly alternative is to automatically search for tests
@@ -197,18 +209,34 @@ def _run_student_tests(student_dir_base=None, weeks=None, projects=None, fail_if
     """
 
     # still got that common module. Eventually this should be an argument (probably).
-    from cp_box.common import projects_all
-    from cp_box.common import weeks_all
+
 
     if projects is None:
-        projects = projects_all
-    else:
-        projects = {k: v for k, v in projects_all.items() if k in projects}
+        from coursebox.core.info_paths import core_conf
+        projects = core_conf['projects_all']
+        # from irlc_box.common import projects_all
+        # projects = projects_all
+    # else:
+    # projects = {k: v for k, v in projects_all.items() if k in projects}
 
     if weeks is None:
-        weeks = weeks_all
-    else:
-        weeks = {k: v for k, v in weeks_all.items() if k in weeks}
+        from coursebox.core.info_paths import core_conf
+        weeks = core_conf['weeks_all']
+        # from cp_box.common import weeks_all
+        # weeks = weeks_all
+    # else:
+    # weeks = {k: v for k, v in weeks_all.items() if k in weeks}
+
+    # if projects is None:
+    #     from coursebox.core.info_paths import core_conf
+    #     projects = list(core_conf['projects_all'].keys())
+
+    # if weeks is None:
+    #     weeks_all = core_conf['weeks_all']
+    #     weeks = weeks_all
+    # else:
+    #     pass
+    # weeks = {k: weeks_all[k] for k in weeks}
 
     # if projects is None:
     #     from coursebox.core.info_paths import core_conf
@@ -231,7 +259,7 @@ def _run_student_tests(student_dir_base=None, weeks=None, projects=None, fail_if
     bases = {k: projects[k]['module_public'] for k in
              projects}  # f"cp.project{k}.project{k}_tests" for k in projects if True}
 
-    bases_weekly = [weeks[k]['module_public'] for k in weeks]  # f'cp.tests.tests_week{k:02d}' for k in weeks]
+    bases_weekly = [weeks[k]['module_public'] for k in weeks if 'module_public' in weeks[k]]  # f'cp.tests.tests_week{k:02d}' for k in weeks]
 
     if fail_if_no_weeks and len(bases_weekly) == 0:
         raise Exception("No weeks found. Bad configuration.")
-- 
GitLab