From a30725a46dc2f382eaadc30c60c4910a7935b9f9 Mon Sep 17 00:00:00 2001 From: Andrew Melton Date: Fri, 25 Jan 2013 14:55:12 -0500 Subject: [PATCH] Unit tests for RawData parsing --- .coverage | Bin 0 -> 29081 bytes local_settings.py.bak | 6 + run_integration_tests.sh | 4 + run_tests.sh | 2 + stacktach/db.py | 3 + stacktach/views.py | 4 +- tests/unit/test_datetime_to_decimal.py | 1 - tests/unit/test_stacktach.py | 193 ++++++++++++++++++++++++- tests/unit/utils.py | 20 +-- 9 files changed, 220 insertions(+), 13 deletions(-) create mode 100644 .coverage create mode 100644 local_settings.py.bak create mode 100755 run_integration_tests.sh create mode 100755 run_tests.sh diff --git a/.coverage b/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..57bdd1ebe63d9421b6af0c51c11a505829b43142 GIT binary patch literal 29081 zcmb__cbrsJ^1Ux~4+w|>5mY3@fWn9Y5KuBAmjk9Tt(SSLjqPVU( z=ZHDyoO4>!n$wzd{++7ZxBCs?er^2yvF`5YvpfCz-MUrhoH|v#*gqilO3T|;HPqE* zs+t?Jv0vVys$p&>TRAJ!WA2uNhsHs9s;;&^(-emX#HrHqiDfNK*|NHZs>-^uy4o3K zjSHG<8tS(gJgls`wyAkgV`bHT{J%DpRnM-hpVd%S)7;!xHm9Yoxwf$~+suD8WwL`C z7sTl(E-5u>)5f$lYnpbZz3E`qGHaW4&3a~i)5UZ(8<~wwH`CqpHT}%q=D+4=^E*-= z(jM0L(8a^%9>#i@;sGA^@-W9k)iH8$B{L{lZ9?tV{qla5O zyzSvf4{Q3E;A5hX9ehmpQQ>FG#}@bPnlp16>nfWwWmOIJ&6)Yl^3B>raobYk8Q%o_ zerx8x**d0^*?`}vyXkF8%^)+x3^$|9I5W{0v#TjLyP4fhg{e0CnFVH{InW$zjyC6- zi_InG(o8vud#>skWpf&;Gj&a6O>tdWb!Bs9Q**YZs<|bbX_9ALGm6`lnvl;|qVK=G zS%+_aebZUrygXwM)5i?Rl#eOyb6c8g`I-E@jGnZ7RQo9IAg{w6v>da1m>h98zKD^T z^3kjFAb=u^^siOu{C$k}6dQZOeerAB#%#@j}&9K~S--$0i zGF2vH=9>Na$`3Qgm@~{}<~nnyxy#&V9x>0FkIZ)ryb=%VdYSSG#XV{3V~ATa*#+{r zYe(@qrF+V z=o?^k025%B0J{b_FTh;^9trSLfOLqG5ch}pKEw|pehl$w3PBocr?F)klhc@%#%^g; zq%kv%qtZAtjf>N`A&r;Pct4F)3EGvQdkKb>U_uF|lwju)>{EjJ5;T@zQ3(zx!38C_ zwgk79;Pw*SS&}IqQQRB00awwWQN3;yujg)_jcprr>+zlTFvBzDQ;PfJh2xu9o2jdA zDyyidt*>pasE|YK6vgWoJ}k9TDoY-!9I2$UO?a_3=f&UJjNp-uGTWN%%xE*lj5U+Y z6f@O;hdkZv$b;V5?2=CkdzpXm$oI(|`V1a>H6wPWnPqBBooO(QCN@o`nK3+HQ^z8W z<;CU@bF5j$1ahx=!hC2xWeWYwd~UulUz)GYH|AT$_4non^CJ`MFXlJ%yZHlacB@c>pWcV;bu**w|ThV z!-F0k@$j*SFFgF@;b#xOdic%5?;boKzK_sH%14PWiFiF9oqcTNV`Cqi_~`DVhmT&2 zP9Obz^!HKfW1x@Cd<^n2*vIBRw(zmFkFh?cX!_pUM;G6*G>YY44z=Z)W4sb<)s{`B| z;En)y>Rr7%z`X(P*Gv0UfM)~zJHT53{uAKs0Ph5NFTjTZJ`3=9fG+}k72vx7KL+?M z!0!S62(U&7KSU6sU5K?pbPCZmM9&cYLzIRX5Mp46%|Z+gv1N#%Atr>F7GjqWdxwZZ zRD_rjVpfQn5VJ$f36Txa6rv@>{vi$uaaf4MLmV06m=MQ?I4;D}5dREudWbVZoEhS* z5a)zAKg5M0E(&pFh-*ST9OCH^&xLp;#Oop64)IQi_dazNVCjPg&mRYs+ zO=WW`>xp(0(R7L8uBCcy_h6QmOS@0*qRuvR@>g`8S!9-)^UV3?0&}Ig%3N>0DqKfQ z_pqafau2&Hrum15iq)z*Gl;@6^~_jJwX^Cg>ohxV7{wb&!U{6wlgnxv=48q$>#MVw zd2=##%?xdJHB=^(j+a!v+m+EPB(i$ijq!-I}A4P!u&895f!-$y(7*-n% z1Qbj@nPAvKq$j~QK-s?{zpst~^+8%tbDDGX#yq(P2 zHUOkl+q^x~)H0~{V<6P$GIlnfuMaVY5_ueMjxa|N@*QK2Gbb=aPBbSmd!KAhG5<2B zn={Q>=4^8g0ig{YfrXcwE6j2h{~OGWidXKDJl)?zsfPg`26-6F((hr2hb=s8>0v7m zLp==hFxp~>6SFN*uyXASdDYKf7M2M5o)DUOh5 zbXTL4PdA9qwH2?&Xr{2K3KeUaYK~zXokc`@C8Oj)^NjhodB=QWev&fZPOJMy9(roX zFjyEGBRq^uga)g=jRn#yqY*)}HO<4$9(GZT$yBww2FN}hsyxi{Fk7iuy~2g8A_j)c zA`b^S=)f=`Cu5}8FgeA6i8DQ%r7Z1YMG_332RuCLfq}!QdD6pE9-i^=s9fO&~peprBG z11t@2Wq{iPyb$0uEynK$_$a_90sgDSn3ecjEymwVJ!Xw9$JGD%44f@wnqrV{LZ8Q{asHY-8X?agF@(-mRq9-7Xw1e}Lz%35mvX-+j4 zkviQ$!1#!9%WRze1r zjjFjCKucK;!R7*&kL~K=?}ug3Rg{7m|QoT5bSlc$zW4n zw8;jd7!+GeTgV|=717P2c#ss)o&WyvvrcClni?tP@T*E~8yv-DmZp^CRhAXwK=@`? zGR}?oO>LqZN_sNe9LaKXO{RQk5#KPG%{GtXA@a3`{>85)z^a1hRM%3iA-qKtZ&^wx z6$vZ+>n}MEU&^Xy$Q#%yinq2&HBGIfJ#T?19bNR>_FP>gnbUfPM)5HFb_1#@DJJbU zIlaf}DP378hU%@_mdG+ons%UBY?hd($=6>pukoII#C!1@$(N_htF24SU6gq-H?w%N zY;UKfnt7MEVy1^0O|*4VgZ~Olt*UGk?MGh6@F?D{=93ReU4NAK)JYKzu?=6$Xw4XeD3OPZ=89NR3hT|{1Tr~B%M1(5B_1wUVT5e; zMlCJRd3edg>snXd_3$-Gu#b*D*7eaznP^X;o<$e=ycV{C_BJYtx3w`7>W%Ekx3eKL zOut+KA4yR_c!*@(X=V@7eM|KPK-T4steJ1d(fxxG@NtQP$5Rz7o@*{-KDIFND#FAY zsS@36ZZWq}+IocX_Y%Q?#Gi-(-@DmcOPy*}^Z1rIOk3x3(dD_Xw)?cp_j-*0$$)5Cu}e55kL z=M3fTin!>OnP@iEcP)XqT@;TlTu3V~J8?Og_6mrvklsaTmh`u20_o*3Ual~1t7?r6 z)`<*PIi?+WP!hJSwHuLh9T6<>fY#~_kF;pX*@o53mU>O`m38v1$3*d1_pL=vZ%-Q2 zS<99yS({OH+JcvE6hmtqFPeMyDXr9|6V%Pf^ zx(_i!KFZL2(mcgX`3&0t&za|0v0r2;OV)f{@vQ{4Al%mIRs>ejbezEYlliqEud;ZN zdIcUrC$h5Ouc?`r7ovk|t{pwBt%-Qu)>njxfVX5rP0;qP5FPYV%-qLAUrpKl9sM7u z^q=)H&-ZOAC�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