ó
4¶†\c           @   sV   d  Z  d d l m Z d d l m Z d d l m Z m Z d e f d „  ƒ  YZ	 d S(   s2   
Tests for dict duplicate keys Pyflakes behavior.
iÿÿÿÿ(   t   version_info(   t   messages(   t   TestCaset   skipIft   Testc           B   sO  e  Z d  „  Z e e d k  d ƒ d „  ƒ Z e e d k  d ƒ d „  ƒ Z e e d  k d ƒ d „  ƒ Z e e d! k d ƒ 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 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS("   c         C   s   |  j  d t j t j ƒ d  S(   Ns   {'yes': 1, 'yes': 2}(   t   flakest   mt   MultiValueRepeatedKeyLiteral(   t   self(    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt   test_duplicate_keys   s    i   s<   bytes and strings with same 'value' are not equal in python3c         C   s   |  j  d ƒ d  S(   Ns   {b'a': 1, u'a': 2}(   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt(   test_duplicate_keys_bytes_vs_unicode_py3   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns   {1: b'a', 1: u'a'}(   R   R   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt*   test_duplicate_values_bytes_vs_unicode_py3   s    s8   bytes and strings with same 'value' are equal in python2c         C   s   |  j  d t j t j ƒ d  S(   Ns   {b'a': 1, u'a': 2}(   R   R   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt(   test_duplicate_keys_bytes_vs_unicode_py2"   s    c         C   s   |  j  d ƒ d  S(   Ns   {1: b'a', 1: u'a'}(   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt*   test_duplicate_values_bytes_vs_unicode_py2+   s    c         C   s)   |  j  d t j t j t j t j ƒ d  S(   Ns&   {'yes': 1, 'yes': 2, 'no': 2, 'no': 3}(   R   R   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt   test_multiple_duplicate_keys0   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns`   
            def f(thing):
                pass
            f({'yes': 1, 'yes': 2})
            (   R   R   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt   test_duplicate_keys_in_function9   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns   lambda x: {(0,1): 1, (0,1): 2}(   R   R   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt   test_duplicate_keys_in_lambdaD   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns   {(0,1): 1, (0,1): 2}(   R   R   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt   test_duplicate_keys_tuplesK   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns   {(0,1): 1, (0,1.0): 2}(   R   R   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt(   test_duplicate_keys_tuples_int_and_floatR   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns   {1: 1, 1: 2}(   R   R   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt   test_duplicate_keys_intsY   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns   {True: 1, True: 2}(   R   R   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt   test_duplicate_keys_bools`   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns   {False: 1, False: 2}(   R   R   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt   test_duplicate_keys_bools_falseg   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns   {None: 1, None: 2}(   R   R   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt   test_duplicate_keys_noneo   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns8   
            a = 1
            {a: 1, a: 2}
            (   R   R   t   MultiValueRepeatedKeyVariable(   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt   test_duplicate_variable_keysv   s    c         C   s   |  j  d t j t j ƒ d  S(   NsJ   
            a = 1
            b = 2
            {1: a, 1: b}
            (   R   R   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt   test_duplicate_variable_values€   s    c         C   s   |  j  d t j t j ƒ d  S(   NsJ   
            a = 1
            b = 1
            {1: a, 1: b}
            (   R   R   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt)   test_duplicate_variable_values_same_value‹   s    c         C   s   |  j  d t j t j ƒ d S(   sß   
        These do look like different values, but when it comes to their use as
        keys, they compare as equal and so are actually duplicates.
        The literal dict {1: 1, 1.0: 1} actually becomes {1.0: 1}.
        s(   
            {1: 1, 1.0: 2}
            N(   R   R   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt    test_duplicate_key_float_and_int˜   s    c         C   s   |  j  d ƒ d  S(   Ns&   
        {'yes': 1, 'yes': 1}
        (   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt&   test_no_duplicate_key_error_same_value¦   s    c         C   s   |  j  d ƒ d  S(   Ns%   
        {'yes': 1, 'no': 2}
        (   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt   test_no_duplicate_key_errors«   s    c         C   s   |  j  d ƒ d  S(   Ns   {(0,1): 1, (0,2): 1}(   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt0   test_no_duplicate_keys_tuples_same_first_element°   s    c         C   s   |  j  d ƒ d  S(   Ns^   
        def test(thing):
            pass
        test({True: 1, None: 2, False: 1})
        (   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt&   test_no_duplicate_key_errors_func_call³   s    c         C   s   |  j  d ƒ d  S(   Ns   {True: 1, None: 2, False: 1}(   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt)   test_no_duplicate_key_errors_bool_or_noneº   s    c         C   s   |  j  d ƒ d  S(   Ns   
        {1: 1, 2: 1}
        (   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt!   test_no_duplicate_key_errors_ints½   s    c         C   s   |  j  d ƒ d  S(   NsN   
        test = 'yes'
        rest = 'yes'
        {test: 1, rest: 2}
        (   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt!   test_no_duplicate_key_errors_varsÂ   s    c         C   s   |  j  d ƒ d  S(   Ns&   
        {(0,1): 1, (0,2): 1}
        (   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt#   test_no_duplicate_key_errors_tuplesÉ   s    c         C   s   |  j  d ƒ d  S(   Nsl   
        class Test():
            pass
        f = Test()
        f.a = 1
        {f.a: 1, f.a: 1}
        (   R   (   R   (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt0   test_no_duplicate_key_errors_instance_attributesÎ   s    (   i   (   i   (   i   (   i   (   t   __name__t
   __module__R	   R   R    R
   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   (    (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyR      s>   												
											N(
   t   __doc__t   sysR    t   pyflakesR   R   t   pyflakes.test.harnessR   R   R   (    (    (    s6   lib/python2.7/site-packages/pyflakes/test/test_dict.pyt   <module>   s   