Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 2øªjáã@sÎdZddlmZddlmZddlZddlZddlZddlZddl m Z ddl m Z ddlmZdd „ZGd d „d ƒZGd d „d eƒZddd„Zddd„ZGdd„deƒZGdd„de ƒZ Gdd„de ƒZdS)zHelpers for writing unit tests.é)ÚIterable)ÚBytesION)ÚTestCase)Útobytes)Ú XMLWritercCsŽtƒ}d}t|tƒr||7}nPt|tƒr8|t|dƒ7}n6t|tƒr\|djdd„|Dƒƒ7}ntdt|ƒj ƒ‚|d7}|j j |dƒ|j d S) aAParses a snippet of XML. Input can be either a single string (unicode or UTF-8 bytes), or a a sequence of strings. The result is in the same format that would be returned by XMLReader, but the parser imposes no constraints on the root element so it can be called on small snippets of TTX files. szutf-8ócss|]}t|dƒVqdS)zutf-8N)r)Ú.0Ús©r ú=/tmp/pip-build-_d5lkt3n/fonttools/fontTools/misc/testTools.pyú szparseXML..z0expected string or sequence of strings; found %rsré) ÚTestXMLReader_Ú isinstanceÚbytesÚstrrrÚjoinÚ TypeErrorÚtypeÚ__name__ÚparserÚParseÚroot)Z xmlSnippetÚreaderÚxmlr r r ÚparseXMLs     rc@sfeZdZdd„Zdd„Zdd„Zddd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dS)ÚFakeFontcCs*||_dd„t|ƒDƒ|_d|_i|_dS)NcSsi|]\}}||“qSr r )rÚiÚgr r r ú ,sz%FakeFont.__init__..F)Ú glyphOrder_Ú enumerateÚreverseGlyphOrderDict_ÚlazyÚtables)ÚselfZglyphsr r r Ú__init__*szFakeFont.__init__cCs |j|S)N)r$)r%Útagr r r Ú __getitem__0szFakeFont.__getitem__cCs||j|<dS)N)r$)r%r'Útabler r r Ú __setitem__3szFakeFont.__setitem__NcCs|jj||ƒS)N)r$Úget)r%r'Údefaultr r r r+6sz FakeFont.getcCs |j|S)N)r")r%Únamer r r Ú getGlyphID9szFakeFont.getGlyphIDcs‡fdd„|DƒS)Ncsg|]}ˆj|ƒ‘qSr )r.)rÚgid)r%r r ú =sz+FakeFont.getGlyphIDMany..r )r%Úlstr )r%r ÚgetGlyphIDMany<szFakeFont.getGlyphIDManycCs$|t|jƒkr|j|Sd|SdS)Nz glyph%.5d)Úlenr )r%ZglyphIDr r r Ú getGlyphName?s zFakeFont.getGlyphNamecs‡fdd„|DƒS)Ncsg|]}ˆj|ƒ‘qSr )r4)rr/)r%r r r0Esz-FakeFont.getGlyphNameMany..r )r%r1r )r%r ÚgetGlyphNameManyDszFakeFont.getGlyphNameManycCs|jS)N)r )r%r r r Ú getGlyphOrderGszFakeFont.getGlyphOrdercCs|jS)N)r")r%r r r ÚgetReverseGlyphMapJszFakeFont.getReverseGlyphMapcCs t|jƒƒS)N)Úsortedr6)r%r r r Ú getGlyphNamesMszFakeFont.getGlyphNames)N)rÚ __module__Ú __qualname__r&r(r*r+r.r2r4r5r6r7r9r r r r r)s rc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) rcCsBddlm}|ƒ|_|j|j_|j|j_|j|j_d|_ g|_ dS)Nr)Ú ParserCreate) Úxml.parsers.expatr<rÚ startElement_ÚStartElementHandlerÚ endElement_ÚEndElementHandlerÚaddCharacterData_ÚCharacterDataHandlerrÚstack)r%r<r r r r&Rs    zTestXMLReader_.__init__cCs<||gf}|jr&|jddj|ƒn||_|jj|ƒdS)Nér éÿÿÿÿ)rDÚappendr)r%r-ÚattrsÚelementr r r r>[s  zTestXMLReader_.startElement_cCs|jjƒdS)N)rDÚpop)r%r-r r r r@cszTestXMLReader_.endElement_cCs|jddj|ƒdS)NrEr rF)rDrG)r%Údatar r r rBfsz TestXMLReader_.addCharacterData_N)rr:r;r&r>r@rBr r r r rQs rÚ cCs(ttƒ|d�}|jjdƒ|jjƒ|S)N)Ú newlinestrr)rrÚfileÚseekÚtruncate)rMÚwriterr r r Ú makeXMLWriterjs  rRcCs6tƒ}|||ƒ|jjƒjdƒ}|jdƒs.t‚|jƒS)zºCall the passed toXML function and return the written content as a list of lines (unicode strings). Result is stripped of XML declaration and OS-specific newline characters. zutf-8rL)rRrNÚgetvalueÚdecodeÚendswithÚAssertionErrorÚ splitlines)ÚfuncZttFontrQrr r r ÚgetXMLss  rYc@s8eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd S) ÚMockFontzYA font-like object that automatically adds any looked up glyphname to its glyphOrder.cs4dgˆ_G‡fdd„dtƒ}|ddiƒˆ_dˆ_dS)Nz.notdefcseZdZ‡fdd„ZdS)z)MockFont.__init__..AllocatingDictcs ˆjj|ƒt|ƒ}|||<|S)N)Ú _glyphOrderrGr3)Z reverseDictÚkeyr/)r%r r Ú __missing__ˆs z5MockFont.__init__..AllocatingDict.__missing__N)rr:r;r]r )r%r r ÚAllocatingDict‡sr^rF)r[ÚdictÚ_reverseGlyphOrderr#)r%r^r )r%r r&„szMockFont.__init__cCs|j|}|S)N)r`)r%Zglyphr/r r r r.�s zMockFont.getGlyphIDcCs|jS)N)r`)r%r r r r7”szMockFont.getReverseGlyphMapcCs |j|S)N)r[)r%r/r r r r4—szMockFont.getGlyphNamecCs|jS)N)r[)r%r r r r6šszMockFont.getGlyphOrderN) rr:r;Ú__doc__r&r.r7r4r6r r r r rZ€s  rZc@seZdZdd„ZdS)rcCs"tj||ƒt|dƒs|j|_dS)NÚassertRaisesRegex)Ú _TestCaser&ÚhasattrZassertRaisesRegexprb)r%Ú methodNamer r r r& s  zTestCase.__init__N)rr:r;r&r r r r ržsrc@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) ÚDataFilesHandlercCsd|_d|_dS)Nr)ÚtempdirZ num_tempfiles)r%r r r ÚsetUpªszDataFilesHandler.setUpcCs|jrtj|jƒdS)N)rgÚshutilÚrmtree)r%r r r ÚtearDown®szDataFilesHandler.tearDowncCs&tjjtj|jjƒ}tjj|d|ƒS)NrK)ÚosÚpathÚdirnameÚsysÚmodulesr:Ú__file__r)r%ZtestfileZfolderr r r Úgetpath²szDataFilesHandler.getpathcCs|jstjƒ|_dS)N)rgÚtempfileÚmkdtemp)r%r r r Útemp_dir¶szDataFilesHandler.temp_dircCs(|jƒtjj|j|ƒ}tj||ƒ|S)N)rurlrmrrgriÚcopy2)r%Z font_pathÚ file_nameZtemppathr r r Ú temp_fontºs zDataFilesHandler.temp_fontN)rr:r;rhrkrrrurxr r r r rf¨s rf)rL)N)raÚcollections.abcrÚiorrlrirorsZunittestrrcZfontTools.misc.textToolsrZfontTools.misc.xmlWriterrrrÚobjectrrRrYrZrfr r r r Ús"     (