Files
notifications-admin/tests/non_spreadsheet_files/actually_a_png.csv
T
Chris Hill-Scott 7bbc307a3e Handle files that can’t be interpreted as spreadsheets
There shouldn’t be a case where we see a `ValueError` on upload any
more. Our file handling should be robust enough to deal with whatever is
thrown at it.

This commit:
- adds test files with bad data (PNG files with their extensions changed to look
  like spreadsheets)
- catches whatever exceptions are raised by trying to parse these files
- returns a helpful flash message to the user

Anything else should raise a `500`, eg if the file can’t be uploaded to S3.
2016-05-15 22:11:01 +01:00

43 KiB

1PNG
2
3 IHDRcT$ pHYs  
4OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ
5!{kּ> H3Q5 B.@
6b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**|
7J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ
8M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ<FFi\$mmƣ&&!&KMMRM);L;L֙͢5=12כ߷`ZxZeIZYnZ9YXUZ]F%ֻNNgðɶۮm}agbgŮ}}= Z~sr:V:ޚΜ?}/gX3)iSGggs󈋉K.>.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.:@LN8A*%w%
9BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9<qy
10+V<*mOW~&zMk^ʂk U
11fUUg|豓( (W5EZB w
12aHj+<Se |_
13KFW#QUU)mq}绻M(:=3P<@!TAP}\tq fLR@@)E41dʔxw;;{3?8㮮pX](Lo
14xw+
15U@+[(SP(88ogӁڱ}|5]^^qT;* ۽sVB2B [yn)d쇒w$OFY:<
16w_ w8B2BZAhvT\4HL?sq~|V#'td7zI0P?nE)#nfa?
17^܋r1m(E3O=~#Mh7J|fBSvz3ƕBǨ/ k݈\>3:Qa@(Qiye:f0essKH22<x画F@Ucw؉S*(& En Uk*TWos@c8B!p0@  LIAO7xû-fs3TBwtvn8nk_|CliZW*O`hƸroC %*4M^!]ߧ|>y( :G) - Z0P<Qb+vxMnSӳu9wF`phh+݊{*)2j2f= jYN.:qquCPR!BJ
18Pjnۼ}ݝ#`(
19:v>C]'-R&ӧƸZRf@I;E󘒄zI@dIJ
20YgA]^X^YyjWWgV\;$'NN)N룹#i !@&'F1 Hf=$NJIVK
21tZ]W
22UȌ4yq;OlUU٬rڦ8iOt4'^F\4{b\wWfl6!d
23Y^*ڲ
24=VƴFزQ>vw)}n G*G wC~0iE)Y;vB6v.雮˭NHO͵7G3ۣ魩> ʜ4HWu]?˗
255Z]ˆH=3?zťY-8AҫeISZZz3FF6z֗ i@lSf2 .<3n
26{d_bvk׏Z
27J=c0y.14=u!--J.n** ^k_iUHtn$) 5BJj_NuNud8AU%BY.y2J6Pyo#)fh!տUR#u]0Z9hZ;BRt(hAǍ1nyr(˧C6Ȥ] 3rnӑrR._vMtu[;cV}XcoAi{#zTP;#ap^5SBH:&7=Dnφ7YՀt[RԲޕ$X
28p%δFV[0_׵l˦*+w x# ƺV3Gkw BH
29ضͤܩ]j4-J5lvwGlƈ]oԊߢ94 ʴy<5Mқ .W/ [n#ֱzC|MG(vLkxO%Ijis39)mWoaKy)m jU ̶sx_Oc=liNup z [cb*6&s ; p5kE/iFr6mB
304-B-X f c롄$GRv`Zpn̵Εvtg~6L'mF I;aasklMv9c7 .dOw< tM-ʱ/9\:*%]PEIjt
31)J3\Lo8Ӛd5CkڊiۤBA:JLXEfZ::_{.\ni5Dhayd?qG}?Bt*ٌ$op2ͨ{`?3u죟fi5Dӭa
32+tTE2=ީVj1{G vDZbf
33*KҁΤRe<vVrLgʲ4? sSկ kqd(ZInipъآL:8?k<>t*躾+e3G{L8GZBNI?#өixlcIxx
34h ~jaaG#
35wVFDH [.Tko$'}ruAE~{FƼ@teiyir ;M;w/--ǢheòIR0(JH^nZ%cs55/SDI]ק'Kr||o'v뽤rgw!;01A۫!սfLl( sqn`>'o9uP0z^pdQm\
36fZxDwvsZ&]-z}j믶 X|Z
37-8
38@Ze<g653FtZ*<C-G%:UVe3c٩Iu6Bb}S bU@E8ζeZjҒXʈI ! 
39:k^*hԩ(%%rgVE屎c+pa~Աw-J*1->쯟 XpV<OVo!4:wTϝ:~X'vnf2Vw)JiU3O HM0GE1}gYN[<qlǞsL
40ttF6Xd猷J1\<-pupξ \0?=q6W(ˬF5'#jT9D^:)C#?t5Y`tS %KFYQUl(ߛJgeE.GlyxP[fdOk*k.Ahgg*LT vwx.Bu>d+!dѴyG9z镮nShW 1 pp<iڦo.%_
41 
42/BU㯸qm2ileq|]AnK(-k ;YV'U;HC*
43t6].JO-eBPu4 5߬`(쪊fOoxf1}Z@mpPe/{YamesZP06i9
44!TzС/+G#'[RFT~VtE%CQ1.`u}Zi-Fq9*^K_MmdAmuߢ<+/@02 *JdRh*WC VX
45T!B$mB[
46!! 'h?B@k- 䫅M
47` 78
48B V?Ƙ(mH( 2/QWKeV`~ἇTW
49r)
50XS$Ҋ2PU+ό-mQ(X5~o QS BR*W\Cݛ\- p(YRRkǎiYM0g7K*QLt%() *&AƯrѧ VbT3ʷDS]\<kRjU;B(9>ܤ!ƴRĕ#]%:RRgMlj`g0NQJQ2^uL6fOcIM:e1J]`Gxb
51Xֈĭkb$Geg?AՂq16}GߠaX!w{=n<bBHmv\*jpnqP31P:&W*
52)Ǝa.GDgeY
53*mL.`ak<%ĤCEڞB7&NEai`\A|).NXfq'kFKCE5!#%RRJEO6щLj07(Y*Uւe3fr/X;-\\R oFՀ8{ʭ6VT)0×*N?Dס VȂ'\-FH/P^Ex&r/pgm@8Yۜv[wwm{H=3fJLn*oCM*uT$_ iF@XS(AԪX<.$2VG9-~+
544T٥GGoi6-VFMXO$Ga~4ñ I+h_Z*GpzUT7N/.L8DbGJI\DtrZRhѓg3ȲEn;3suven%% S zb˰ƘZU5k5Lr%ׄ?]ӭ]
558#8W#XU-sZv
56`3BIZ5<%i*N׵2$qx|jbo}nU@oXB#-bqG!|^[MͻÓۻ./ִT%(a6ƕa= `<=d㫕Ƈ0~1fD#6'$!̤?vD@t<Ccru#D4k]Ycj1DV
57!=T:phW~EI:!ymp`C0 (TGƕTzg*+qܸ B
58y fY.Շ&B>RlWSIUWOr>h
59DݫFgI1.7@ )PPʢ`l.<$Uib~RnxQgQ8!|Q2%4Iߋ'e
60+P@qEV\z@@)Pif hW@
61SV')6%|MUN`(1eU{82i!Ÿ3)S)*hJ1Ax4Ŏԕg:dbr{B&ud݈X Z2;:r824.>Fɲͤmp\B@j6U`%DM& ($DYf)YeWKs:{@!HXJlo
62r{!r[7(
63!zIp/TJu]8C${9.P]˚۪N{[SrOEf(P`x?2]
64\6Shs:g0 Մ6Zjv ! > hy| 8/ 5UMJ]88X^|7⺝:$t5>㡡}ݡn=Řޒ JL THEJSUB(*T:%1n
65aB(ɧsy0px@E
66JK+KMXcFsd躦
67UEWz(@
68nw((pN<%ǻD
69CKp
701a&VdJɰ8
71˦9M7>gώ;;@ ǎ;Ō<񉉉G Y>20Gpj!sE~ i5 n8@ RWWW)۳8J:+Apwȱ;y[b!<Ft-ujaL EJM/*
72FLʑD}UC_L?YD
73::_W]smYiCe/_͏׾~oaw qdA*IBb#ܧ?<4o7;7om˫W9q~oesⷿ7h[U:$vTQBPch{:@N%%f0¸ǀtסPfz97vh/~K
74;X4Dx<s>׿v\(a2;K$
751~T#bi@PJAT(hL)4瓿0Aȅe MG=HTW( WMI7$WYHkZM1|KCWmMT8ge|Qd}};|m'KhqE# d -3Q
76b #2̠䤌9B sux&ϟposjZgf3ٳ
774i6McYȜ
78!MrL&K* y>70W^6}XIujY\a}/GBi#l8o
79[hz!z(k^z%PIVo׾QМN?}{dR'TP)=}7=n~jF'~Eu*VQ^
80F_.}?tzrD':!3WkE27p6;*q\۶ / %O<_5U'gN)0x%e|9eiN_poevɋ^D;GQhŹ5fj~_Ve7DdyzzVeg1:wt6c:ox]ͿKFT@6>?-9=ca/<ǹw@_?u#
813-+Iɼ~ؤeiy_#7閞~<_Xl#Eq2ֻFh*m!?c<-wj>>Ç|2m*Q]y!ohJcpяg^f9eC|>3<gVKgWVVzʼn;I$82<٠ݝ1 V7ø%3*
82x? {>fUk/y;lwi<jz<09^u[F+gfT!8=QU/nm8PSwT{n-