Sindbad~EG File Manager
�
'ΜgoW����ddlZddlZddlmZGd�dej�ZGd�d�ZGd�d�ZGd �d
ej�Zedk(rej�yy)�N)�Templatec�`�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d �Zd
�Zd�Z
d�Zd
�Zd�Zy)�
ModuleTestc�H�|jtjd�|jtjd�|jtjd�|jtj
tjtjz�|jtjd�|jtjtjdz�|jtjd�|jtjd�|jtjtjtjztjztjztjz�y)Nz
�abcdefghijklmnopqrstuvwxyz�ABCDEFGHIJKLMNOPQRSTUVWXYZ�
0123456789�abcdefABCDEF�01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)�assertEqual�string�
whitespace�ascii_lowercase�ascii_uppercase�
ascii_letters�digits� hexdigits� octdigits�punctuation� printable��selfs �-/usr/local/lib/python3.12/test/test_string.py�
test_attrszModuleTest.test_attrss+��
����*�*�,=�>�����/�/�1M�N�����/�/�1M�N�����-�-�v�/E�/E��H^�H^�/^�_��������5�����)�)�6�=�=�>�+I�J�����)�)�:�6�����+�+�-Q�R�����)�)�6�=�=�6�;Q�;Q�+Q�TZ�Tj�Tj�+j�ms�m�m�+�CI�CT�CT�,T� U�c��|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjdd�d�|jtjd �d
�|jtjd�d�|jtjd
�d�|jtjd
d�d�y)Nzabc def ghizAbc Def Ghizabc def
ghizabc def
ghizABC DEF GHIzABC-DEF-GHI�-zAbc-Def-GhizABC-def DEF-ghi GHIzAbc-def Def-ghi Ghiz aBc DeF zAbc Defz aBc DeF � z Abc Def )rr
�capwordsrs r�
test_capwordszModuleTest.test_capwordss����������7��G��������9�=�I�������)=�>�
�N��������7��G���������<�m�L�������)>�?�AV�W�������)9�:�I�F��������8�)�D���������>��Orc��tj�}|j|jd�d�|j|jdd�d�|j|jddd�d�|j t
|j�|j t
tjj�y)N�foozfoo{0}�bar�foobarz
foo{1}{0}-{1}�z foo6bar-6)r
� Formatterr�format�assertRaises� TypeError�r�fmts r�test_basic_formatterzModuleTest.test_basic_formatter"s������ ��������E�*�E�2�������H�e�4�h�?�������O�U�A�>��L����)�S�Z�Z�0����)�V�%5�%5�%<�%<�=rc�@�tj�}|j|jdd��d�|j t
|jd�|j|jdd��d�|j t
|jd�|j|jdd��d�|j t
|jd�|j
td �5|jdd�
�ddd�y#1swYyxYw)Nz-{arg}-�test��argz-test-z-{self}-rz-{format_string}-)�
format_stringr1)r1r0)r
r&rr'r(�KeyError�assertRaisesRegexr)r*s r�test_format_keyword_argumentsz(ModuleTest.test_format_keyword_arguments*s������ ��������I�6��:�H�E����(�C�J�J� �:�������J�V��<�h�G����(�C�J�J�
�;�������$7�v��N�!� #����(�C�J�J�0C�D�
�
#�
#�I��
?��J�J�Y�F�J�;�@�
?�
?�s�7D�Dc�2�tj�}|j|jddd�djdd��|j|jdddd��djddd���|j|jddd�djdd��|j|jdddd�djddd��|j|jd d
dd��d jd
dd���|j t
�5|jddd�ddd�|j t
�5|jd
dd�ddd�y#1swY�;xYw#1swYyxYw)Nzfoo{}{}r#r%zfoo{1}{num}{1})�numz{:^{}}z {:^{}} {}�Xz{:^{pad}}{}r")�padzfoo{1}{}zfoo{}{1}�r
r&rr'r(�
ValueErrorr*s r�test_auto_numberingzModuleTest.test_auto_numbering6sg����� ��������I�u�a�8�"�)�)�%��3� 5�������$4�d�E�q��I�)�0�0��u�!�0�D� F�������H�e�Q�7�!�����2� 4�������K���3�?�$�+�+�E�1�c�:� <�������M�5�%�Q��G�&�-�-�e�U��-�B� D��
�
�z�
*��J�J�z�5�!�,�+��
�
�z�
*��J�J�z�5�!�,�+�
*�+�
*��+�
*�s�3F�$F
�F
�
Fc�J�tj�}|j|jdd��d�|j|jdd�d�|j t
|jdd�|j|jdd�d �|j|jdtj�d
�|j|jdtd��d�|j|jdtd
��d�y)Nz -{arg!r}-r.r/z-'test'-z{0!s}z{0!h}z{0!a}�*�42z6'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'�z'\xff'�z'\u0100')r
r&rr'r(r:r�chrr*s r�test_conversion_specifiersz%ModuleTest.test_conversion_specifiersIs������ ��������K�V��<�j�I�������G�V�4�f�=����*�c�j�j�'�6�B�������G�R�0�$�7�������G�f�.B�.B�C�D� F�������G�c�#�h�7��C�������G�c�#�h�7��Erc�
�tj�}Gd�d�}|�}|j|jd|�d�|j t
�5|jdd�ddd�y#1swYyxYw)Nc��eZdZd�Zy)�,ModuleTest.test_name_lookup.<locals>.AnyAttrc��|S�N�)r�attrs r�__getattr__z8ModuleTest.test_name_lookup.<locals>.AnyAttr.__getattr__Xs���rN)�__name__�
__module__�__qualname__rJrHrr�AnyAttrrEWs��
rrNz{0.lumber}{0.jack}�
lumberjack�)r
r&rr'r(�AttributeError)rr+rN�xs r�test_name_lookupzModuleTest.test_name_lookupUsh����� �� � �
�I��������$8�!�<�l�K�
�
�
�~�
.��J�J�+�R�0�/�
.�
.�s�A9�9Bc�h�tj�}gd�}|j|jd|�d�|j t
�5|jdg�ddd�|j t�5|jdi�ddd�y#1swY�:xYw#1swYyxYw)N)�eggs�and�spamz{0[2]}{0[0]}�spameggs)r
r&rr'r(�
IndexErrorr2)rr+�lookups r�test_index_lookupzModuleTest.test_index_lookup_s������ ��(��������N�F�;�Z�H�
�
�
�z�
*��J�J�~�r�*�+�
�
�
�x�
(��J�J�~�r�*�)�
(�+�
*��
(�
(�s�B�B(�B%�(B1c��Gd�dtj�}|ddi�}|j|jd�d�y)Nc��eZdZifd�Zd�Zy)�>ModuleTest.test_override_get_value.<locals>.NamespaceFormatterc�P�tjj|�||_yrG)r
r&�__init__� namespace)rras rr`zGModuleTest.test_override_get_value.<locals>.NamespaceFormatter.__init__js��� � �)�)�$�/�!*��rc��t|t�r ||Stj
j
|||�y#t$r|j|cYSwxYwrG)�
isinstance�strr2rar
r&� get_value)r�key�args�kwdss rrezHModuleTest.test_override_get_value.<locals>.NamespaceFormatter.get_valuensU���c�3�'�3�#�C�y�(��$�$�.�.�s�D�$�?��$�3�#�~�~�c�2�2�3�s�9�A�AN)rKrLrMr`rerHrr�NamespaceFormatterr^is��)+�
+�
@rri�greeting�helloz{greeting}, world!z
hello, world!�r
r&rr')rrir+s r�test_override_get_valuez"ModuleTest.test_override_get_valuehsA��
@��!1�!1�
@�!�*�W�!5�6��������$8�9�?�Krc��Gd�dtj�}|�}|j|jdd��d�y)Nc��eZdZd�Zy)�<ModuleTest.test_override_format_field.<locals>.CallFormatterc�$�t|�|�SrG)r')r�value�format_specs r�format_fieldzIModuleTest.test_override_format_field.<locals>.CallFormatter.format_field~s���e�g�{�3�3rN)rKrLrMrtrHrr�
CallFormatterrp}s��
4rruz*{0}*c��y)N�resultrHrHrr�<lambda>z7ModuleTest.test_override_format_field.<locals>.<lambda>�s��hrz*result*rl)rrur+s r�test_override_format_fieldz%ModuleTest.test_override_format_field|s9�� 4�F�,�,� 4��o��������G�->�?��Lrc��Gd�dtj�}|�}|j|jddd�d�y)Nc���eZdZ�fd�Z�xZS)�:ModuleTest.test_override_convert_field.<locals>.XFormatterc�0��|dk(ryt�|�||�S)NrR)�super�
convert_field)rrr�
conversion� __class__s �rrzHModuleTest.test_override_convert_field.<locals>.XFormatter.convert_field�s �����$���w�,�U�J�?�?r)rKrLrMr�
__classcell__)r�s@r�
XFormatterr|�s���
@�
@rr�z{0!r}:{0!x}r"z
'foo':Nonerl)rr�r+s r�test_override_convert_fieldz&ModuleTest.test_override_convert_field�s<�� @��)�)� @��l��������M�5�%�@�,�Orc��Gd�dtj�}|�}|j|jdd�d�y)Nc��eZdZd�Zy)�4ModuleTest.test_override_parse.<locals>.BarFormatterc3�K�|jd�D]3}|ddk(r!|ddjd�\}}}d||df���,|dddf���5y�w)N�|r�+��:rP)�split� partition)rr1�field�
field_name�_rss r�parsez:ModuleTest.test_override_parse.<locals>.BarFormatter.parse�sa����*�0�0��5�E��Q�x�3��5:�1�2�Y�5H�5H��5M�2�
�A�{� �*�k�4�?�?�#�T�4��5�5�
6�s�A AN)rKrLrMr�rHrr�BarFormatterr��s��
6rr�z*|+0:^10s|*r"z* foo *rl)rr�r+s r�test_override_parsezModuleTest.test_override_parse�s8��
6�6�+�+�
6��n��������M�5�9�>�Jrc �@�Gd�dtj�}|�}|j|jdd�d�|j|jddd��d �|j|jd
ddd��d�|j t
|jd
dddd
��|j t
|jddd�|j t
|jdddd��|j t
|jdddd��y)Nc��eZdZd�Zy)�@ModuleTest.test_check_unused_args.<locals>.CheckAllUsedFormatterc���t|j��}|jtdt |���|D]}|j|��|rt
d��y)Nrzunused arguments)�set�keys�update�range�len�remover:)r� used_argsrg�kwargs�unused_argsr0s r�check_unused_argszRModuleTest.test_check_unused_args.<locals>.CheckAllUsedFormatter.check_unused_args�sY��!�&�+�+�-�0���"�"�5��C��I�#6�7�$�C��&�&�s�+�%��$�%7�8�8�rN)rKrLrMr�rHrr�CheckAllUsedFormatterr��s��
9rr�z{0}�
�10z{0}{i}�d��i�10100z {0}{i}{1}��1010020r)r��j�{i}r9)rr�r+s r�test_check_unused_argsz!ModuleTest.test_check_unused_args�s���
9�F�$4�$4�
9�$�%��������E�2�.��5�������H�b�C��8�'�B�������K��R�3��?��K����*�c�j�j�+�r�2��PQ��R����*�c�j�j�%��R�@����*�c�j�j�%��R�3��G����*�c�j�j�%��R�3��Grc� �tj�}d}td��}|jt�5}|jd||t
�d�ddd�|jdtj��y#1swY�/xYw)NrHr�r�r����� recursion)
r
r&�dictr(r:�_vformatr��assertInrd� exception)rr+rgr��errs r�test_vformat_recursion_limitz'ModuleTest.test_vformat_recursion_limit�si����� ��������
�
�
�z�
*�c��L�L���f�c�e�R�8�+��
�
�k�3�s�}�}�#5�6�+�
*�s�B�B
N)rKrLrMrr r,r4r;rBrSr[rmryr�r�r�r�rHrrrrsP��
U� P�>�
<�-�&
F�1�+�L�(M�P�K� H�,7rrc��eZdZy)�BagN)rKrLrMrHrrr�r��s��rr�c��eZdZd�Zy)�Mappingc��|}|jd�D]} t||�}�|S#t$rt|��wxYw)N�.)r��getattrrQr2)r�name�obj�parts r�__getitem__zMapping.__getitem__�sL�����J�J�s�O�D�
%��c�4�(��$�
�
��"�
%��t�n�$�
%�s�(�=N)rKrLrMr�rHrrr�r��s��rr�c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d �Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�TestTemplatec��td�}|j|jtdd���d�|j t
|jtd���|j ttj�y)Nz,$who likes to eat a bag of $what worth $$100�tim�ham��who�what�(tim likes to eat a bag of ham worth $100�r�)rr�
substituter�r(r2r))r�ss r�test_regular_templatesz#TestTemplate.test_regular_templates�sa���C�D��������d�u�5�&A�B�C� E����(�A�L�L�$�5�/�B����)�X�%8�%8�9rc���td�}tddd��}|j|j|�d�|j t
|jtdd���y)N�$who likes ${what} for ${meal}r�r��dinner�r�r��meal�tim likes ham for dinnerr�)rr�rr�r(r2�rr��ds r�"test_regular_templates_with_bracesz/TestTemplate.test_regular_templates_with_braces�sT���5�6���U��X�6��������a��*D�E����(�A�L�L��5�u�5� 7rc�x�td�}tddd��}|j|j|�d�y)Nz$WHO likes ${WHAT} for ${MEAL}r�r�r�)�WHO�WHAT�MEALr��rr�rr�r�s r�&test_regular_templates_with_upper_casez3TestTemplate.test_regular_templates_with_upper_case�s4���5�6���U��X�6��������a��*D�Erc�x�td�}tddd��}|j|j|�d�y)Nz%$_wh0_ likes ${_w_h_a_t_} for ${mea1}r�r�r�)�_wh0_� _w_h_a_t_�mea1r�r�r�s r�'test_regular_templates_with_non_lettersz4TestTemplate.test_regular_templates_with_non_letters�s4���<�=���u��H�=��������a��*D�Erc���|j}td�}||jtdd���d�td�}||jtdd���d�y)Nz-$who likes to eat a bag of $$what worth $$100r�r�r�z*tim likes to eat a bag of $what worth $100z
$who likes $$ztim likes $�rrr�r��r�eqr�s r�test_escapeszTestTemplate.test_escapes�sY��
�
�
���D�E��
�1�<�<���U�3�4�7� 9��_�%��
�1�<�<���U�3�4�m�Drc��|j}td�}td��}||j|�d�||j |�d�y)Nz%(foo)s $foo ${foo}�baz�r"z%(foo)s baz baz�rrr�r��safe_substitute�rr�r�r�s r�
test_percentszTestTemplate.test_percents�sJ��
�
�
���*�+���U�O��
�1�<�<��?�-�.�
�1���Q��!2�3rc���|j}td�}td��}||j|�d�||j |�d�td�}||j|�d�y)Nz&tim has eaten $count bags of ham today�)�countz!tim has eaten 7 bags of ham todayz(tim has eaten ${count} bags of ham todayr�r�s r�test_stringificationz!TestTemplate.test_stringification�sh��
�
�
���=�>���q�M��
�1�<�<��?�?�@�
�1���Q��!D�E��?�@��
�1�<�<��?�?�@rc��|j}td�}tdd��}||j|�d�||j |�d�y)Nz$who ate ${meal})r��fred)r��kung pao)r�r�z'('tim', 'fred') ate ('ham', 'kung pao')r�r�s r�test_tupleargszTestTemplate.test_tupleargssN��
�
�
���'�(���_�+>�?��
�1�<�<��?�E�F�
�1���Q��!J�Krc ��|j}td�}||jtd���d�||jtd���d�||jtdd� ��d
�||jtdd���d�||jtddd�
��d�y)Nr�r�r�ztim likes ${what} for ${meal}r��r�z$who likes ham for ${meal}r�)r�r�z$who likes ham for dinnerr�ztim likes ham for ${meal}r�r�)rrr�r�r�s r�test_SafeTemplatezTestTemplate.test_SafeTemplates���
�
�
���5�6��
�1���T�e�_�-�/N�O�
�1���T�u�-�.�0L�M�
�1���T�u�8�<�=�&� (�
�1���T�e�%�8�9�&� (�
�1���T�e�%�h�G�H�%� 'rc���|j}td�}|t|jt d���td�}|t|jt d���td�}|t|jt d���td�}|t|jt d���td�}|t|jt d���y)Nz$who likes $r�r�z$who likes ${what)z$who likes $100u$who likes $ıu$who likes $İ)r(rr:r�r�)r�raisesr�s r�test_invalid_placeholdersz&TestTemplate.test_invalid_placeholderss����"�"���^�$���z�1�<�<��%��9��)�*���z�1�<�<��%��9��&�'���z�1�<�<��%��9�
�)�*���z�1�<�<��%��9��)�*���z�1�<�<��%��9rc�0�Gd�dt�}t�}t�|_t�|j_d|jj_d|j_|d�}|j|j|�d�y)Nc��eZdZdZy)�9TestTemplate.test_idpattern_override.<locals>.PathPatternz[_a-z][._a-z0-9]*N)rKrLrM� idpatternrHrr�PathPatternr#s��,�Irrr�r�z,$bag.foo.who likes to eat a bag of $bag.what�tim likes to eat a bag of ham) rr�r��bagr"r�r�rr�)rr�mr�s r�test_idpattern_overridez$TestTemplate.test_idpattern_override"si�� -�(� -��I�������E���� ����� � �
�����
��F�G��������a��*I�Jrc���Gd�dt�}|d�}tdddd��}|jt|j|�|j|j
|�d �y)
Nc��eZdZdZy)�3TestTemplate.test_flags_override.<locals>.MyPatternrN)rKrLrM�flagsrHrr� MyPatternr .s���Errz$wHO likes ${WHAT} for ${meal}r�r�r�r�)�wHOr�r��wzfredHO likes ${WHAT} for dinner)rr�r(r:r�rr�)rrr�r�s r�test_flags_overridez TestTemplate.test_flags_override-s[�� �� ��6�7���U��X��@�����*�a�l�l�A�6�����*�*�1�-�/P�Qrc��Gd�dt�}tdd��}|d�}|j|j|�d�y)Nc��eZdZdZdZdZy)�FTestTemplate.test_idpattern_override_inside_outside.<locals>.MyPattern�[a-z]+�[A-Z]+rN�rKrLrMr�braceidpatternr
rHrrrr8���!�I�&�N��Errr"�BAR�r"rz$foo ${BAR}zfoo BARr��rrrr�s r�&test_idpattern_override_inside_outsidez3TestTemplate.test_idpattern_override_inside_outside5s>�� �� �
�U��&���m�$��������a��)�4rc���Gd�dt�}tdd��}|d�}|jt|j|�|d�}|jt|j|�y)Nc��eZdZdZdZdZy)�WTestTemplate.test_idpattern_override_inside_outside_invalid_unbraced.<locals>.MyPatternrrrNrrHrrrrCrrrr"rrz$FOOz${bar})rr�r(r:r�rs r�7test_idpattern_override_inside_outside_invalid_unbracedzDTestTemplate.test_idpattern_override_inside_outside_invalid_unbraced@s\�� �� �
�U��&���f������*�a�l�l�A�6��h������*�a�l�l�A�6rc���Gd�dt�}t�}t�|_t�|j_d|jj_d|j_|d�}|j|j|�d�Gd�dt�}|d�}|jt|ji�|jt|ji�y) Nc��eZdZdZy)�5TestTemplate.test_pattern_override.<locals>.MyPatternz�
(?P<escaped>@{2}) |
@(?P<named>[_a-z][._a-z0-9]*) |
@{(?P<braced>[_a-z][._a-z0-9]*)} |
(?P<invalid>@)
N�rKrLrM�patternrHrrrr!Ns ���Grrr�r��,@bag.foo.who likes to eat a bag of @bag.whatrc��eZdZdZy)�6TestTemplate.test_pattern_override.<locals>.BadPatterna
(?P<badname>.*) |
(?P<escaped>@{2}) |
@(?P<named>[_a-z][._a-z0-9]*) |
@{(?P<braced>[_a-z][._a-z0-9]*)} |
(?P<invalid>@) |
Nr"rHrr�
BadPatternr&]� ���Grr')rr�r�rr"r�r�rr�r(r:r�)rrrr�r's r�test_pattern_overridez"TestTemplate.test_pattern_overrideMs��� �� �
�I�������E���� ����� � �
�����
��D�E��������a��*I�J� �� �
�E�F�����*�a�l�l�B�7����*�a�&7�&7��<rc���Gd�dt�}d}||�}|jt|ji�|jddi�}|j |d�y)Nc��eZdZdZy)�5TestTemplate.test_braced_override.<locals>.MyTemplate��
\$(?:
(?P<escaped>$) |
(?P<named>[_a-z][_a-z0-9]*) |
@@(?P<braced>[_a-z][_a-z0-9]*)@@ |
(?P<invalid>) |
)
Nr"rHrr�
MyTemplater,j� ���Grr.�PyCon in $@@location@@�location� Cleveland�PyCon in Cleveland)rr(r2r�r�rr.�tmpl�t�vals r�test_braced_overridez!TestTemplate.test_braced_overrideisY�� �� �(���t������(�A�L�L�"�5��l�l�J��4�5������2�3rc��Gd�dt�}d}||�}|j|j�|�|jddi�}|j|d�y)Nc��eZdZdZy)�:TestTemplate.test_braced_override_safe.<locals>.MyTemplater-Nr"rHrrr.r;{r/rr.r0r1r2r3)rrr�r4s r�test_braced_override_safez&TestTemplate.test_braced_override_safezs^�� �� �(���t�������*�*�,�d�3�����[� 9�:������2�3rc���Gd�dt�}|d�}|jt�5}|ji�ddd�|j dtj��y#1swY�/xYw)Nc��eZdZdZy)�;TestTemplate.test_invalid_with_no_lines.<locals>.MyTemplatez�
(?P<invalid>) |
unreachable(
(?P<named>) |
(?P<braced>) |
(?P<escaped>)
)
Nr"rHrrr.r?�s ���Grr.rPz
line 1, col 1)rr(r:r�r�rdr�)rr.r�r�s r�test_invalid_with_no_linesz'TestTemplate.test_invalid_with_no_lines�sZ�� �� �
�r�N��
�
�
�z�
*�c�
�L�L���+��
�
�o�s�3�=�=�'9�:�+�
*�s�A-�-A6c�v�td�}tdd��}|j|j|�d�y)N�$who likes $whatutÿmufþedr�utÿm likes fþedr�r�s r�test_unicode_valuesz TestTemplate.test_unicode_values�s2���'�(���X�K�0��������a��*D�Erc���|j}td�}||jdd��d�||jtd��d��d�||jtdd ��dd��d�td
�}||jtd��d
��d�||jtd��d��d�td�}||jd
��d�y�NrBr�r�r�z
tim likes hamr�r�r�r�zthe mapping is $mapping�noner��bozo)�mappingzthe mapping is bozo�one�twozthe mapping is twozthe self is $selfrzthe self is bozor�r�s r�test_keyword_argumentsz#TestTemplate.test_keyword_arguments�s���
�
�
���'�(��
�1�<�<�E��<�.��@�
�1�<�<����e�<�4�o�F�
�1�<�<���j�9�!���/�� �
�.�/��
�1�<�<���(�&�<�9� � "�
�1�<�<��U�+�U�<�;�� !�
�(�)��
�1�<�<�V�<�$�&8�9rc�|�|j}|j}td�}||jdd��d�||jt d��d��d�||jt dd ��dd��d�td
�}||jt d��d
��d�||jt d��d��d�t d��}|t
|j|i�|t
|j|i�td�}||jd
��d�yrE)rr(rr�r�r)r�)rr�r�r�r�s r�test_keyword_arguments_safez(TestTemplate.test_keyword_arguments_safe�s+��
�
�
���"�"���'�(��
�1����U��3�_�E�
�1���T�e�_�5��9�?�K�
�1���T�f�:�>�!���/�� �
�.�/��
�1���T�f�-�v��>� � "�
�1���T�%�0�%��@�� !������y�!�,�,��2�.��y�!�+�+�Q��3��(�)��
�1���&��)�+=�>rc�0�|j}|j}Gd�dt�}|d�}||jdd��d�|t|j�||jdd��d�||j�d�|d�}|t|jtdd���||j�d�Gd �d
t�}|d�}|j|jtdd
���d�y)Nc��eZdZdZy)�?TestTemplate.test_delimiter_override.<locals>.AmpersandTemplate�&N�rKrLrM� delimiterrHrr�AmpersandTemplaterP�����IrrTzthis &gift is for &{who} &&�bud�you)�giftr�zthis bud is for you &zthis &gift is for &{who} &c��eZdZdZy)�7TestTemplate.test_delimiter_override.<locals>.PieDelims�@NrRrHrr� PieDelimsrZ�rUrr\z-@who likes to eat a bag of @{what} worth $100r�r�r�r�)rr(rr�r2r�r:r�)rr�r�rTr�r\s r�test_delimiter_overridez$TestTemplate.test_delimiter_override�s���
�
�
���"�"�� �� ��;�<��
�1�<�<�U��<�.�0G�H��x����&�
�1���%�U��3�5L�M�
�1���� <�=��:�;���z�1�<�<��5�e�)D�E�
�1���� <�=� �� ��E�F��������d�u�5�&A�B�C� Erc�2�|j}td�}|j|j��td�}|j |j��Gd�dt�}|d�}|jt|j�y)N�.$who likes to eat a bag of ${what} worth $$100�-$who likes to eat a bag of ${what} worth $100c��eZdZdZy)�.TestTemplate.test_is_valid.<locals>.BadPattern�
(?P<badname>.*) |
(?P<escaped>@{2}) |
@(?P<named>[_a-z][._a-z0-9]*) |
@{(?P<braced>[_a-z][._a-z0-9]*)} |
(?P<invalid>@) |
Nr"rHrrr'rb�r(rr'r$)rr�
assertTrue�is_valid�assertFalser(r:)rr�r�r's r�
test_is_validzTestTemplate.test_is_valid�sv��
�
�
���E�F������
�
��%��D�E���������&� �� �
�E�F�����*�a�j�j�1rc��|j}|j}td�}|j�}||ddg�td�}|j�}||ddg�td�}|j�}||ddg�Gd�dt�}|d�}|jt|j�y) Nr_r�r�z^$who likes to eat a bag of ${what} worth $$100; ${who} likes to eat a bag of $what worth $$100r`c��eZdZdZy)�5TestTemplate.test_get_identifiers.<locals>.BadPatternrcNr"rHrrr'rjr(rr'r$)rr(r�get_identifiersr:)rr�r�r��idsr's r�test_get_identifiersz!TestTemplate.test_get_identifiers�s���
�
�
���"�"���E�F�����!��
�3���� �
�u�v�����!��
�3���� �
�D�E�����!��
�3���� � �� �
�E�F�����*�a�&7�&7�8rN)rKrLrMr�r�r�r�r�r�r�r�r�r�rrrrr)r8r<r@rCrKrMr]rgrmrHrrr�r��s���:�7�F�
F�
E�4�A�L�
'�
:� K�R� 5�7�=�84�"4�";�(F�
:�"?�*E�(2�*9rr��__main__)
�unittestr
r�TestCaserr�r�r�rK�mainrHrr�<module>rrsf���
��v7��"�"�v7�v � ���@9�8�$�$�@9�F
�z���H�M�M�O�r
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists