From 9c9407b1ab9edc64df7de0e64a03dafeeac54252 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 25 Aug 2021 14:48:45 +1000 Subject: [PATCH] Add unit test for catching bug - Turns out that in an image was uploaded with more than ~2000 vertical pixels it would crash - Smaller images worked fine? --- InvenTree/stock/fixtures/test_image.bmp | Bin 0 -> 4638678 bytes InvenTree/stock/test_api.py | 36 ++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 InvenTree/stock/fixtures/test_image.bmp diff --git a/InvenTree/stock/fixtures/test_image.bmp b/InvenTree/stock/fixtures/test_image.bmp new file mode 100644 index 0000000000000000000000000000000000000000..56394f5cb1871f4266e97ffabd4775c175824b31 GIT binary patch literal 4638678 zcmeFxF|O>&aR5*na9|}~!-QIa;(-Ha-oq?~3vs|e&^ib>FyLH<0|&DN$*tXHf#))H%t^`4$nggHH8{rK-I z)*NezwZ?jXQ+qt(?=#jb)*NezwZ?jX(|$hU?=#jb)*NezwZ?jXNnVfm`;7I9HOE?F zt+C!;uK5vvpRr!C=2%OtHP-t}xjf?UGuA8C9BYZS#(IC5*GK$)#(Kq?V=b}PSntn2 z!Snryzt32&SaYl;)*9-+%77WS*a~Ua{s_ORP24`&$aj zBmO>Py<*L=mRM`7_qR;eNBn)pdc~S!EwR>E?@tNM???Q7#(Kq?V=b}PSnp|#{MYFb z>ly16YmT+V`tjfQx3nIQ`1_3YiZ#btVy&^>-?Do?;_oxoE7lxqiM7Uhe@pW9h`-NR zuUK=eCDt12{Vmt|5r3btUa{s_ORP24`&-J(BmO>Py<*L=mRM`7_qWW~NBn)pdc~S! zEz@8A@0aP1@!lNgP17%*|4qOA^5avi`0tOOeth>I0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N 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 literal 0 HcmV?d00001 diff --git a/InvenTree/stock/test_api.py b/InvenTree/stock/test_api.py index 4822eeaeab..619b4444d7 100644 --- a/InvenTree/stock/test_api.py +++ b/InvenTree/stock/test_api.py @@ -5,6 +5,8 @@ Unit testing for the Stock API # -*- coding: utf-8 -*- from __future__ import unicode_literals +import os + from datetime import datetime, timedelta from django.urls import reverse @@ -666,3 +668,37 @@ class StockTestResultTest(StockAPITestCase): test = response.data[0] self.assertEqual(test['value'], '150kPa') self.assertEqual(test['user'], self.user.pk) + + def test_post_bitmap(self): + """ + 2021-08-25 + + For some (unknown) reason, prior to fix https://github.com/inventree/InvenTree/pull/2018 + uploading a bitmap image would result in a failure. + + This test has been added to ensure that there is no regression. + + As a bonus this also tests the file-upload component + """ + + here = os.path.dirname(__file__) + + image_file = os.path.join(here, 'fixtures', 'test_image.bmp') + + with open(image_file, 'rb') as bitmap: + + data = { + 'stock_item': 105, + 'test': 'Checked Steam Valve', + 'result': False, + 'value': '150kPa', + 'notes': 'I guess there was just too much pressure?', + "attachment": bitmap, + } + + response = self.client.post(self.get_url(), data) + + self.assertEqual(response.status_code, 201) + + # Check that an attachment has been uploaded + self.assertIsNotNone(response.data['attachment'])