From 486dc84d3cfc1537d6988a60f9f7455f3eb2d8d3 Mon Sep 17 00:00:00 2001 From: Carlos G?lvez Date: Thu, 13 Sep 2018 18:38:06 +0200 Subject: [PATCH] Migrate to python3. Fix graft errors & improve tests. #035013 --- invoice.py | 10 +- party.py | 3 +- setup.py | 2 +- template_facturae_3.2.xml | 6 +- tests/certificate.pfx | Bin 0 -> 4237 bytes ...est_account_invoice_facturae_electronet.py | 124 ++++++++++-------- 6 files changed, 78 insertions(+), 67 deletions(-) create mode 100644 tests/certificate.pfx diff --git a/invoice.py b/invoice.py index 84e0118..c809a25 100644 --- a/invoice.py +++ b/invoice.py @@ -15,8 +15,7 @@ ELECTRONET_TEMPLATE_SCHEMA = 'Facturaev3_2.xsd' MODULE_PATH = os.path.dirname(os.path.abspath(__file__)) -class Invoice: - __metaclass__ = PoolMeta +class Invoice(metaclass=PoolMeta): __name__ = 'account.invoice' @classmethod @@ -38,10 +37,10 @@ class Invoice: schema_file_path = os.path.join(MODULE_PATH, ELECTRONET_TEMPLATE_SCHEMA) invoice._validate_facturae(facturae_content, schema_file_path) - invoice_facturae = facturae_content + invoice_facturae = str(facturae_content) fname = '%s/%s' % (ELECTRONET, invoice.invoice_facturae_filename.replace('.xsig', '.xml')) - with open(fname, 'w') as output_file: + with open(fname, 'w', encoding='utf-8') as output_file: output_file.write(invoice_facturae) to_write[0].append(invoice) to_write += ({'invoice_facturae': invoice_facturae},) @@ -73,8 +72,7 @@ class Invoice: self._get_content_to_render(), ).encode('utf-8') -class GenerateFacturaeStart: - __metaclass__ = PoolMeta +class GenerateFacturaeStart(metaclass=PoolMeta): __name__ = 'account.invoice.generate_facturae.start' @classmethod diff --git a/party.py b/party.py index 22a1df4..3f052f0 100644 --- a/party.py +++ b/party.py @@ -6,8 +6,7 @@ from trytond.pool import PoolMeta __all__ = ['Party'] -class Party: - __metaclass__ = PoolMeta +class Party(metaclass=PoolMeta): __name__ = 'party.party' id_electronet = fields.Char('Id Electronet') diff --git a/setup.py b/setup.py index e45349c..5a8cab2 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ import io try: from configparser import ConfigParser except ImportError: - from ConfigParser import ConfigParser + from configparser import ConfigParser MODULE2PREFIX = {} diff --git a/template_facturae_3.2.xml b/template_facturae_3.2.xml index fba923c..e46a366 100644 --- a/template_facturae_3.2.xml +++ b/template_facturae_3.2.xml @@ -7,7 +7,7 @@ EM {# As InvoiceIssuerType != TE, ThirdParty element is not generated #} - {{ ('%s%s' % (invoice.company.party.vat_code, invoice.number))[:70] }} + {{ ('%s%s' % (invoice.company.party.tax_identifier.code, invoice.number))[:70] }} 1 {{ invoice.total_amount }} @@ -39,7 +39,7 @@ {{ invoice.company.party.facturae_person_type }} R - {{ invoice.company.party.vat_code[:30] }} + {{ invoice.company.party.tax_identifier.code[:30] }} {# Optional. It could be the ID or the code #} {{ invoice.company.party.id_electronet }} @@ -62,7 +62,7 @@ {{ invoice.party.facturae_person_type }} R - {{ invoice.party.vat_code[:30] }} + {{ invoice.party.tax_identifier.code[:30] }} {# Optional. It could be the ID or the code #} {{ invoice.party.id_electronet }} diff --git a/tests/certificate.pfx b/tests/certificate.pfx new file mode 100644 index 0000000000000000000000000000000000000000..d48112afc160476180498105ee5ec55ba07c5f0b GIT binary patch literal 4237 zcmY+GbyO3KyT`}q2I*!XqlD2tV1T4_cQ+$8Ko~s)l$0(h1*AjZRVh&^k(5pch?Jva zgmQh)x%d9={o^^$IiK%&o_{}IF*MCHARfLLn#PcbR47q9@sbjc7_S^nqe_6LQTmJJ z#Lz?m|A~mo(L_#vksS~Z@OPR2C&3eACnEdr4-|MrVpIeqa#TmK>*q2Lfj|;KESg9l za3R3q%Icx8e828$8u#m0z)vGM83!Qr+G`k^$h+a5DBj)qvPDn z4nIcNh%TThp&^3E#m53rJ3T34dZAuRU6F9v<0s`R!42dSln7tEF#3o8D83%wn_hdO zfgS8z_&6oUBT;7Ac0;&a%3?g8i8Npt4TwVp5?H+|sV@h|`r1`6*{*@pqoiIh)lb|0 zU@XEB37Pw&S%H&q>6C!#^9#bFZEiag5@{P4$7PNA_fENiECJ9nwhMnQ&ZQi|?7F7A zL~3VtYmJZf**;-+F+6n2y|pXpm3EF?jwIT4#{19d-z#XdVlCQ>{akd;z)INv@D>3~;ZQjCg_>LlVUtLDh`Qcs<7&&l?R?pTAi`0<4 zKWsuM-Vh1i&1|ClNz-f`$hIU&=7ICH$zF_qQwXBd@C?zaG(p(MUT~r`9o%oA=r#O~ z^i`F;gN>;Wtx3K}Vauw_R-aODSDe%;>jF7*kMZ`_!L|@YaQ7DtCrDJ#bP|^SDX$cK zC_dw?_Wrko4)wKV=9%Mi=N;}- zPsTpz7c5=zzBpLIR>w~F(h8SnECc~_6MQc75vDvK)Lj-LjJ-!Yq<+n$Mm`ozhGH$g zyM6p%Wn5)m_E;tQAoa~Xuy4L#W@QUuNA^uKWb(K~E5%(h(UyPpl}bV``8I{w3;{q! zMFI0v^wU!TM9(;NS<80~eJp$bjB0KWk6M8LqcJW}>#${+2 zQrR~++8LsnuqEvFK`OISMd`4}_Y-P41@OKHBD!pOAv%TqYnV10dX94!DkUv_a{viQ zRHIXtd8Pw7FT*!kfuTjp-TP)jp&%M;Rfue zr33&Gg^C|C^j&aW#$2&ZZ!dWxG`#hSL#FD}<(YpO$_Fj3uwlc?2tCbJI0pS>qlYhl z0|mI8z{Y2D(YppXF*NDN|09-iH0c`xG-=acT=#dXiOBy)Gh}$czoGwM==1;Vga5C6 z(p*U#0718~f9>=4Tze&_oXhWVxr%S!PUpxC!R`0we6;BI;H40o*;n7nW+?F$Yy%sc%objF_ISW=M(&T3~>vIXp~w&<@3Yi;8^4Ab7&FEjHTVn%yUq z5pddcLzq4FY274d=6;QHw&Ob8dPj+2D;Ow4b15? z1^-;+(oER$ZJgH9GpDkuCfrzBzcpc(WRnVSqkn=y7FO3(D{jrzk#@|-qjn*voP2*n z372Gb(uXbb!vcTtaMoTNS@BXKRgx9FzX%fVcrP>`?W>0~p-+_4S|g`4oSrg&__?~- z8iI&h^pbkPztyH*Vo@nuwHE z-lUn3`NKacp<`wdkDvg->y)nEt&r(?h$Vq@>f_K0j3xe~Uy@24nYRTAtaUo78~Am_^c5-$>FfrFMs=HThf6m1-Kp|jc@aW(oC-FZK15PyTCIra zf|9;m_MnxRwcIL5Zy?pM=_+OwZC|91+R;di}p9TFszGeZg9EH8r#9m&zxs_Czy*T`uz(v)r z)$T+LAvX2T2xY=1h%0N7eaS+2Ej>YQ*qbs(jw*$5ZaQGM}91BaNZt5jCHH!hN*iky|xc_a8@Y$a9L&&2$4c$97t29GjLv z|7=@Ap0FY|^GvLP5_Y%81dtZY@nsMDS}AIUnH7A?D|)3@Xl@~5q1t>4G9o+}(sq+- z*sgV!67{u(k=E1>d@VJ(<{(@6dZa164>u?h1Rny~D7^|)5irZ5FF`|IO1A=zWXkt| zZX2l%@w>yC9qFH|a~UfWNGx9{NLfGlk~AzrnpTNF(Dpnd(YBf);$4pbU1~7_n{Mu& zQ~%g+!IZ3v8jJKd1JuGtx1I-2%%B`iA~Qd6tL(;g*-9FR23cQdQCv6({{| zIh9^Q=1QweQQ(vS`VF`8&2)^{_zLn8!E2d4?Si?-nZ)#MBMZC6x@Z7qdJZYaKZFHfgT<*izilx_Hf&^t;2<6 zRe;<2+=mqKbWMxcPYwg_2p3d1Z_xC6h0b=Z;=u=fbEGJ?pRFFvgpN=Pej_|dMDP+^ z7iE4D=*loczi$Bk$MK8E#BjOJW3So3hA^ngtG?We)XJoO0+GfS*Pb!`ym*bxwKumT zR2LCjQz7S;;%8HVtvFKQu3tCJ9o6O3&71K>t?MIS1kkC08yyvCB(s)zeo*g%crq)pyUPenuq zsUoWD8A-icEa%J+C*gAW!8ISnqwSaCw7|Y=*N%nOPak-q#mOXXVzhV%m(}e}WMMc9 z+tq1<#3}}24f4=`8f7kuv9Fj#$)hD%EK8g27>7@F)4FIzbgauIF_dqK9kvfB93o_Z zU8WNs%s@p!xre9=*XRZ6(;^p{ua{-?XUTfIkf(4amVn*qtW1Af;)c%WB7r3V7wQSA zKY+e=>G>TAbc0=(*J2+-WT>Rf7TXQC4EB!jtohs%5zy?u6_y|7crIVJQpet%P!LfL z=CYCU(|Y)i5vt*CTPotpvxrZhrzraQ(L&yPF^O=?Qrw^K*5{T-hW!nce zD$&`H{t3o+0Q7YGFphN*haGQW5Z*b$2kHzp1Xpgop~310Wp5He20YOMK~kAoUVhKT zasaQ2m6Mx3qg}q|#LJm8V#KfJqE;SjnzVReUuo7_7BlcyX%zU}MGQ_&DL1P3a6gT* zJ58wH;ckg{TADg}+aI6lIU`c3z@czYn&YBNh|2j7W`phbxeg{ZJiVXYz^Zs>1=kah zNY_$tFTXn>bh@T}afh|R_J01hadzK7uf>)qiOZ^S0GI5aPLqF}-EjOGQiWp-Ccj!N z%B3-^%RxU!UvLY3s3RIV zt0-aG3ai^P(Z8`DF(6vV1h5o><+>trzxC-&4O=9L9=q7;18^j@*f$gFxV^y!L3x01Qx(xMwCvNf1x3gWUDK-2!1g^s>&L_tE zzwL~aL7b6*zI%Pv$mWztUd+yTS-jSX-@J_EiI}(;NQ{(-P?!oI$VvzxptpR%wb(7Y fV`S>!dz6n{lo