From 79c5dd18f7b2af6f101b173a7cd895bc88b388c0 Mon Sep 17 00:00:00 2001 From: Jeff Beeland Date: Thu, 5 Jul 2018 15:21:00 -0700 Subject: [PATCH 1/2] Fixes a problem with a test fixture causing pip install problems on Windows. --- HISTORY.rst | 6 ++++++ tests/test_api.py | 12 ++++++++++++ "tests/\343\201\224.shift-jis" | Bin 11361 -> 0 bytes 3 files changed, 18 insertions(+) delete mode 100644 "tests/\343\201\224.shift-jis" diff --git a/HISTORY.rst b/HISTORY.rst index 8d2bcaaa0..e4c5faa9c 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -4,6 +4,12 @@ Shotgun Python API Changelog Here you can see the full list of changes between each Python API release. +v3.0.37 +===================== + +- Proper support added for unicode and utf-8 string paths given to upload methods, and a sane error is raised when an unusable string encoding is used. +- Adds support for querying preferences from Shotgun via the new preferences_read method. + v3.0.36 ===================== diff --git a/tests/test_api.py b/tests/test_api.py index b84f35dcb..1ddbd69d1 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -252,6 +252,17 @@ def test_upload_download(self): # Make sure that non-utf-8 encoded paths raise when they can't be # converted to utf-8. + # + # We need to touch the file we're going to test with first. We can't + # bundle a file with this filename in the repo due to some pip install + # problems on Windows. Note that the path below is utf-8 encoding of + # what we'll eventually encode as shift-jis. + fh = open(os.path.join(this_dir, "./\xe3\x81\x94.shift-jis"), "w") + try: + fh.write("This is just a test file with some random data in it.") + finally: + fh.close() + u_path = os.path.abspath( os.path.expanduser( glob.glob(os.path.join(unicode(this_dir), u'*.shift-jis'))[0] @@ -278,6 +289,7 @@ def test_upload_download(self): # cleanup os.remove(file_path) + os.remove(u_path) def test_upload_thumbnail_in_create(self): """Upload a thumbnail via the create method""" diff --git "a/tests/\343\201\224.shift-jis" "b/tests/\343\201\224.shift-jis" deleted file mode 100644 index 7a8aaf9677c755850ca6a0419e69de44a9c8a153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11361 zcmeG?c|cUv*Y~|Q3j@PCfVe+~RTO51ol#^NwoyiK7(mU^;mu-o59ZbMCq4p1Ys9 zo##5+IJvoXhDrcbDi8wz@Bn-)01yzu;2*&H0WJ#zP=WP#!&9*6E*>26$N-E%IQ(o_ zJPQXxxZ!C7;B=LJ6{hEa=iONVMESYWES;r-CX1^qjKyAMv62b}884NklF=$HWiTV; z5P%SJX|ga4!)9IN>7t z0gQtYI0xtQc^+Ism;j0X1Sd2=#?2b56^W ztAl}AwDN#rJ5y3&u^3qnrJ12=v%`c42u7*GXhV5lwrq)^4sm1~7*qz4oib_L7_Euc zEt6v@(jx+;Z9#w_3*Z{92pZNU>*&c5#aAXe%PHZNdf z7-4KFxILrb*)>VvfMt0*SZo21R8~TY5yo&cg#qirtY5jxjX^s!1}4DR#goKh(8%w? zurhyvd4OhCXRm>{g2=s+I{zm$))pQ}wrd{ZnXsAg>$2M*1hGc|rycvDETM#vQ+t#J za5r^+o}d(%;TmCppAoJWIuHwFkk&PQ5UV@%#JS45i3sS);39M{7QpN~}dsv31UKm*)8ieUb}Q3$fTM=MeVsJjOv%Jb|-14Y}*jD=`AVfWO-WoZx{ z06#vPQReihi?6p?9M*eKJd4esH@H{I+!7?ch{Zt}-dYD^$*0Y236uZp_7e`9@t*C1HU7OAm0f@Dmcr8-8I4wd50?)`8;u&ej#1hRG^#?^ zqUGU2-@`1Zve>3)84Y@urF@-@FL0q@%lSIGQtMzBQ9%uDV|rmPbD{5L_o~nSMx%=0 zZVQKVMmq~TXB)aYIEOIC@*xgDguw_+4m3F6hYbV3A%%E82!V&}hllWohwz7oaOeC9 zg);3AjEmci3WCacPf^_kZ zZ@(`l4Z3u3d6G)1vMT5*L&0<#T{3-)hMHbYrRl^OBgqkU@;Z~%L^E2l&SW&(<#p*| zR=6C(2rUtlEDKYeE@rRZS+X=SNj40*7*ZtCB#AUR zRw|QAQ|0k8vMY#TZ8lw{T%D8GRTs>qi@O?CTU#4fn-FKQ=_RtXv^0q{UJ@T43prx# z)69&vF4k-hb4kdd?Uc>Hp65v<5uQ~YOu86q>TH6^>K5Cptz3*c%FSnm8xmW&j*`$u z+C-ZfJG83|HQyyvrE;_PD%NCjbK9BR8mQ4WGRom&HI40Baxb$M-i z7vUzeJ&y`m2xu22F1dDib1akt^`oo2?!Q^y zd4AFw|G6A@KgrqsUuDrjGbf12ZoE>VfcM!-gAo$!@GeLya}~+5v}D)|aWXXAVZ)&* z3JiAGx6`^NPzgP?3o;r=cBIL*6uR7|izze;Xq~tVZTQC~bc(HoSF*nx7*003rIM-D z+UP7jH22>deG=FL37Wgk#z^jOCrj%w&t2?r@j#$^)f(wqT^^Ii~)dpSj zSTW>J(7_uFgy%unSj$)uz8%7W71apFIS95v1tA=QV7(KDei_K)gfkJWGnt{k21hzu zbtWBx4?*~u8V7Rp5rq(*Ut^$aA$$tL;YNqa0Ab`C4m8nP=zQcL4^TKmQ&kX_LRe_i zsG)D4GXnlvE!6jbD|)~T^teG@ps-k{u|6m=ni@jFi(4vLK-U^+hKVhPmr<=v2d|1I ztJXXXI+oZrqf#K?4`*E#?Tr4C*n{t{K-9NR`i-${pJBmAyK&tmyK$CA=%0puc;fkP zT*XQN_B;hZ$miX-@OALkKM#Q2$9uFV7>$=67g+;M#UX>b!vh)IoPQ4Vs4ouH=e{S9 zIZl@)iAFUAU62kNX@|Z5nvA`F5dY(XJ=E%<$1pWrN!w_6Nh8bPD1$%T!0tBd4CpdK z8qD|HW_n2YhsAnGK%jG6LqN3gcMv!!4)`4p1jP480Y~Hoh>0&j3g+&&LO~gH&j3(9 z__A}{Lm1N8_?`$~470f1z`DVKLaiYwhpooR!a)fa{(9pJ0zqFe2!w%X_Zd@4R2 zpNBt(ufQAeSMlBW0sIsEG~SAThj+l&99~2)5lX}osf2M`o+~`Jdmi@u!t;ig zmzUTp&14N< zg`d{%Nx#*8Z~2||>+l!(%lwP{P5z7gxB7qNeV_SxR2rO&O9{vnwmbjX5`9U-SfZuceo=Ju`byQJ@)zF+p^^o!{? zwqI?(m--#%32d*4=aNxB; z!GkgfO&PRo(0hZf4i*g_IoL3G+2HpFe@h0DS)`F%K^`L8LkENwggQdkhaL;PBaRZ6 zisy)Th`$W;3`-5G3|kh~6xJR-I9wGzBYa!<=MjR4)QGBx zFz&FlVdi0t!_LMEW3yswVzzxR$$pBDiKpUM$Dc~@PRL7`nXotEdg9PTI`O5%b4j8kRnpT*O-a8crzG2wwY~&S)3|BbX*1K_N&8ivENA39+mZhqDIgoHjcQM zE>72`uTO6sNsgR6a^1+*jL-~iMq|c>%&<&d=BCWcSwpg>WWAd8L$);Amc1+cmO`$0 zLa{%G$jQ%HkaH|IAh$GkRqj`L;yiucw!HTIr2NP8_ZM&rMi(q8IIA3}q?B8f?W0mg zJu&LgXyNFR(W^#ZD2yqz74B2vs!^(?sxQVwj4_YdQv`~XMN5mmERHIkTKx7{-q_-? ztH*w$mZ@i`kCcc?CY5Y0xv9z4EY_SajV^VRHkJ97O)T3|cB?$6yuQ43oMhY+<31VR zZ@gjr-U<8(WfL|{=y)Xekry7hG%;!7{E25Cje4~1(T^VM_n7gqcPIHy(oT9~GIw(M z2y7PxiY=7zVeDbUB6U+wJM{kq3W7J zVOV9jKBZvF+9|iHi>fzQcN)u$J4_y?$)>l=0p@D+AhVI#oXPg{kef z(Y8%?%>Jl-FB1q4Q%4=qj;9=LH6v?Q*ZfjjR{KVsf1SDR=(Lz=&rZ8MJ#YHUk8>WU z9&efvI%D>XwkNWlSpOvUWW|$BGs9-in|Wzg{;XGKd(N(&{plR(occLG&n=(3Z{EOp zv*ulVD*vf%^L^&q=AV6f_|t2j;XGq_=Ge0d&#rv-_XWBIA1{&~su zU%$ICvaw+UZ$r(7Z#I@~Jo0kt%Ud?}+q7`gZ=21VTVGMXa%fA+mMvQcY+bw!-{#nM z_0@^5p7?jpzxQsB-M)TD@Q#JAf!7?bef#?4*U#)6y|d|!)Hk-j8S&-No;DzBli^&iALk-?87i|Jnil zfs0L(n$8~_cktAqv4@Tw9)0-35Ar@ZcqHq{`yZx%_|8Z2kKXz?_2WICB!9B|XwuPL zpC)~}>sa!!-N#do?>&)rVqf!!=J#4MS`M7dIr+gU<*83jk2&3Zru59YvlGv@p3|MX z@|p3o>z~(re&_tGFSuVU_|osohOY*E)%c$w|Jl)+-1=@?PTSE7B^S7mY9W?-kC~+SY#DC}gASO;oNQ_JrhlGg#_a7kk zheulH`$HJB#~Aoip8JiVn}Pr*wVUXNUjGp=&*u>Y568M*{{_h4>p!tbI~6|udp&zS zxA{O|yE@F4P|-H$x+1Z@ac59VNw~d<;>}%p;inBb8eK$EZg3=%TuQs1AO88l5ZE!W(xcmgG?O zrk1%&H)t;W#0`RP40r8g6NEP#5Uid7^i8bMNSu-q9y} oN1y5)efl Date: Thu, 5 Jul 2018 15:40:57 -0700 Subject: [PATCH 2/2] [minor] Windows test fix. --- tests/test_api.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/test_api.py b/tests/test_api.py index 1ddbd69d1..a4f566e5c 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -257,7 +257,13 @@ def test_upload_download(self): # bundle a file with this filename in the repo due to some pip install # problems on Windows. Note that the path below is utf-8 encoding of # what we'll eventually encode as shift-jis. - fh = open(os.path.join(this_dir, "./\xe3\x81\x94.shift-jis"), "w") + file_path_s = os.path.join(this_dir, "./\xe3\x81\x94.shift-jis") + file_path_u = file_path_s.decode("utf-8") + if sys.platform.startswith("win"): + fh = open(file_path_u, "w") + else: + fh = open(file_path_s, "w") + try: fh.write("This is just a test file with some random data in it.") finally: