ó
„¾^Yc           @   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   s‡  e  Z d  „  Z e e d! k  d ƒ e e d d !d" k d ƒ d „  ƒ ƒ Z e e d# k  d ƒ e e d d !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(    (    s9   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_dict.pyt   test_duplicate_keys   s    i   s<   bytes and strings with same 'value' are not equal in python3i    i   s4   python3.2 does not allow u literal string definitionc         C   s   |  j  d ƒ d  S(   Ns   {b'a': 1, u'a': 2}(   R   (   R   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_dict.pyt   test_multiple_duplicate_keys4   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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_dict.pyt   test_duplicate_keys_in_function=   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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_dict.pyt   test_duplicate_keys_in_lambdaH   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns   {(0,1): 1, (0,1): 2}(   R   R   R   (   R   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_dict.pyt   test_duplicate_keys_tuplesO   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns   {(0,1): 1, (0,1.0): 2}(   R   R   R   (   R   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_dict.pyt(   test_duplicate_keys_tuples_int_and_floatV   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns   {1: 1, 1: 2}(   R   R   R   (   R   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_dict.pyt   test_duplicate_keys_ints]   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns   {True: 1, True: 2}(   R   R   R   (   R   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_dict.pyt   test_duplicate_keys_boolsd   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns   {False: 1, False: 2}(   R   R   R   (   R   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_dict.pyt   test_duplicate_keys_bools_falsek   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns   {None: 1, None: 2}(   R   R   R   (   R   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_dict.pyt   test_duplicate_keys_nones   s    c         C   s   |  j  d t j t j ƒ d  S(   Ns8   
            a = 1
            {a: 1, a: 2}
            (   R   R   t   MultiValueRepeatedKeyVariable(   R   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_dict.pyt   test_duplicate_variable_keysz   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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/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   (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_dict.pyt0   test_no_duplicate_key_errors_instance_attributesÒ   s    (   i   (   i   i   (   i   (   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$   (    (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_dict.pyR      sF   												
											N(
   t   __doc__t   sysR    t   pyflakesR   R   t   pyflakes.test.harnessR   R   R   (    (    (    s9   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_dict.pyt   <module>   s   