a ze@s|ddlZddlZddlZddlZddlZddlmZdZdZdZ dZ dZ ej dd Zej ed Zej ed Zej ed Zej ed Zej edZGdddejZdZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGd d!d!eZGd"d#d#ejZ Gd$d%d%eZ!Gd&d'd'ejZ"e#d(krxe$dS))N)supports=3hIElQAAAAAJAAAAHAAAAGQAAAAAAAAArAAAAAAAAACsAAAAFQAAAK0AAAAjAAAAwwAAAKEAAADn AAAAMAAAAIkBAAAHAAAAugEAABYAAADCAQAAHAAAANkBAAALAAAA9gEAAEIBAAACAgAAFgAAAEUD AAAeAAAAXAMAAKEAAAB7AwAAMgAAAB0EAAAFAAAAUAQAABsAAABWBAAAIQAAAHIEAAAJAAAAlAQA AABSYXltb25kIEx1eHVyeSBZYWNoLXQAVGhlcmUgaXMgJXMgZmlsZQBUaGVyZSBhcmUgJXMgZmls ZXMAVGhpcyBtb2R1bGUgcHJvdmlkZXMgaW50ZXJuYXRpb25hbGl6YXRpb24gYW5kIGxvY2FsaXph dGlvbgpzdXBwb3J0IGZvciB5b3VyIFB5dGhvbiBwcm9ncmFtcyBieSBwcm92aWRpbmcgYW4gaW50 ZXJmYWNlIHRvIHRoZSBHTlUKZ2V0dGV4dCBtZXNzYWdlIGNhdGFsb2cgbGlicmFyeS4AV2l0aCBj b250ZXh0BFRoZXJlIGlzICVzIGZpbGUAVGhlcmUgYXJlICVzIGZpbGVzAG11bGx1c2sAbXkgY29u dGV4dARudWRnZSBudWRnZQBteSBvdGhlciBjb250ZXh0BG51ZGdlIG51ZGdlAG51ZGdlIG51ZGdl AFByb2plY3QtSWQtVmVyc2lvbjogMi4wClBPLVJldmlzaW9uLURhdGU6IDIwMDMtMDQtMTEgMTQ6 MzItMDQwMApMYXN0LVRyYW5zbGF0b3I6IEouIERhdmlkIEliYW5leiA8ai1kYXZpZEBub29zLmZy PgpMYW5ndWFnZS1UZWFtOiBYWCA8cHl0aG9uLWRldkBweXRob24ub3JnPgpNSU1FLVZlcnNpb246 IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMQpDb250ZW50 LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CkdlbmVyYXRlZC1CeTogcHlnZXR0ZXh0LnB5IDEuMQpQ bHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD1uIT0xOwoAVGhyb2F0d29iYmxlciBNYW5n cm92ZQBIYXkgJXMgZmljaGVybwBIYXkgJXMgZmljaGVyb3MAR3V2ZiB6YnFoeXIgY2ViaXZxcmYg dmFncmVhbmd2YmFueXZtbmd2YmEgbmFxIHlicG55dm1uZ3ZiYQpmaGNjYmVnIHNiZSBsYmhlIENs Z3ViYSBjZWJ0ZW56ZiBvbCBjZWJpdnF2YXQgbmEgdmFncmVzbnByIGdiIGd1ciBUQUgKdHJnZ3Jr ZyB6cmZmbnRyIHBuZ255YnQgeXZvZW5lbC4ASGF5ICVzIGZpY2hlcm8gKGNvbnRleHQpAEhheSAl cyBmaWNoZXJvcyAoY29udGV4dCkAYmFjb24Ad2luayB3aW5rIChpbiAibXkgY29udGV4dCIpAHdp bmsgd2luayAoaW4gIm15IG90aGVyIGNvbnRleHQiKQB3aW5rIHdpbmsA s3hIElQAABQAGAAAAHAAAAEwAAAALAAAAfAAAAAAAAACoAAAAFQAAAKkAAAAjAAAAvwAAAKEAAADj AAAABwAAAIUBAAALAAAAjQEAAEUBAACZAQAAFgAAAN8CAAAeAAAA9gIAAKEAAAAVAwAABQAAALcD AAAJAAAAvQMAAAEAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABQAAAAYAAAACAAAAAFJh eW1vbmQgTHV4dXJ5IFlhY2gtdABUaGVyZSBpcyAlcyBmaWxlAFRoZXJlIGFyZSAlcyBmaWxlcwBU aGlzIG1vZHVsZSBwcm92aWRlcyBpbnRlcm5hdGlvbmFsaXphdGlvbiBhbmQgbG9jYWxpemF0aW9u CnN1cHBvcnQgZm9yIHlvdXIgUHl0aG9uIHByb2dyYW1zIGJ5IHByb3ZpZGluZyBhbiBpbnRlcmZh Y2UgdG8gdGhlIEdOVQpnZXR0ZXh0IG1lc3NhZ2UgY2F0YWxvZyBsaWJyYXJ5LgBtdWxsdXNrAG51 ZGdlIG51ZGdlAFByb2plY3QtSWQtVmVyc2lvbjogMi4wClBPLVJldmlzaW9uLURhdGU6IDIwMDAt MDgtMjkgMTI6MTktMDQ6MDAKTGFzdC1UcmFuc2xhdG9yOiBKLiBEYXZpZCBJYsOhw7FleiA8ai1k YXZpZEBub29zLmZyPgpMYW5ndWFnZS1UZWFtOiBYWCA8cHl0aG9uLWRldkBweXRob24ub3JnPgpN SU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4 NTktMQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBub25lCkdlbmVyYXRlZC1CeTogcHlnZXR0 ZXh0LnB5IDEuMQpQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD1uIT0xOwoAVGhyb2F0 d29iYmxlciBNYW5ncm92ZQBIYXkgJXMgZmljaGVybwBIYXkgJXMgZmljaGVyb3MAR3V2ZiB6YnFo eXIgY2ViaXZxcmYgdmFncmVhbmd2YmFueXZtbmd2YmEgbmFxIHlicG55dm1uZ3ZiYQpmaGNjYmVn IHNiZSBsYmhlIENsZ3ViYSBjZWJ0ZW56ZiBvbCBjZWJpdnF2YXQgbmEgdmFncmVzbnByIGdiIGd1 ciBUQUgKdHJnZ3JrZyB6cmZmbnRyIHBuZ255YnQgeXZvZW5lbC4AYmFjb24Ad2luayB3aW5rAA== s3hIElQcAAAAGAAAAHAAAAEwAAAALAAAAfAAAAAAAAACoAAAAFQAAAKkAAAAjAAAAvwAAAKEAAADj AAAABwAAAIUBAAALAAAAjQEAAEUBAACZAQAAFgAAAN8CAAAeAAAA9gIAAKEAAAAVAwAABQAAALcD AAAJAAAAvQMAAAEAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABQAAAAYAAAACAAAAAFJh eW1vbmQgTHV4dXJ5IFlhY2gtdABUaGVyZSBpcyAlcyBmaWxlAFRoZXJlIGFyZSAlcyBmaWxlcwBU aGlzIG1vZHVsZSBwcm92aWRlcyBpbnRlcm5hdGlvbmFsaXphdGlvbiBhbmQgbG9jYWxpemF0aW9u CnN1cHBvcnQgZm9yIHlvdXIgUHl0aG9uIHByb2dyYW1zIGJ5IHByb3ZpZGluZyBhbiBpbnRlcmZh Y2UgdG8gdGhlIEdOVQpnZXR0ZXh0IG1lc3NhZ2UgY2F0YWxvZyBsaWJyYXJ5LgBtdWxsdXNrAG51 ZGdlIG51ZGdlAFByb2plY3QtSWQtVmVyc2lvbjogMi4wClBPLVJldmlzaW9uLURhdGU6IDIwMDAt MDgtMjkgMTI6MTktMDQ6MDAKTGFzdC1UcmFuc2xhdG9yOiBKLiBEYXZpZCBJYsOhw7FleiA8ai1k YXZpZEBub29zLmZyPgpMYW5ndWFnZS1UZWFtOiBYWCA8cHl0aG9uLWRldkBweXRob24ub3JnPgpN SU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4 NTktMQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBub25lCkdlbmVyYXRlZC1CeTogcHlnZXR0 ZXh0LnB5IDEuMQpQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD1uIT0xOwoAVGhyb2F0 d29iYmxlciBNYW5ncm92ZQBIYXkgJXMgZmljaGVybwBIYXkgJXMgZmljaGVyb3MAR3V2ZiB6YnFo eXIgY2ViaXZxcmYgdmFncmVhbmd2YmFueXZtbmd2YmEgbmFxIHlicG55dm1uZ3ZiYQpmaGNjYmVn IHNiZSBsYmhlIENsZ3ViYSBjZWJ0ZW56ZiBvbCBjZWJpdnF2YXQgbmEgdmFncmVzbnByIGdiIGd1 ciBUQUgKdHJnZ3JrZyB6cmZmbnRyIHBuZ255YnQgeXZvZW5lbC4AYmFjb24Ad2luayB3aW5rAA== s3hIElQAAAAADAAAAHAAAADQAAAAAAAAAAAAAAAAAAABMAAAABAAAAE0AAAAQAAAAUgAAAA8BAABj AAAABAAAAHMBAAAWAAAAeAEAAABhYsOeAG15Y29udGV4dMOeBGFiw54AUHJvamVjdC1JZC1WZXJz aW9uOiAyLjAKUE8tUmV2aXNpb24tRGF0ZTogMjAwMy0wNC0xMSAxMjo0Mi0wNDAwCkxhc3QtVHJh bnNsYXRvcjogQmFycnkgQS4gV0Fyc2F3IDxiYXJyeUBweXRob24ub3JnPgpMYW5ndWFnZS1UZWFt OiBYWCA8cHl0aG9uLWRldkBweXRob24ub3JnPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog N2JpdApHZW5lcmF0ZWQtQnk6IG1hbnVhbGx5CgDCpHl6AMKkeXogKGNvbnRleHQgdmVyc2lvbikA sL3hIElQAAAAABAAAAHAAAACQAAAADAAAALAAAAAAAAAA4AAAAeAEAADkAAAABAAAAAAAAAAAAAAAA UHJvamVjdC1JZC1WZXJzaW9uOiBObyBQcm9qZWN0IDAuMApQT1QtQ3JlYXRpb24tRGF0ZTogV2Vk IERlYyAxMSAwNzo0NDoxNSAyMDAyClBPLVJldmlzaW9uLURhdGU6IDIwMDItMDgtMTQgMDE6MTg6 NTgrMDA6MDAKTGFzdC1UcmFuc2xhdG9yOiBKb2huIERvZSA8amRvZUBleGFtcGxlLmNvbT4KSmFu ZSBGb29iYXIgPGpmb29iYXJAZXhhbXBsZS5jb20+Ckxhbmd1YWdlLVRlYW06IHh4IDx4eEBleGFt cGxlLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PWlzby04ODU5LTE1CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFi bGUKR2VuZXJhdGVkLUJ5OiBweWdldHRleHQucHkgMS4zCgA= xx LC_MESSAGESz gettext.mozgettext_bad_major_version.mozgettext_bad_minor_version.moz ugettext.moz metadata.moc@seZdZddZddZdS)GettextBaseTestcCs\tjtsttttd }|t t Wdn1sF0Ytt d }|t t Wdn1s0Ytt d }|t tWdn1s0Yttd }|t tWdn1s0Yttd }|t tWdn1s00Yt|_d|jd<tjdS)NwbrLANGUAGE)ospathisdir LOCALEDIRmakedirsopenMOFILEwritebase64 decodebytes GNU_MO_DATAMOFILE_BAD_MAJOR_VERSIONGNU_MO_DATA_BAD_MAJOR_VERSIONMOFILE_BAD_MINOR_VERSIONGNU_MO_DATA_BAD_MINOR_VERSIONUMOFILEUMO_DATAMMOFILEMMO_DATArZEnvironmentVarGuardenvgettext _translationsclearselffpr"E/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_gettext.pysetUpws   . . . . 0  zGettextBaseTest.setUpcCs(|j|`ttjtddS)Nr)r__exit__rrmtreerr splitr r r"r"r#tearDowns zGettextBaseTest.tearDownN)__name__ __module__ __qualname__r$r)r"r"r"r#rvsrs3hIElQAAAAABAAAAHAAAACQAAAAAAAAAAAAAAAAAAAAsAAAAggAAAC0AAAAAUGx1cmFsLUZvcm1z OiBucGx1cmFscz0yOyBwbHVyYWw9KG4gIT0gMSk7CiMtIy0jLSMtIyAgbWVzc2FnZXMucG8gKEVk WCBTdHVkaW8pICAjLSMtIy0jLSMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU Ri04CgA= c@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)GettextTestCase1cCs0t|tj|_t|_tjd|jdgddS)Nrpgettextnames) rr$rcurdir localedirrmofilerinstallr(r"r"r#r$s zGettextTestCase1.setUpcCsB|j}|tdd|tdd|tdd|tdddSNZ albatrossmulluskbaconzRaymond Luxury Yach-tzThroatwobbler Mangrove nudge nudge wink wink assertEqual_r eqr"r"r#test_some_translationss z'GettextTestCase1.test_some_translationscCs*|j}|tddd|tddddSN my contextr8wink wink (in "my context")my other context!wink wink (in "my other context"))r;r.r=r"r"r##test_some_translations_with_contexts  z4GettextTestCase1.test_some_translations_with_contextcCsB|j}|tdd|tdd|tdd|tdddSr5r:r=r"r"r#test_double_quotess z#GettextTestCase1.test_double_quotescCsB|j}|tdd|tdd|tdd|tdddSr5r:r=r"r"r#test_triple_single_quotess z*GettextTestCase1.test_triple_single_quotescCsB|j}|tdd|tdd|tdd|tdddSr5r:r=r"r"r#test_triple_double_quotess z*GettextTestCase1.test_triple_double_quotescCs|j}|tdddSNzThis module provides internationalization and localization support for your Python programs by providing an interface to the GNU gettext message catalog library.zGuvf zbqhyr cebivqrf vagreangvbanyvmngvba naq ybpnyvmngvba fhccbeg sbe lbhe Clguba cebtenzf ol cebivqvat na vagresnpr gb gur TAH trggrkg zrffntr pngnybt yvoenel.r:r=r"r"r#test_multiline_stringssz'GettextTestCase1.test_multiline_stringscCs|j}t|jd}t|}Wdn1s20Y||tdd||tddddl}|jddgd |t|j||j|j|t|j|`|`dS) Nrbr8r9r6r7rrlgettextr/) r;r r3rGNUTranslationsr4r<builtinsrL)r r>r!trNr"r"r#test_the_alternative_interfaces(  z/GettextTestCase1.test_the_alternative_interfaceN) r*r+r,r$r?rErFrGrHrJrPr"r"r"r#r-s r-c@sleZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZdS)GettextTestCase2cCs6t|tj|_td|jtdtj|_dSNr) rr$rr1r2rbindtextdomain textdomainr<r(r"r"r#r$s   zGettextTestCase2.setUpcCs|td|jdSrR)r;rrSr2r(r"r"r#test_bindtextdomainsz$GettextTestCase2.test_bindtextdomaincCs|tddSrR)r;rrTr(r"r"r#test_textdomainsz GettextTestCase2.test_textdomainc Csttdt}|t}t|Wdn1s60Y|j}||jd||j d||j tWdn1s0YdS)NrKrzBad version number 5) r r assertRaisesOSErrorrrM exceptionr;errnostrerrorfilename)r r!cmrYr"r"r#test_bad_major_versions  (z'GettextTestCase2.test_bad_major_versioncCs8ttd}t|Wdn1s*0YdSNrK)r rrrMrr"r"r#test_bad_minor_versions z'GettextTestCase2.test_bad_minor_versioncCsJ|j}||dd||dd||dd||dddSr5r:r=r"r"r#r?s z'GettextTestCase2.test_some_translationscCs.|j}|tddd|tddddSr@)r;rr.r=r"r"r#rEs  z4GettextTestCase2.test_some_translations_with_contextcCs2|j}|tdddd|tdddddS)NrrAr8rBrCrD)r;r dpgettextr=r"r"r#.test_some_translations_with_context_and_domainsz?GettextTestCase2.test_some_translations_with_context_and_domaincCsJ|j}||dd||dd||dd||dddSr5r:r=r"r"r#rFs z#GettextTestCase2.test_double_quotescCsJ|j}||dd||dd||dd||dddSr5r:r=r"r"r#rGs z*GettextTestCase2.test_triple_single_quotescCsJ|j}||dd||dd||dd||dddSr5r:r=r"r"r#rH&s z*GettextTestCase2.test_triple_double_quotescCs|j}||dddSrIr:r=r"r"r#rJ.s z'GettextTestCase2.test_multiline_stringsN)r*r+r,r$rUrVr^r`r?rErbrFrGrHrJr"r"r"r#rQs  rQc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3S)4PluralFormsTestCasecCst|t|_dSNrr$rr3r(r"r"r#r$:s zPluralFormsTestCase.setUpcCs:|j}tddd}||dtddd}||ddS)NThere is %s fileThere are %s filesHay %s ficheroHay %s ficheros)r;rngettextr r>xr"r"r#test_plural_forms1>s  z&PluralFormsTestCase.test_plural_forms1cCs>|j}tdddd}||dtdddd}||ddS)N With contextrfrgrhHay %s fichero (context)rjHay %s ficheros (context))r;r npgettextrmr"r"r#test_plural_context_forms1Es z.PluralFormsTestCase.test_plural_context_forms1cCsp|j}t|jd}t|}Wdn1s20Y|ddd}||d|ddd}||ddS)NrKrfrgrhrirjrk)r;r r3rrMrlr r>r!rOrnr"r"r#test_plural_forms2Ns( z&PluralFormsTestCase.test_plural_forms2cCst|j}t|jd}t|}Wdn1s20Y|dddd}||d|dddd}||ddS) NrKrprfrgrhrqrjrr)r;r r3rrMrsrur"r"r#test_plural_context_forms2Ws( z.PluralFormsTestCase.test_plural_context_forms2cs:|j}tddfddtdD}||ddS)N0csg|]}t|qSr"str.0rnfr"r# gz/PluralFormsTestCase.test_ja..Z00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000r;rc2pyjoinranger r>sr"r~r#test_jads zPluralFormsTestCase.test_jacs:|j}tddfddtdD}||ddS)Nn != 1rycsg|]}t|qSr"rzr|r~r"r#rmrz/PluralFormsTestCase.test_de..rZ10111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111rrr"r~r#test_dejs zPluralFormsTestCase.test_decs:|j}tddfddtdD}||ddS)Nzn>1rycsg|]}t|qSr"rzr|r~r"r#rsrz/PluralFormsTestCase.test_fr..rZ00111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111rrr"r~r#test_frps zPluralFormsTestCase.test_frcs:|j}tddfddtdD}||ddS)Nz)n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2rycsg|]}t|qSr"rzr|r~r"r#ryrz/PluralFormsTestCase.test_lv..rZ20111111111111111111101111111110111111111011111111101111111110111111111011111111101111111110111111111011111111111111111110111111111011111111101111111110111111111011111111101111111110111111111011111111rrr"r~r#test_lvvs zPluralFormsTestCase.test_lvcs:|j}tddfddtdD}||ddS)Nzn==1 ? 0 : n==2 ? 1 : 2rycsg|]}t|qSr"rzr|r~r"r#rrz/PluralFormsTestCase.test_gd..r20122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222rrr"r~r#test_gd|s zPluralFormsTestCase.test_gdcs:|j}tddfddtdD}||ddS)Nzn==1 ? 0 : (n==2 ? 1 : 2)rycsg|]}t|qSr"rzr|r~r"r#rrz0PluralFormsTestCase.test_gd2..rrrrr"r~r#test_gd2s zPluralFormsTestCase.test_gd2cs:|j}tddfddtdD}||ddS)Nz6n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2rycsg|]}t|qSr"rzr|r~r"r#rrz/PluralFormsTestCase.test_ro..rZ10111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222rrr"r~r#test_ros zPluralFormsTestCase.test_rocs:|j}tddfddtdD}||ddS)NzEn%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2rycsg|]}t|qSr"rzr|r~r"r#rrz/PluralFormsTestCase.test_lt..rZ20111111112222222222201111111120111111112011111111201111111120111111112011111111201111111120111111112011111111222222222220111111112011111111201111111120111111112011111111201111111120111111112011111111rrr"r~r#test_lts zPluralFormsTestCase.test_ltcs:|j}tddfddtdD}||ddS)NzPn%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2rycsg|]}t|qSr"rzr|r~r"r#rrz/PluralFormsTestCase.test_ru..rZ20111222222222222222201112222220111222222011122222201112222220111222222011122222201112222220111222222011122222222222222220111222222011122222201112222220111222222011122222201112222220111222222011122222rrr"r~r#test_rus zPluralFormsTestCase.test_rucs:|j}tddfddtdD}||ddS)Nz#(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2rycsg|]}t|qSr"rzr|r~r"r#rrz/PluralFormsTestCase.test_cs..rZ20111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222rrr"r~r#test_css zPluralFormsTestCase.test_cscs:|j}tddfddtdD}||ddS)Nz@n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2rycsg|]}t|qSr"rzr|r~r"r#rrz/PluralFormsTestCase.test_pl..rZ20111222222222222222221112222222111222222211122222221112222222111222222211122222221112222222111222222211122222222222222222111222222211122222221112222222111222222211122222221112222222111222222211122222rrr"r~r#test_pls zPluralFormsTestCase.test_plcs:|j}tddfddtdD}||ddS)Nz:n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3rycsg|]}t|qSr"rzr|r~r"r#rrz/PluralFormsTestCase.test_sl..rZ30122333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333012233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333rrr"r~r#test_sls zPluralFormsTestCase.test_slcs:|j}tddfddtdD}||ddS)NzNn==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5rycsg|]}t|qSr"rzr|r~r"r#rrz/PluralFormsTestCase.test_ar..rZ01233333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445553333333344444444444444444444444444444444444444444444444444444444444444444444444444444444444444444rrr"r~r#test_ars zPluralFormsTestCase.test_arcCs|j}|ttjd|ttjd|ttjd|ttjddd|tddd |ttjd |ttjd ddd d|td dddS)Nzos.chmod('/etc/passwd',0777)z"(eval(foo) && ""zf"{os.system('sh')}"zn+i'nzn+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+n+nrhez((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((n))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))()z)((((((((((((((((((((n)))))))))))))))))))))rW ValueErrorrrr;)r Zraisesr"r"r# test_securitysz!PluralFormsTestCase.test_securitycstd|dfddtdDdtd|dfddtdDd td |dfd dtdDdtd |dfd dtdDddS)Nz n == n == nryc3s|]}t|VqdSrdrzr|r~r"r# rz>PluralFormsTestCase.test_chained_comparison..Z010z 1 < n == nc3s|]}t|VqdSrdrzr|r~r"r#rrZ100z n == n < 2c3s|]}t|VqdSrdrzr|r~r"r#rrz 0 < n < 2c3s|]}t|VqdSrdrzr|r~r"r#rrZ111)rrr;rrr(r"r~r#test_chained_comparisons $ $ $ z+PluralFormsTestCase.test_chained_comparisoncCs|tddddS)NZ0123rh{r;rrr(r"r"r#test_decimal_numbersz'PluralFormsTestCase.test_decimal_numberc CsJgd}|D]8}|tt|Wdq 1s:0Yq dS)N)zx>1z(n>1zn>1)z 42**42**42Z0xaz1.0Z1e2zn>0x1z+nz-nzn()zn(1)z1+nnzn n)rWrrr)r Zinvalid_expressionsexprr"r"r#test_invalid_syntaxs z'PluralFormsTestCase.test_invalid_syntaxcCs\|tddd|tddd|tddd|tddddS)Nz n?1?2:3:4rrhrjz n?1:3?4:5rr(r"r"r#test_nested_condition_operatorsz2PluralFormsTestCase.test_nested_condition_operatorcCs\td}||dd||dd||dd||dd|t|ddS) Nz2/n*3rhrjrri)rrr;rWZeroDivisionErrorr rr"r"r# test_divisions  z!PluralFormsTestCase.test_divisioncCstd}||dd||dd|t ||ddWdn1sZ0Y|t ||ddWdn1s0Y|t ||ddWdn1s0Y|t|d|t|d |t|g|t|tdS) Nrrhrrjg?g@g?22)rrr; assertWarnsDeprecationWarningrW TypeErrorobjectrr"r"r#test_plural_numbers  . . .z&PluralFormsTestCase.test_plural_numberN)r*r+r,r$rortrvrwrrrrrrrrrrrrrrrrrrrrr"r"r"r#rc9s2     rcc@sjeZdZddZejddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZdS)LGettextTestCasecCst|t|_dSrdrer(r"r"r#r$s zLGettextTestCase.setUpccs>|td|ddVWdn1s00YdS)N^z\(\) is deprecated)assertWarnsRegexr)r namer"r"r#assertDeprecateds z!LGettextTestCase.assertDeprecatedcCstj}tj}|d ||ddWdn1s<0Y|d ||ddWdn1sv0Y|d"||dddWdn1s0Y|d"||dddWdn1s0YdS)NrLr6baconspamspam ldgettextr)rrLrrr;)r rLrr"r"r# test_lgettexts . . 0 zLGettextTestCase.test_lgettextcCst|jd}t|}Wdn1s,0Y|j}|d ||ddWdn1sl0Y|d ||ddWdn1s0YdS)NrKrLr6rrr)r r3rrMrLrr;r r!rOrLr"r"r#test_lgettext_2s( . z LGettextTestCase.test_lgettext_2cCs tj}tj}|dtd}Wdn1s60Yz|dtddWdn1sp0Y|d&||dddWdn1s0Y|d&||dddWdn1s0Y|d(||ddddWdn1s40Y|d(||ddddWdn1sx0YWtjd=|dtd|Wdn1s0YnBtjd=|dtd|Wdn1s0Y0dS) Nbind_textdomain_codesetrutf-16rLr6r7rr)rrLrrrr;encode_localecodesets)r rLr saved_codesetr"r"r#%test_lgettext_bind_textdomain_codesets* ( * 4 4 8 : . z6LGettextTestCase.test_lgettext_bind_textdomain_codesetcCst|jd}t|}Wdn1s,0Y|j}|d|dWdn1sf0Y|d&||dddWdn1s0Y|d&||dddWdn1s0YdS)NrKset_output_charsetrrLr6r7r) r r3rrMrLrrr;rrr"r"r#test_lgettext_output_encoding-s( ( 4 z.LGettextTestCase.test_lgettext_output_encodingcCs0tj}tj}|d|ddd}Wdn1s80Y||d|d|ddd}Wdn1sz0Y||d|d|dd d}Wdn1s0Y||d |d|dd d}Wdn1s0Y||d |d |d ddd}Wdn1sD0Y||d|d |d ddd}Wdn1s0Y||d|d |d dd d}Wdn1s0Y||d |d |d dd d}Wdn1s0Y||d dS)N lngettextrfrgrhHay %s ficherorjHay %s ficherosThere is %s directoryThere are %s directoriesThere is %s directoryThere are %s directories ldngettextr)rrrrr;)r rrrnr"r"r#test_lngettext8s4 *  *  *  *  .  .  .  .zLGettextTestCase.test_lngettextcCsJt|jd}t|}Wdn1s,0Y|j}|d|ddd}Wdn1sh0Y||d|d|ddd}Wdn1s0Y||d|d|d d d}Wdn1s0Y||d |d|d d d}Wdn1s00Y||d dS) NrKrrfrgrhrrjrrrrr)r r3rrMrrr;r r!rOrrnr"r"r#test_lngettext_2Ts( *  *  *  ,z!LGettextTestCase.test_lngettext_2cCsXtj}tj}|dtd}Wdn1s60Yz|dtddWdn1sp0Y|d|ddd}Wdn1s0Y||dd|d|ddd }Wdn1s0Y||d d|d|d d d}Wdn1s80Y||d d|d|d d d }Wdn1s0Y||d d|d |dddd}Wdn1s0Y||dd|d |dddd }Wdn1s0Y||d d|d |dd d d}Wdn1sf0Y||d d|d |dd d d }Wdn1s0Y||d dWtjd=|dtd|Wdn1s0YnBtjd=|dtd|Wdn1sH0Y0dS)Nrrrrrfrgrhrirjrkrrr)rrrrrr;rr)r rrrrnr"r"r#&test_lngettext_bind_textdomain_codesetesJ ( * * * , , . . . . . z7LGettextTestCase.test_lngettext_bind_textdomain_codesetcCst|jd}t|}Wdn1s,0Y|j}|d|dWdn1sf0Y|d|ddd}Wdn1s0Y||dd|d|ddd }Wdn1s0Y||d d|d|d d d}Wdn1s.0Y||d d|d|d d d }Wdn1sx0Y||d ddS) NrKrrrrfrgrhrirjrkrr) r r3rrMrrrr;rrr"r"r#test_lngettext_output_encodings"( ( * * , ,z/LGettextTestCase.test_lngettext_output_encodingcCst|jd}t|}Wdn1s,0Y|d|dWdn1s`0Y|d ||dWdn1s0YdS)NrKrroutput_charset)r r3rrMrrr;rr r!rOr"r"r#test_output_encodings ( ( z%LGettextTestCase.test_output_encodingN)r*r+r,r$ contextlibcontextmanagerrrrrrrrrrrr"r"r"r#rs    %rc@seZdZddZddZdS)GNUTranslationParsingTestcCsrttd }|ttWdn1s00Yttd}t|}Wdn1sd0YdS)NrrK)r rrrrGNU_MO_DATA_ISSUE_17898rrMrr"r"r#!test_plural_form_error_issue17898s . z;GNUTranslationParsingTest.test_plural_form_error_issue17898cCsttd }|ttWdn1s00Yttd.}t|}|| ddWdn1sx0YdS)NrrKz plural-formsznplurals=2; plural=(n != 1);) r rrrrrrrMr;inforr"r"r#*test_ignore_comments_in_headers_issue36239s  .  zDGNUTranslationParsingTest.test_ignore_comments_in_headers_issue36239N)r*r+r,rrr"r"r"r#rsrc@s,eZdZddZddZddZddZd S) UnicodeTranslationsTestcCsXt|ttd}t||_Wdn1s60Y|jj|_|jj|_dSr_) rr$r rrrMrOr<r.rr"r"r#r$s   * zUnicodeTranslationsTest.setUpcCs||dtdS)Nry)ZassertIsInstancer<r{r(r"r"r#test_unicode_msgidsz*UnicodeTranslationsTest.test_unicode_msgidcCs||dddS)NabÞu¤yzr:r(r"r"r#test_unicode_msgstrsz+UnicodeTranslationsTest.test_unicode_msgstrcCs,|dd}|t|t||ddS)Nu mycontextÞru¤yz (context version))r. assertTrue isinstancer{r;r rOr"r"r#test_unicode_context_msgstrs z3UnicodeTranslationsTest.test_unicode_context_msgstrN)r*r+r,r$rrrr"r"r"r#rsrc@s4eZdZddZddZddZddZd d Zd S) UnicodeTranslationsPluralTestcCsXt|ttd}t||_Wdn1s60Y|jj|_|jj|_dSr_) rr$r rrrMrOrlrsrr"r"r#r$s   * z#UnicodeTranslationsPluralTest.setUpcCs:|j}|t|dddt|t|dddtdSNryrhrj)rrrlr{r unlessr"r"r#rsz0UnicodeTranslationsPluralTest.test_unicode_msgidcCs>|j}|t|ddddt|t|ddddtdSr)rrrsr{rr"r"r#test_unicode_context_msgidsz8UnicodeTranslationsPluralTest.test_unicode_context_msgidcCsj|j}|j}|ddd}|t|t||d|t|t|ddd}|t|t||ddS)Nrfrgrhrirk)r;rrlrr{r r>rrOr"r"r#rs z1UnicodeTranslationsPluralTest.test_unicode_msgstrcCs`|j}|j}|dddd}|t|t||d|dddd}|t|t||ddS)Nrprfrgrhrqrrr)r;rrsrr{rr"r"r# test_unicode_msgstr_with_contexts z>UnicodeTranslationsPluralTest.test_unicode_msgstr_with_contextN)r*r+r,r$rrrrr"r"r"r#rs  rc@seZdZddZddZdS)WeirdMetadataTestcCs`t|ttd8}zt||_Wn|Yn0Wdn1sR0YdSr_)rr$r rrrMrOr)rr"r"r#r$s  zWeirdMetadataTest.setUpcCs.|j}|t|d||dddS)N zlast-translatorz=John Doe Jane Foobar )rOrr;len)r rr"r"r#test_weird_metadatas   z%WeirdMetadataTest.test_weird_metadataN)r*r+r,r$rr"r"r"r#rs rc@seZdZddZdS)DummyGNUTranslationscCsdS)Nfoor"r(r"r"r#r szDummyGNUTranslations.fooN)r*r+r,rr"r"r"r#r src@seZdZddZdS)GettextCacheTestCasecCsDtj|_t|_|ttjdt d|j}|ttjdtj d|jt d}|ttjd||j t tj d|jt d}|ttjd||j t | t d$tj d|jt dd}Wdn1s0Y|ttjd||j t |t  ||dWdn1s60YdS) Nrrrh)class_rjzparameter codesetr)rcodeset)rr1r2rr3r;rrr translationr __class__rrrrrr"r"r# test_caches0   $ zGettextCacheTestCase.test_cacheN)r*r+r,rr"r"r"r#rsrc@seZdZddZdS) MiscTestCasecCsddh}tj|t|ddS)NrENOENT) blacklist)rZ check__all__r)r rr"r"r# test__all__5szMiscTestCase.test__all__N)r*r+r,rr"r"r"r#r4sr__main__)%rrrrZunittesttestrrrrrrr rr rrrrrZTestCaserrr-rQrcrrrrrrMrrrr*mainr"r"r"r#sF   MX@/*$