File: //lib/python3/dist-packages/genshi/template/tests/__pycache__/eval.cpython-312.pyc
�
EMab� � � � d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlmZ d dl m
Z
d dlmZm
Z
mZmZmZ d dlmZmZmZ G d� dej* � Z G d � d
ej* � Zd� Zedk( r ej4 d
�� yy)� N)�mkstemp)�Markup)�Context)�
Expression�Suite� Undefined�UndefinedError� UNDEFINED)�BytesIO�
IS_PYTHON2�
wrapped_bytesc �� � e Zd Zd� 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� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Z d � Z!d!� Z"d"� Z#d#� Z$d$� Z%d%� Z&d&� Z'd'� Z(d(� Z)d)� Z*d*� Z+d+� Z,d,� Z-d-� Z.d.� Z/d/� Z0d0� Z1d1� Z2d2� Z3d3� Z4e5jl d4k\ rd5� Z7d6� Z8d7� Z9d8� Z:d9� Z;d:� Z<d;� Z=d<� Z>d=� Z?d>� Z@d?� ZAd@� ZBdA� ZCdB� ZDdC� ZEdD� ZFdE� ZGdF� ZHdG� ZIdH� ZJdI� ZKdJ� ZLdK� ZMdL� ZNyM)N�ExpressionTestCasec � � t d� }| j |t d� � | j |t d� � y �Nzx,yzy, x)r �assertEqual�assertNotEqual��self�exprs �</usr/lib/python3/dist-packages/genshi/template/tests/eval.py�test_eqzExpressionTestCase.test_eq s6 � ��%� ������z�%�0�1����D�*�V�"4�5� c �� � t d� }| j t |� t t d� � � | j t |� t t d� � � y r )r r �hashr r s r � test_hashzExpressionTestCase.test_hash# sH � ��%� ������d��T�*�U�*;�%<�=����D��J��Z��-?�(@�Ar c � � t d� }t � }t j ||d� |j d� t j
|� }|j
i � du sJ �|j |j k( sJ �y )N�1 < 2� r T)r r �pickle�dump�seek�load�evaluate�code)r r �buf� unpickleds r �test_picklezExpressionTestCase.test_pickle( sk � ��'�"���i�����D�#�q�!�������K�K��$� ��!�!�"�%��-�-�-��~�~����*�*�*r c �h � | j dt d� j ddi� � | j t t d� j i � � | j dt d� j ddi� � | j d t d� j dd i� � y )N�bar�foo�id)r r r$ r, �r s r �test_name_lookupz#ExpressionTestCase.test_name_lookup1 s� � �����
�5� 1� :� :�E�5�>� J�K�����Z��-�6�6�r�:�;�����
�4� 0� 9� 9�4��-� H�I�����z�$�/�8�8�$���F�Gr c �d � t d� }| j |j i � t � y )Nr )r r r$ r r s r �
test_builtinsz ExpressionTestCase.test_builtins7 s% � ��(�#��������r�*�F�3r c �, � | j dt d� j i � � | j dt d� j i � � | j dj d� t t d� � j i � � | j dt d� j i � � | j dt d� j i � � | j dt d� j i � � y ) Nr+ z"foo"z """foo"""�utf-8zb'foo'z '''foo'''zu'foo'zr'foo')r r r$ �encoder
r- s r �test_str_literalz#ExpressionTestCase.test_str_literal; s� � �����
�7� 3� <� <�R� @�A�����
�;� 7� @� @�� D�E�������w�/�#�M�(�$;�<�E�E�b�I� K�����
�;� 7� @� @�� D�E�����
�8� 4� =� =�b� A�B�����
�8� 4� =� =�b� A�Br c � � t d� }| j d|j i � � t d� }| j d|j i � � t t d� � }t r"| j d|j i � � y | j dj d� |j i � � y )Nu u'þ'� þzb'\xc3\xbe'r2 )r r r$ r
r r3 r s r �test_str_literal_non_asciiz-ExpressionTestCase.test_str_literal_non_asciiD s� � ��*�%�������
�
�b� 1�2��)�$�������
�
�b� 1�2�
�-��7�8������U�D�M�M�"�$5�6����U�\�\�'�2�D�M�M�"�4E�Fr c � � | j dt d� j i � � t r*| j dt d� j i � � | j dt d� j i � � t r*| j dt d� j i � � | j dt d � j i � � | j dt d
� j i � � y )N�* �42�42Lg�z�G��?z.42� �07�� �0xF2�0XF2)r r r$ r r- s r �test_num_literalz#ExpressionTestCase.test_num_literalS s� � �����Z��-�6�6�r�:�;�����R��E�!2�!;�!;�B�!?�@�����j��/�8�8��<�=�����Q�
�4� 0� 9� 9�"� =�>�����z�&�1�:�:�2�>�?�����z�&�1�:�:�2�>�?r c � � | j i t d� j i � � | j ddit d� j ddi� � y )Nz{}�keyTz{'key': value}�value�r r r$ r- s r �test_dict_literalz$ExpressionTestCase.test_dict_literal] sO � �����Z��-�6�6�r�:�;����%���#�$4�5�>�>����O� Qr c �
� | j g t d� j i � � | j g d�t d� j i � � | j dgt d� j ddi� � y )Nz[]�� r � z [1, 2, 3]Tz[value]rD rE r- s r �test_list_literalz$ExpressionTestCase.test_list_literalb sl � �����Z��-�6�6�r�:�;�����J�{�$;�$D�$D�R�$H�I����$��#�I�.�7�7��$��H� Jr c � � | j dt d� j i � � | j dt d� j i � � | j dt d� j ddi� � y ) N� z()rH z (1, 2, 3))Tz(value,)rD TrE r- s r �test_tuple_literalz%ExpressionTestCase.test_tuple_literalh sj � �����Z��-�6�6�r�:�;�����J�{�$;�$D�$D�R�$H�I�����#�J�/�8�8�'�4��I� Kr c � � | j dt d� j i � � | j dt d� j ddi� � y )NrI z+1z+x�xrE r- s r �test_unaryop_posz#ExpressionTestCase.test_unaryop_posn sF � �����J�t�,�5�5�b�9�:�����J�t�,�5�5�s�A�h�?�@r c � � | j dt d� j i � � | j dt d� j ddi� � y )N���z-1z-xrP rI rE r- s r �test_unaryop_negz#ExpressionTestCase.test_unaryop_negr �F � �����Z��-�6�6�r�:�;�����Z��-�6�6��Q�x�@�Ar c � � | j dt d� j i � � | j dt d� j ddi� � y )NFznot Trueznot xrP TrE r- s r �test_unaryop_notz#ExpressionTestCase.test_unaryop_notv sF � �����
�:� 6� ?� ?�� C�D�����
�7� 3� <� <�c�4�[� I�Jr c � � | j dt d� j i � � | j dt d� j ddi� � y )N���z~1z~xrP rI rE r- s r �test_unaryop_invz#ExpressionTestCase.test_unaryop_invz rU r c � � | j dt d� j i � � | j dt d� j ddd�� � y )NrJ z2 + 1zx + yr rI �rP �yrE r- s r �test_binop_addz!ExpressionTestCase.test_binop_add~ �G � �����J�w�/�8�8��<�=�����J�w�/�8�8�q�q�9I�J�Kr c � � | j dt d� j i � � | j dt d� j ddd�� � y )NrI �2 - 1�x - yr\ rE r- s r �test_binop_subz!ExpressionTestCase.test_binop_sub� r_ r c � � | j dt d� j i � � | j dt d� j ddd�� � y )NrI ra rb r r\ rE r- s r rc z!ExpressionTestCase.test_binop_sub� r_ r c � � | j dt d� j i � � | j dt d� j ddd�� � y )N� z2 * 2zx * yr r\ rE r- s r �test_binop_mulz!ExpressionTestCase.test_binop_mul� r_ r c � � | j dt d� j i � � | j dt d� j ddd�� � y )Nrf z2 ** 2zx ** yr r\ rE r- s r �test_binop_powz!ExpressionTestCase.test_binop_pow� �G � �����J�x�0�9�9�"�=�>�����J�x�0�9�9���:J�K�Lr c � � | j dt d� j i � � | j dt d� j ddd�� � y )Nr z4 / 2zx / yrf r\ rE r- s r �test_binop_divz!ExpressionTestCase.test_binop_div� r_ r c � � | j dt d� j i � � | j dt d� j ddd�� � y )NrI z3 // 2zx // yrJ r r\ rE r- s r �test_binop_floordivz&ExpressionTestCase.test_binop_floordiv� rj r c � � | j dt d� j i � � | j dt d� j ddd�� � y )NrI z3 % 2zx % yrJ r r\ rE r- s r �test_binop_modz!ExpressionTestCase.test_binop_mod� r_ r c � � | j dt d� j i � � | j dt d� j ddd�� � y )Nr z1 & 0zx & yrI r\ rE r- s r �test_binop_andz!ExpressionTestCase.test_binop_and� r_ r c � � | j dt d� j i � � | j dt d� j ddd�� � y )NrI z1 | 0zx | yr r\ rE r- s r �
test_binop_orz ExpressionTestCase.test_binop_or� r_ r c � � | j dt d� j i � � | j dt d� j ddd�� � y )NrI z1 ^ 0zx ^ yr r\ rE r- s r �test_binop_xorz!ExpressionTestCase.test_binop_xor� r_ r c � � | j dt d� j i � � | j dt d� j ddd�� � y )NTz1 in (1, 2, 3)zx in yrI rH r\ rE r- s r �test_binop_containsz&ExpressionTestCase.test_binop_contains� sR � �����z�*:�;�D�D�R�H�I�����z�(�3�<�<�1�CL�>N� O� Pr c � � | j dt d� j i � � | j dt d� j ddd�� � y )NTz4 not in (1, 2, 3)z
x not in yrf rH r\ rE r- s r �test_binop_not_containsz*ExpressionTestCase.test_binop_not_contains� sS � �����z�*>�?�H�H��L�M�����z�,�7�@�@�q�GP�BR� S� Tr c �` � | j dt d� j i � � | j dt d� j ddd�� � | j dt d� j i � � | j dt d� j ddd�� � y ) NTz1 is 1zx is yrI r\ Fz1 is 2r rE r- s r �
test_binop_isz ExpressionTestCase.test_binop_is� s� � �����z�(�3�<�<�R�@�A�����z�(�3�<�<�1�1�=M�N�O�����
�8� 4� =� =�b� A�B�����
�8� 4� =� =�A�A�>N� O�Pr c �` � | j dt d� j i � � | j dt d� j ddd�� � | j dt d� j i � � | j dt d� j ddd�� � y ) NTz
1 is not 2z
x is not yrI r r\ Fz
1 is not 1rE r- s r �test_binop_is_notz$ExpressionTestCase.test_binop_is_not� s� � �����z�,�7�@�@��D�E�����z�,�7�@�@�q�GH�BJ� K� L�����
�<� 8� A� A�"� E�F�����
�<� 8� A� A��HI�CK� !L� Mr c � � | j dt d� j i � � | j dt d� j ddd�� � y )NFzTrue and Falsezx and yTr\ rE r- s r �test_boolop_andz"ExpressionTestCase.test_boolop_and� sS � �����
�+;� <� E� E�b� I�J�����
�9� 5� >� >�T�EJ�@L� !M� Nr c � � | j dt d� j i � � | j dt d� j ddd�� � y )NTz
True or Falsezx or yFr\ rE r- s r �test_boolop_orz!ExpressionTestCase.test_boolop_or� sQ � �����z�/�:�C�C�B�G�H�����z�(�3�<�<�4�CH�>J� K� Lr c � � | j dt d� j i � � | j dt d� j ddd�� � y )NTz1 == 1zx == yrI r\ rE r- s r �test_compare_eqz"ExpressionTestCase.test_compare_eq� �G � �����z�(�3�<�<�R�@�A�����z�(�3�<�<�1�1�=M�N�Or c � � | j dt d� j i � � | j dt d� j ddd�� � t j dk rX| j dt d� j i � � | j dt d� j ddd�� � y y ) NFz1 != 1zx != yrI r\ �3z1 <> 1zx <> y)r r r$ �sys�versionr- s r �test_compare_nez"ExpressionTestCase.test_compare_ne� s� � �����
�8� 4� =� =�b� A�B�����
�8� 4� =� =�A�A�>N� O�P��;�;������U�J�x�$8�$A�$A�"�$E�F����U�J�x�$8�$A�$A��PQ�BR�$S�T� r c � � | j dt d� j i � � | j dt d� j ddd�� � y )NTr zx < yrI r r\ rE r- s r �test_compare_ltz"ExpressionTestCase.test_compare_lt� �G � �����z�'�2�;�;�B�?�@�����z�'�2�;�;�!�!�<L�M�Nr c � � | j dt d� j i � � | j dt d� j ddd�� � y )NTz1 <= 1zx <= yrI r\ rE r- s r �test_compare_lez"ExpressionTestCase.test_compare_le� r� r c � � | j dt d� j i � � | j dt d� j ddd�� � y )NTz2 > 1zx > yr rI r\ rE r- s r �test_compare_gtz"ExpressionTestCase.test_compare_gt� r� r c � � | j dt d� j i � � | j dt d� j ddd�� � y )NTz1 >= 1zx >= yrI r\ rE r- s r �test_compare_gez"ExpressionTestCase.test_compare_ge� r� r c � � | j dt d� j i � � | j dt d� j ddd�� � y )NTz1 != 3 == 3zx != y == yrI rJ r\ rE r- s r �test_compare_multiz%ExpressionTestCase.test_compare_multi� sR � �����z�-�8�A�A�"�E�F�����z�-�8�A�A��HI�CK� L� Mr c �, � | j dt d� j dd� i� � ddi}| j dt d� j |� � ddt d� ii}| j dt d� j |� � y ) Nr9 zfoo()r+ c � � y)Nr9 rM rM r r �<lambda>z7ExpressionTestCase.test_call_function.<locals>.<lambda>� s � r r* �BARzfoo.upper()zlen(foo.bar))r r r$ �range�r �datas r �test_call_functionz%ExpressionTestCase.test_call_function� s� � �����Z��0�9�9�5�*�:M�N�O��u�~������
�=� 9� B� B�4� H�I���u�R�y�)�*������Z��7�@�@��F�Gr c �` � | j dt d� j d� dd�� � y )Nr9 z
foo(x=bar)c � � | S �NrM �rP s r r� z7ExpressionTestCase.test_call_keywords.<locals>.<lambda>� s � �QR� r �r+ r* rE r- s r �test_call_keywordsz%ExpressionTestCase.test_call_keywords� s2 � �����Z��5�>�>�{�GI�@K� L� Mr c �b � | j dt d� j d� dgd�� � y )Nr9 z foo(*bar)c � � | S r� rM r� s r r� z8ExpressionTestCase.test_call_star_args.<locals>.<lambda>� s � �PQ� r r� rE r- s r �test_call_star_argsz&ExpressionTestCase.test_call_star_args� s3 � �����Z��4�=�=�k�GI�d�?L� M� Nr c �l � d� }t d� }| j d|j |ddid�� � y )Nc � � | S r� rM r� s r r+ z4ExpressionTestCase.test_call_dstar_args.<locals>.foo� s � ��Hr z
foo(**bar)r9 rP r� �r r r$ )r r+ r s r �test_call_dstar_argsz'ExpressionTestCase.test_call_dstar_args� s3 � � ��,�'������T�]�]�3��R�y�+I�J�Kr c � � dt d� i}t d� }| j ddgt |j |� � � y )N�items� zfilter(lambda x: x > 2, items)rJ rf )r� r r �listr$ �r r� r s r �test_lambdazExpressionTestCase.test_lambda s= � ���q��"���:�;�����!�Q���d�m�m�D�&9�!:�;r c � � t sy dddgi}t d� }| j dgt |j |� � � y )Nr� �rI r )r rI z#filter(lambda (x, y): x > y, items))r r r r� r$ r� s r �test_lambda_tuple_argz(ExpressionTestCase.test_lambda_tuple_arg sB � ����&�&�)�*���?�@�����&��4��
�
�d�(;�#<�=r c
�N � t d� }| j ddg|j dt d� i� � t d� }| j g d�|j dt d� i� � t d� }| j g d �|j t d� d
d�� � t d� }| j g d
�|j dt d
� t d� gi� � t d� }| j g d�|j ddgddgd�� � y )Nz[n for n in numbers if n < 2]r rI �numbersr� z+[(i, n + 1) for i, n in enumerate(numbers)]�)r rI r� )r rJ )rJ rf )rf r� z[offset + n for n in numbers]�r rJ rf r� � r �r� �offsetz&[n for group in groups for n in group]�r rI r rI r �groupsrJ z[(a, b) for a in x for b in y]�)�x0�y0)r� �y1)�x1r� )r� r� r� r� r� r� r\ �r r r$ r� r s r �test_list_comprehensionz*ExpressionTestCase.test_list_comprehension s � ��9�:�����!�Q����� �5��8�/D�!E�F��G�H�����A���� �5��8�'<�=� ?� �9�:���������5��8�q�'I�J� L� �B�C����������5��8�U�1�X�2F�'G�H� J� �:�;�����Q����d�D�\��t��'M�N� Pr c �v � ddd�ddd�g}t d� }| j dg|j d|i� � y )N�arI ��namerD �br z&[i.name for i in items if i.value > 1]r� r� �r r� r s r �$test_list_comprehension_with_getattrz7ExpressionTestCase.test_list_comprehension_with_getattr" sA � ���*�S�1�,E�F���B�C�����#���
�
�w��.>� ?�@r c �v � ddd�ddd�g}t d� }| j dg|j d|i� � y )Nr� rI r� r� r z,[i['name'] for i in items if i['value'] > 1]r� r� r� s r �$test_list_comprehension_with_getitemz7ExpressionTestCase.test_list_comprehension_with_getitem' sA � ���*�S�1�,E�F���H�I�����#���
�
�w��.>� ?�@r c
�N � t d� }| j ddg|j dt d� i� � t d� }| j g d�|j dt d� i� � t d� }| j g d �|j t d� d
d�� � t d� }| j g d
�|j dt d
� t d� gi� � t d� }| j g d�|j ddgddgd�� � y )Nz!list(n for n in numbers if n < 2)r rI r� r� z/list((i, n + 1) for i, n in enumerate(numbers))r� z!list(offset + n for n in numbers)r� r r� z*list(n for group in groups for n in group)r� r� rJ z"list((a, b) for a in x for b in y)r� r� r� r� r� r\ r� r s r �test_generator_expressionz,ExpressionTestCase.test_generator_expression, s � ��=�>�����!�Q����� �5��8�/D�!E�F��K�L�����A���� �5��8�'<�=� ?� �=�>���������5��8�q�'I�J� L� �F�G����������5��8�U�1�X�2F�'G�H� J� �>�?�����Q����d�D�\��t��'M�N� Pr c �v � ddd�ddd�g}t d� }| j dg|j d|i� � y )Nr� rI r� r� r z*list(i.name for i in items if i.value > 1)r� r� r� s r �&test_generator_expression_with_getattrz9ExpressionTestCase.test_generator_expression_with_getattr@ sA � ���*�S�1�,E�F���F�G�����#���
�
�w��.>� ?�@r c �v � ddd�ddd�g}t d� }| j dg|j d|i� � y )Nr� rI r� r� r z0list(i['name'] for i in items if i['value'] > 1)r� r� r� s r �&test_generator_expression_with_getitemz9ExpressionTestCase.test_generator_expression_with_getitemE sA � ���*�S�1�,E�F���L�M�����#���
�
�w��.>� ?�@r )r r� c � � t d� }| j d|j ddi� � | j d|j ddi� � y )Nz'T' if foo else 'F'�Tr+ T�FFr� r s r �test_conditional_expressionz.ExpressionTestCase.test_conditional_expressionK sG � ��3�4�D����S�$�-�-���
�">�?����S�$�-�-����"?�@r c � � t d� }| j ddg|j dt t d� � i� � y )Nznumbers[0:2]r rI r� r� �r r r$ r� r� r s r �
test_slicezExpressionTestCase.test_sliceP s6 � ��.�)�����!�Q����� �4��a��>�/J�!K�Lr c � � t d� }|j t t d� � ddd�� }| j ddg|� y )Nznumbers[start:end]r� r r �r� �start�endrI �r r$ r� r� r �r r �ress r �test_slice_with_varsz'ExpressionTestCase.test_slice_with_varsT s>