
R_c           @   s  d  d l  m Z m  Z  d  d l m Z d  d l m Z d  d l m Z d  d l m	 Z	 m
 Z
 m Z d  d l m Z m Z d  d l m Z d  d l m Z m Z m Z m Z m Z m Z d  d	 l m Z m Z m Z m Z m Z m Z m  Z  m! Z! d  d
 l" m# Z# d  d l$ m% Z% e d  Z& d   Z' e( e   j) j*  Z+ e,   Z- d e, f d     YZ. d e. e% f d     YZ/ d e. f d     YZ0 d S(   i(   t   datet   datetime(   t   partial(   t
   namedtuple(   t   ShouldAssert(   t   SampleClassAt   SampleClassBt   Slotted(   t   Mockt   call(   t   compile(   t
   Comparisont   Replacert   ShouldRaiset   comparet	   generatort	   singleton(   t   class_type_namet   exception_modulet   PY3t   xranget   BytesLiteralt   UnicodeLiteralt   PY2t
   PY_37_PLUS(   t   compare_sequence(   t   TestCases   0x[0-9A-Fa-f]+c         C   s   t  j d |   S(   Ns   ...(   t   hexaddrt   sub(   t   raw(    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   hexsub   s    t   CompareHelperc           B   s    e  Z e e d d e d   Z RS(   c         K   s   g  } x0 | | f D]" } | t  k	 r | j |  q q Wy | | |   Wn t k
 r }	 t |	 t  sq   n  t |	 j d  }
 | d  k	 r | |
 d | d t |
 | k s t  q | j	 |
  s t d |
 | j
 f   q n Xt d   d  S(   Ni    t   expectedt   show_whitespaces   %r did not match %rs   No exception raised!(   t   markert   appendt	   Exceptiont
   isinstancet   AssertionErrorR   t   argst   Nonet   Truet   matcht   pattern(   t   selft   xt   yt   messaget   regexR   t   kwR'   t   valuet   et   actual(    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   check_raises(   s"    N(   t   __name__t
   __module__R"   R(   R   R5   (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR   &   s   t   TestComparec           B   s[  e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z e rr d
   Z n  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$ d"   Z% d#   Z& d$   Z' d%   Z( d&   Z) d'   Z* d(   Z+ d)   Z, d*   Z- d+   Z. d,   Z/ d-   Z0 d.   Z1 d/   Z2 d0   Z3 d1   Z4 d2   Z5 d3   Z6 d4   Z7 d5   Z8 d6   Z9 d7   Z: d8   Z; d9   Z< d:   Z= d;   Z> d<   Z? d=   Z@ d>   ZA d?   ZB d@   ZC dA   ZD dB   ZE dC   ZF dD   ZG dE   ZH dF   ZI dG   ZJ dH   ZK dI   ZL dJ   ZM dK   ZN dL   ZO dM   ZP dN   ZQ dO   ZR dP   ZS dQ   ZT dR   ZU dS   ZV dT   ZW dU   ZX dV   ZY dW   ZZ dX   Z[ dY   Z\ dZ   Z] d[   Z^ d\   Z_ d]   Z` d^   Za d_   Zb d`   Zc da   Zd db   Ze dc   Zf dd   Zg de   Zh df   Zi dg   Zj dh   Zk di   Zl dj   Zm dk   Zn dl   Zo dm   Zp dn   Zq do   Zr dp   Zs dq   Zt dr   Zu ds   Zv dt   Zw du   Zx dv   Zy dw   Zz dx   Z{ dy   Z| dz   Z} d{   Z~ d|   Z d}   Z d~   Z d e f d     YZ 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   t    } t | |  d  S(   N(   t   objectR   (   R,   t   o(    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_object_sameC   s    	c         C   s   |  j  t   t   d  d  S(   Ns0   <object object at ...> != <object object at ...>(   R5   R9   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_object_diffG   s    c         C   s   |  j  d d d  d  S(   NR-   i   s   'x' != 1(   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_different_typesM   s    c         C   s   t  d d  d  S(   Ni   (   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_number_sameP   s    c         C   s   |  j  d d d  d  S(   Ni   i   s   1 != 2(   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_number_differentS   s    c         C   s#   |  j  d d d d d d d d  S(   Ni   i   s   1 (expected) != 2 (actual)t   x_labelR    t   y_labelR4   (   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_different_with_labelsV   s    c         C   s   t  d d  d  S(   NR-   (   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_string_sameZ   s    c         C   s8   t  r d } n d } |  j t d  t d  |  d  S(   Ns   u'a' != 'b's   'a' != b'b't   at   b(   R   R5   R   R   (   R,   R    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_unicode_string_different]   s    	c         C   s8   t  r d } n d } |  j t d  t d  |  d  S(   Ns   
'12345678901'
!=
'12345678902's!   
b'12345678901'
!=
b'12345678902't   12345678901t   12345678902(   R   R5   R   (   R,   R    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_bytes_differentg   s    			c         C   s   t  d d d d d t  d  S(   NR4   t    R    t   strict(   R   R)   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_bytes_same_strict|   s    c         C   s    |  j  d d d d d d  d  S(   NR4   s   {"byte_pound":"b'\\xa3'"}R    s   {"byte_pound":"b\'\xa3'"}R/   sY   
b'{"byte_pound":"b\\\'\\xa3\'"}' (expected)
!=
b'{"byte_pound":"b\'\\\\xa3\'"}' (actual)(   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_moar_bytes_different   s    	c         C   s   |  j  d d d d d  d  S(   Ns   
R-   i	   R.   s   '\nxxxxxxxxx' != '\nyyyyyyyyy't	   xxxxxxxxxt	   yyyyyyyyy(   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_string_diff_short   s    c         C   s   |  j  d d d  d  S(   NR-   i   R.   s   
'xxxxxxxxxxx'
!=
'yyyyyyyyyyy't   xxxxxxxxxxxt   yyyyyyyyyyy(   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_string_diff_long   s    c         C   s   |  j  d d	 d d d  d  S(   NR-   i   s   
R.   t   zs:   
--- first
+++ second
@@ -1,2 +1,2 @@
 xxxxx
-yyyyy
+zzzzzt   xxxxxs   xxxxx
t   yyyyyRU   s   xxxxx
t   zzzzz(   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_string_diff_long_newlines   s    c         C   s+   |  j  d d
 d d d d d d d	 d  S(   Ns   
R-   i	   R.   s2   '\nxxxxxxxxx' (expected) != '\nyyyyyyyyy' (actual)R@   R    RA   R4   RN   RO   (   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_string_diff_short_labels   s
    c         C   s#   |  j  d	 d
 d d d d d d  S(   NR-   i   R.   s3   
'xxxxxxxxxxx' (expected)
!=
'yyyyyyyyyyy' (actual)R@   R    RA   R4   RQ   RR   (   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_string_diff_long_labels   s
    c         C   s+   |  j  d d d d d d d d	 d
 d  S(   NR-   i   s   
R.   RT   s=   
--- expected
+++ actual
@@ -1,2 +1,2 @@
 xxxxx
-yyyyy
+zzzzzR@   R    RA   R4   RU   s   xxxxx
RV   RU   s   xxxxx
RW   (   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt%   test_string_diff_long_newlines_labels   s
    c         C   s   t  d  } t | |  d  S(   Ns   some message(   t
   ValueErrorR   (   R,   R3   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_exception_same_object   s    c         C   s/   t  d  } t  d  } t t |  |  d  S(   Ns   some message(   R\   R   t   C(   R,   t   e1t   e2(    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_exception_same_c_wrapper   s    c         C   s)   t  d  } t  d  } t | |  d  S(   Ns   some message(   R\   R   (   R,   R_   R`   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_exception_different_object   s    c         C   s/   t  d  } t  d  } t t |  |  d  S(   Ns   some message(   R\   R   R^   (   R,   R_   R`   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt)   test_exception_different_object_c_wrapper   s    c         C   sK   t  d  } t  d  } t r4 |  j | | d  n |  j | | d  d  S(   Ns   some messages   some other messages>   ValueError('some message') != ValueError('some other message')s@   ValueError('some message',) != ValueError('some other message',)(   R\   R   R5   (   R,   R_   R`   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_exception_diff   s    
c         C   sM   t  d  } t  d  } |  j t |  | d j t t r? d n d   d  S(   Ns   some messages   some other messages   
<C(failed):{}.ValueError>
attributes differ:
'args': ('some message',) (Comparison) != ('some other message',) (actual)
</C> != ValueError('some other message'{})RJ   t   ,(   R\   R5   R^   t   formatR   R   (   R,   R_   R`   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_exception_diff_c_wrapper   s    c      
   C   sG   |  j  d d d d d d d d g d d d d d	 d
 d d g d  d  S(   Ns   quite a long string 1s   quite a long string 2s   quite a long string 3s   quite a long string 4s   quite a long string 5s   quite a long string 6s   quite a long string 7s   quite a long string 8s   quite a long string 9s   quite a long string 10s   quite a long string 11s   quite a long string 12s  sequence not as expected:

same:
['quite a long string 1',
 'quite a long string 2',
 'quite a long string 3',
 'quite a long string 4']

first:
['quite a long string 5',
 'quite a long string 6',
 'quite a long string 7',
 'quite a long string 8']

second:
['quite a long string 9',
 'quite a long string 10',
 'quite a long string 11',
 'quite a long string 12']

While comparing [4]: 
'quite a long string 5'
!=
'quite a long string 9'(   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_sequence_long   s    		c         C   s5   |  j  d d d g d d d g d d d d d	 d  S(
   Ni   i   i   i   sC   sequence not as expected:

same:
[1, 2]

expected:
[3]

actual:
[4]R@   R    RA   R4   (   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt'   test_sequence_different_labels_supplied  s
    c         C   s#   t  d d d g d d d g  d  S(   Ni   i   i   (   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_list_same  s    c         C   s)   |  j  d d d g d d d g d  d  S(   Ni   i   i   i   s@   sequence not as expected:

same:
[1, 2]

first:
[3]

second:
[4](   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_list_different  s    c         C   s   |  j  d g d g d  d  S(   Ni   i   s<   sequence not as expected:

same:
[]

first:
[1]

second:
[2](   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_list_totally_different%  s    c         C   s&   |  j  d d g d d d g d  d  S(   Ni   i   i   s?   sequence not as expected:

same:
[1, 2]

first:
[]

second:
[3](   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_list_first_shorter1  s    c         C   s&   |  j  d d d g d d g d  d  S(   Ni   i   i   s?   sequence not as expected:

same:
[1, 2]

first:
[3]

second:
[](   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_list_second_shorter:  s    c         C   s#   t  t d d  t d d   d  S(   NR-   i   (   R   t   dict(   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_dict_sameC  s    c         C   s#   |  j  t   t d d  d  d  S(   NRT   i   s6   dict not as expected:

in second but not first:
'z': 3(   R5   Ro   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_dict_first_missing_keysF  s    c         C   s#   |  j  t d d  t   d  d  S(   NRT   i   s6   dict not as expected:

in first but not second:
'z': 3(   R5   Ro   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_dict_second_missing_keysO  s    c         C   s)   |  j  t d d  t d d  d  d  S(   NR-   i   i   s1   dict not as expected:

values differ:
'x': 1 != 2(   R5   Ro   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_dict_values_differentX  s    c         C   sA   |  j  t d d d d  t d d d d  d d d	 d
 d d  S(   NR-   i   R.   i   RT   i   s   dict not as expected:

in expected but not actual:
'y': 2

in actual but not expected:
'z': 3

values differ:
'x': 1 (expected) != 2 (actual)R@   R    RA   R4   (   R5   Ro   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_dict_labels_specifieda  s
    $
c         C   s   t  i d  d 6i d  d 6 d  S(   Ni   i   (   i   i   (   i   i   (   R   R(   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_dict_tuple_keys_same_valuer  s    c         C   s%   |  j  i d d 6i d d 6d  d  S(   Ni   i   i   i*   s5   dict not as expected:

values differ:
(1, 2): 3 != 42(   i   i   (   i   i   (   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt$   test_dict_tuple_keys_different_valueu  s    

c      	   C   sA   |  j  t d d d d d d  t d d d d d d	  d
  d  S(   NR-   i   R.   i   RD   i   RT   i   i   s   dict not as expected:

same:
['x']

in first but not second:
'y': 2

in second but not first:
'z': 3

values differ:
'a': 4 != 5(   R5   Ro   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_dict_full_diff  s    0c         C   se   |  j  t d d d d d d d d d d d	 d
  t d d d d d d d d
 d d d	 d  d  d  S(   Nt   xai   t   xbi   t   yat   ybt   aai   t   abi   t   zat   zbi   s   dict not as expected:

same:
['xa', 'xb']

in first but not second:
'ya': 1
'yb': 2

in second but not first:
'za': 3
'zb': 4

values differ:
'aa': 3 != 5
'ab': 4 != 5(   R5   Ro   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_dict_consistent_ordering  s    **c         C   sb   t  r d } n d } |  j i d d  6d d 6d d 6i d d  6d d 6d d 6d d	 | d
  d  S(   Ns
   [6, None]
s
   [None, 6]
i   i   i   i   i   s   dict not as expected:

s   same:
s   
values differ:
1: 3 != 4(   R   R5   R(   (   R,   t   same(    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt(   test_dict_consistent_ordering_types_same  s    	c         C   s%   |  j  i d d  6d d 6i  d  d  S(   Ni   i   i   s<   dict not as expected:

in first but not second:
3: 2
None: 1(   R5   R(   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt+   test_dict_consistent_ordering_types_x_not_y  s    c         C   s%   |  j  i  i d d  6d d 6d  d  S(   Ni   i   i   s<   dict not as expected:

in second but not first:
3: 2
None: 1(   R5   R(   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt+   test_dict_consistent_ordering_types_y_not_x  s    c         C   s3   |  j  i d d  6d d 6i d d  6d d 6d  d  S(   Ni   i   i   i   i   s<   dict not as expected:

values differ:
6: 2 != 4
None: 1 != 3(   R5   R(   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt)   test_dict_consistent_ordering_types_value  s    c         C   s#   t  t d g  t d g   d  S(   Ni   (   R   t   set(   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_set_same  s    c         C   s#   |  j  t   t d g  d  d  S(   Ni   s4   set not as expected:

in second but not first:
[3]

(   R5   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_set_first_missing_keys  s    c         C   s#   |  j  t d g  t   d  d  S(   Ni   s4   set not as expected:

in first but not second:
[3]

(   R5   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_set_second_missing_keys  s    c         C   s5   |  j  t d d d g  t d d d g  d  d  S(   Ni   i   i   i   i   sX   set not as expected:

in first but not second:
[2, 4]

in second but not first:
[3, 5]

(   R5   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_set_full_diff  s    $c         C   s#   |  j  d  d h d d h d  d  S(   Ni   RJ   i   s\   set not as expected:

in first but not second:
[1, None]

in second but not first:
['', 2]

(   R5   R(   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_set_type_ordering  s    c         C   sA   |  j  t d d d g  t d d d g  d d d d	 d
 d  S(   Ni   i   i   i   i   s^   set not as expected:

in expected but not actual:
[2, 4]

in actual but not expected:
[3, 5]

R@   R    RA   R4   (   R5   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_set_labels  s
    $c         C   s   t  d d  d  S(   Ni   i   i   (   i   i   i   (   i   i   i   (   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_tuple_same  s    c         C   s   |  j  d d d  d  S(   Ni   i   i   i   sB   sequence not as expected:

same:
(1, 2)

first:
(3,)

second:
(4,)(   i   i   i   (   i   i   i   (   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_tuple_different  s    c         C   s   |  j  d d d  d  S(   Ni   i   s>   sequence not as expected:

same:
()

first:
(1,)

second:
(2,)(   i   (   i   (   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_tuple_totally_different&  s    c         C   s   |  j  d d d  d  S(   Ni   i   i   s@   sequence not as expected:

same:
(1, 2)

first:
()

second:
(3,)(   i   i   (   i   i   i   (   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_tuple_first_shorter/  s    c         C   s   |  j  d d d  d  S(   Ni   i   i   s@   sequence not as expected:

same:
(1, 2)

first:
(3,)

second:
()(   i   i   i   (   i   i   (   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_tuple_second_shorter8  s    c         C   s)   t  t d d d  t d d d   d  S(   Ni   i   i   (   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_generator_sameA  s    c         C   s/   |  j  t d d d  t d d d  d  d  S(   Ni   i   i   i   sB   sequence not as expected:

same:
(1, 2)

first:
(3,)

second:
(4,)(   R5   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_generator_differentD  s    c         C   s#   |  j  t d  t d  d  d  S(   Ni   i   s>   sequence not as expected:

same:
()

first:
(1,)

second:
(2,)(   R5   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt    test_generator_totally_differentM  s    c         C   s,   |  j  t d d  t d d d  d  d  S(   Ni   i   i   s@   sequence not as expected:

same:
(1, 2)

first:
()

second:
(3,)(   R5   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_generator_first_shorterV  s    c         C   s,   |  j  t d d d  t d d  d  d  S(   Ni   i   i   s@   sequence not as expected:

same:
(1, 2)

first:
(3,)

second:
()(   R5   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_generator_second_shorted_  s    c         C   sA   |  j  t d d t d  d  t d d t d  d  d  d  S(   Ni   i   i   i   i   sg   sequence not as expected:

same:
(1, 2, <generator object generator at ...>)

first:
(4,)

second:
(5,)(   R5   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_nested_generator_differenth  s    c         C   s5   t  t d d d d  t d d t d  d   d  S(   Ni   i   i   i   (   i   (   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt    test_nested_generator_tuple_leftx  s    c         C   s5   t  t d d t d  d  t d d d d   d  S(   Ni   i   i   i   (   i   (   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt!   test_nested_generator_tuple_right~  s    c         C   s   t  d t d d d   d  S(   Ni   i   i   (   i   i   i   (   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_sequence_and_generator  s    c         C   sD   t  d  } |  j d t d d d  d | d t d d d	 d
 d  S(   Ns   \(1, 2, 3\) \(<(class|type) 'tuple'>\) \(expected\) != <generator object (generator )?at... \(<(class|type) 'generator'>\) \(actual\)i   i   i   R0   RK   R@   R    RA   R4   (   i   i   i   (   R
   R5   R   R)   (   R,   R    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt"   test_sequence_and_generator_strict  s    	c         C   s   t  t d d d  d  d  S(   Ni   i   i   (   i   i   i   (   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_generator_and_sequence  s    c         C   s#   t  t d d  t d d   d  S(   Ni   i   (   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt    test_iterable_with_iterable_same  s    c         C   s)   |  j  t d d  t d d  d  d  S(   Ni   i   i   s@   sequence not as expected:

same:
(1, 2)

first:
(3,)

second:
()(   R5   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt%   test_iterable_with_iterable_different  s    c         C   s&   t  t d d  t d d d   d  S(   Ni   i   i   i   (   R   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_iterable_and_generator  s    c         C   sA   t  d  } |  j t d d  t d d d  d | d t d  S(   Nss   x?range\(1, 4\) \(<(class|type) 'x?range'>\) != <generator object (generator )?at... \(<(class|type) 'generator'>\)i   i   i   i   R0   RK   (   R
   R5   R   R   R)   (   R,   R    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt"   test_iterable_and_generator_strict  s    	c         C   s&   t  t d d d  t d d   d  S(   Ni   i   i   i   (   R   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_generator_and_iterable  s    c         C   s   t  d d d d g  d  S(   Ni   i   i   (   i   i   i   (   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_tuple_and_list  s    c         C   s;   t  r d } n d } |  j d d d d g | d t d  S(   Ns7   (1, 2, 3) (<type 'tuple'>) != [1, 2, 3] (<type 'list'>)s9   (1, 2, 3) (<class 'tuple'>) != [1, 2, 3] (<class 'list'>)i   i   i   RK   (   i   i   i   (   R   R5   R)   (   R,   R    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_tuple_and_list_strict  s    	c         C   s9   d t  f d     Y} t | d  | d  d t d  S(   Nt	   TestFloatc           B   s   e  Z RS(    (   R6   R7   (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR     s   g      ?RK   (   t   floatR   R)   (   R,   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_float_subclass_strict  s    c         C   s$   d d d     Y} t  | |  d  S(   Nt   Xc           B   s   e  Z RS(    (   R6   R7   (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR     s   (    (   R   (   R,   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_old_style_classes_same  s    c         C   sR   t  r d } n d } d d d     Y} d d d     Y} |  j | | |  d  S(	   Ns   <class 'testfixtures.tests.test_compare.TestCompare.test_old_style_classes_different.<locals>.X'> != <class 'testfixtures.tests.test_compare.TestCompare.test_old_style_classes_different.<locals>.Y'>sd   <class testfixtures.tests.test_compare.X at ...> != <class testfixtures.tests.test_compare.Y at ...>R   c           B   s   e  Z RS(    (   R6   R7   (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR     s   t   Yc           B   s   e  Z RS(    (   R6   R7   (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR     s   (    (    (   R   R5   (   R,   R    R   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt    test_old_style_classes_different  s    	c         C   s   |  j  d d d d t d  S(   Ns    x 
s    x 
 	s   ' x \n\r' != ' x \n \t'R!   (   R5   R)   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_show_whitespace  s    c         C   s   |  j  d d d d t d  S(   Ns   	         
  's	        
  sP   
--- first
+++ second
@@ -1,2 +1,2 @@
-'\t         \n'
-"  '"
+'\r     \n'
+'  'R!   (   R5   R)   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_show_whitespace_long  s    c         C   s   t  d d d t d  S(   NR-   R!   (   R   R)   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_show_whitespace_equal  s    c         C   s   |  j  d d d d t d  S(	   Ni   RD   i   RE   sF   sequence not as expected:

same:
()

first:
(1, 'a')

second:
(2, 'b')R!   (   i   RD   (   i   RE   (   R5   t   False(   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt9   test_show_whitespace_not_used_because_of_other_difference  s
    
c         C   s   |  j  d d d  d  S(   Ns    x 
s    x  
s   ' x \n' != ' x  \n'(   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt    test_include_trailing_whitespace  s    c         C   s   t  d d d t d  S(   Ns    x 	
s    x	  
t   trailing_whitespace(   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_ignore_trailing_whitespace  s    c         C   s   |  j  d d d d t d  S(   Ni   RJ   s   1 != ''R   (   R5   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt*   test_ignore_trailing_whitespace_non_string   s    c         C   s   |  j  d d d d t d  S(   Ns	   a
 b
  c
s   a
b
c
s   'a\n b\n  c' != 'a\nb\nc'R   (   R5   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt>   test_ignore_trailing_whitespace_but_respect_leading_whitespace'  s
    c         C   s   |  j  d d d  d  S(   Ns   
 
s   
  s   '\n \n' != '\n  '(   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_include_blank_lines1  s    c         C   s   t  d d d t d  S(   Ns   
    a

	
b
  s       a
bt
   blanklines(   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_ignore_blank_lines7  s    c         C   s   |  j  d d d d t d  S(   Ni   RJ   s   1 != ''R   (   R5   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt"   test_ignore_blank_lines_non_string@  s    c            sT     f d   } t  d  3 t i d d 6i d d 6d d d i | t 6Wd  QXd  S(   Nc            sK     j  |  i d d 6   j  | i d d 6   j  | j d  d  d S(   Ni   i   t   foot   bars	   not equal(   t   assertEqualt
   get_option(   R-   R.   t   context(   R,   (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   compare_dictH  s    s	   not equali   i   R   R   t	   comparers(   R   R   Ro   (   R,   R   (    (   R,   sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_supply_comparerG  s
    c         C   se   t  d d  } t d  D t | d  | d  d i t d d  t 6t d d  | 6Wd  QXd  S(	   Nt   TestR-   s   compare class_i   i   R   t   return_values   compare tuple(   R   R   R   R   t   tuple(   R,   t   class_(    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_register_more_specificR  s    c         C   s   d t  f d     Y} d   } t   V } | j d i t t 6 |  j d | d  g d | d  g d d	 i | | 6Wd  QXd  S(
   Nt   MyObjectc           B   s   e  Z d    Z d   Z RS(   c         S   s   | |  _  d  S(   N(   t   name(   R,   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   __init__]  s    c         S   s   d S(   Ns   MyObject instance(    (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   __repr__`  s    (   R6   R7   R   R   (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR   \  s   	c         S   s   d |  j  | j  f S(   Ns   %s != %s(   R   (   R-   R.   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   compare_my_objectc  s    s!   testfixtures.comparison._registryi   R   R   s~   sequence not as expected:

same:
[1]

first:
[MyObject instance]

second:
[MyObject instance]

While comparing [1]: foo != barR   (   R9   R   t   replaceR   t   listR5   (   R,   R   R   t   r(    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt#   test_extra_comparers_leave_existing[  s    	c         C   sK   d t  f d     Y} | d g  } | d g  } |  j | | d  d  S(   Nt   MyListc           B   s   e  Z RS(    (   R6   R7   (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR   {  s    i   i   s<   sequence not as expected:

same:
[]

first:
[1]

second:
[2](   R   R5   (   R,   R   t   a_listt   b_list(    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_list_subclassz  s    c         C   s    t    } t | | d t d  S(   NRK   (   R9   R   R)   (   R,   t   m(    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_strict_okay  s    	c      
   C   sB   t    } d | _ |  j t   t   d d t d i | t 6d  S(   Ns	   not equalRK   R   (   R   R   R5   R9   R)   (   R,   t   compare_obj(    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_strict_comparer_supplied  s    		c         C   s?   d t  f d     Y} |  j | d	  | d
  d d t d  S(   NR   c           B   s   e  Z RS(    (   R6   R7   (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR     s   i   i   i   i   s@   sequence not as expected:

same:
[1, 2]

first:
[3]

second:
[4]RK   (   i   i   i   (   i   i   i   (   R   R5   R)   (   R,   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_strict_default_comparer  s
    
c         C   sH   t    } | j   |  j t j   g | j d j t t  d t d  S(   Ns5   [call.aCall()] (<{0} 'list'>) != [call.aCall()] ({1})RK   (	   R   t   aCallR5   R	   t   method_callsRf   R   t   call_list_reprR)   (   R,   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_list_subclass_strict  s    	
c         C   sN   t    } | j d  |  j t j d  g | j d j t t  d t d  S(   NR   i   R   s[   [call.call('YYYYYYYYYYYYYYYYYY... (<{0} 'list'>) != [call.call('XXXXXXXXXXXXXXXXXX... ({1})RK   t   XXXXXXXXXXXXXXXXXXXXt   YYYYYYYYYYYYYYYYYYYY(   R   R	   R5   R   Rf   R   R   R)   (   R,   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_list_subclass_long_strict  s    	c         C   s   |  j  d d d d d d  S(   Ni   i   s   wrong number of orders: 1 != 2t   prefixs   wrong number of orders(   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_prefix  s    c         C   s%   |  j  d
 d d d d d d d  S(   NR-   i   s   
R.   RT   sH   file content: 
--- first
+++ second
@@ -1,2 +1,2 @@
 xxxxx
-yyyyy
+zzzzzR   s   file contentRU   s   xxxxx
RV   RU   s   xxxxx
RW   (   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_prefix_multiline  s    c         C   s   |  j  d d d d d d  S(   Ni   i   s   1 != 2
additional contextt   suffixs   additional context(   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_suffix  s    c         C   s+   |  j  d d d d d d d d	 d
 d  S(   NR-   i   s   
R.   RT   s=   
--- expected
+++ actual
@@ -1,2 +1,2 @@
 xxxxx
-yyyyy
+zzzzzR@   R    RA   R4   RU   s   xxxxx
RV   RU   s   xxxxx
RW   (   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_labels_multiline  s
    c         C   s#   |  j  t d d d  d  d  d  S(   Ni   i   i   s+   <generator object generator at ...> != None(   R5   R   R(   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt!   test_generator_with_non_generator  s    c      	   C   sB   d   } t  t d   ! t t d d d  |    Wd  QXd  S(   Nc           s   s   d Vt  d   d  S(   Ni   R   (   t	   TypeError(    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   bad_gen  s    R   i   i   i   (   R   R   R   R   (   R,   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt#   test_generator_with_buggy_generator  s    	c         C   s)   |  j  t d d  t d d  d  d  S(	   NR-   i   i   i   i   s   dict not as expected:

values differ:
'x': (1, 2, 3) != (1, 2, 4)

While comparing ['x']: sequence not as expected:

same:
(1, 2)

first:
(3,)

second:
(4,)(   i   i   i   (   i   i   i   (   R5   Ro   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt'   test_nested_dict_tuple_values_different  s    c         C   s;   |  j  t d t d d   t d t d d   d  d  S(   NR-   R.   i   i   s   dict not as expected:

values differ:
'x': {'y': 1} != {'y': 2}

While comparing ['x']: dict not as expected:

values differ:
'y': 1 != 2(   R5   Ro   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_nested_dict_different  s    *c         C   s/   t  t d t    t d t    d t d  S(   NR-   t	   ignore_eq(   R   Ro   R)   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_nested_dict_empty_but_same  s    c         C   s;   t  t d t d d   t d t d d   d t d  S(   NR-   i   R   (   R   Ro   R)   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt    test_nested_dict_empty_with_keys  s    c         C   s5   |  j  d d d d g f d d d d g f d  d  S(   Ni   i   i   i   i   s   sequence not as expected:

same:
(1,)

first:
([2, 3, 5],)

second:
([2, 4, 5],)

While comparing [1]: sequence not as expected:

same:
[2]

first:
[3, 5]

second:
[4, 5](   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_tuple_list_different  s    $c         C   s   |  j  d d	 d d t d  S(
   Ni   i   s   foo
bar
baz
i   s   foo
bob
baz
s   sequence not as expected:

same:
(1, 2)

first:
('foo\nbar\nbaz\n', 4)

second:
('foo\nbob\nbaz\n', 4)

While comparing [2]: 
--- first
+++ second
@@ -1,4 +1,4 @@
 'foo\n'
-'bar\n'
+'bob\n'
 'baz\n'
 ''R!   (   i   i   s   foo
bar
baz
i   (   i   i   s   foo
bob
baz
i   (   R5   R)   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt!   test_tuple_long_strings_different-  s
    c      	   C   s5   |  j  t d d d d  t d d d d  d
  d  S(   NR-   i   i   i   R.   i   i   i   i   s  dict not as expected:

values differ:
'x': (1, 2, 3) != (1, 2, 4)
'y': (4, 5, 6) != (4, 5, 7)

While comparing ['x']: sequence not as expected:

same:
(1, 2)

first:
(3,)

second:
(4,)

While comparing ['y']: sequence not as expected:

same:
(4, 5)

first:
(6,)

second:
(7,)(   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   R5   Ro   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_dict_multiple_differencesI  s    c      
   C   s   t  d  } t  d  } t | |  } t |  } |  j t d d d d | f d g d d d	 g  t d d d d | f d g d d d	 g  d
 j d t t |   d t t |     d  S(   Nt   obj1t   obj2R-   i   RD   RE   i   R.   i   s  dict not as expected:

same:
['y']

values differ:
'x': [1, ('a', 'b', {gen1}), 3] != [1, ('a', 'b', {gen2}), 3]

While comparing ['x']: sequence not as expected:

same:
[1]

first:
[('a', 'b', {gen1}), 3]

second:
[('a', 'b', {gen2}), 3]

While comparing ['x'][1]: sequence not as expected:

same:
('a', 'b')

first:
({gen1},)

second:
({gen2},)

While comparing ['x'][1][2]: sequence not as expected:

same:
(<obj1>,)

first:
(<obj2>,)

second:
()t   gen1t   gen2(   R   R   R5   Ro   Rf   R   t   repr(   R,   R   R   R   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_deep_breadcrumbsj  s    **	(c      
   C   s   t  d  } t  d  } t | |  } t |  } |  j t d d d d | f d g d d d	 g  t d d d d | f d g d d d	 g  d
 j d t t |   d t t |    d d d d d  S(   NR   R   R-   i   RD   RE   i   R.   i   s  dict not as expected:

same:
['y']

values differ:
'x': [1, ('a', 'b', {gen1}), 3] (expected) != [1, ('a', 'b', {gen2}), 3] (actual)

While comparing ['x']: sequence not as expected:

same:
[1]

expected:
[('a', 'b', {gen1}), 3]

actual:
[('a', 'b', {gen2}), 3]

While comparing ['x'][1]: sequence not as expected:

same:
('a', 'b')

expected:
({gen1},)

actual:
({gen2},)

While comparing ['x'][1][2]: sequence not as expected:

same:
(<obj1>,)

expected:
(<obj2>,)

actual:
()R   R   R@   R    RA   R4   (   R   R   R5   Ro   Rf   R   R   (   R,   R   R   R   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_nested_labels  s    **	)c         C   s`   t  d d  } t |  } t t  } |  j | d d d  g d g d | | f d t d  S(	   Nt   MyTuples   x y zi   i   i   s   sequence not as expected:

same:
[]

first:
[MyTuple(x=1, y=2, z=3)]

second:
[(1, 2, 3)]

While comparing [0]: MyTuple(x=1, y=2, z=3) (%s) != (1, 2, 3) (%s)RK   (   i   i   i   (   R   R   R   R5   R)   (   R,   R   t	   type_reprt
   tuple_repr(    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt'   test_nested_strict_only_type_difference  s    c         C   sN   t  r d } n d } |  j d d d d g f d d d f d | d t d  S(	   Ns1   [1, 2] (<type 'list'>) != (1, 3) (<type 'tuple'>)s3   [1, 2] (<class 'list'>) != (1, 3) (<class 'tuple'>)i   i   i   sc   sequence not as expected:

same:
(1, 2)

first:
([1, 2],)

second:
((1, 3),)

While comparing [2]: RK   (   i   i   (   R   R5   R)   (   R,   R    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_strict_nested_different  s    	c         C   s,   t  d d  } t | d  | d   d  S(   Nt   FooR-   i   (   R   R   (   R,   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_namedtuple_equal  s    c         C   s8   t  d d  } |  j | d d  | d d  d  d  S(   NR   s   x yi   i   i   s=   Foo not as expected:

same:
['x']

values differ:
'y': 2 != 3(   R   R5   (   R,   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_namedtuple_same_type  s    c         C   sJ   t  d d  } t  d d  } |  j | d d  | d d d  d  d  S(	   NR   s   x yt   Bars   x y zi   i   i   s   Foo(x=1, y=2) (<class 'testfixtures.tests.test_compare.Foo'>) != Bar(x=1, y=2, z=3) (<class 'testfixtures.tests.test_compare.Bar'>)(   R   R5   (   R,   t   class_at   class_b(    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_namedtuple_different_type  s
    c         C   s+   |  j  i d d 6d d 6d d g d  d  S(   Nt   onei   t   twoi   s   {1: 'one', 2: 'two'} != [1, 2](   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_dict_with_list   s    c         C   s   |  j  d d d d d d  S(   NR-   R    R.   R/   s   'y' (expected) != 'x' (actual)(   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_explicit_expected&  s    c         C   s   |  j  d d d d d d  S(   NR-   R4   R.   R/   s   'x' (expected) != 'y' (actual)(   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_explicit_actual*  s    c         C   s    |  j  d d d d d d  d  S(   NR/   s   'x' (expected) != 'y' (actual)R    R-   R4   R.   (   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_explicit_both.  s    c         C   s,   |  j  d d d d d d d d d d  d  S(	   NR/   s   'x' (x_label) != 'y' (y_label)R    R-   R4   R.   R@   RA   (   R5   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_explicit_and_labels2  s    c      	   C   s0   t  t d    t d d d d Wd  QXd  S(   Ns9   Exactly two objects needed, you supplied: ['z', 'x', 'y']R-   R.   R    RT   (   R   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_invalid_two_args_expected7  s    c      	   C   s0   t  t d    t d d d d Wd  QXd  S(   Ns9   Exactly two objects needed, you supplied: ['x', 'y', 'z']R-   R.   R4   RT   (   R   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_invalid_two_args_actual=  s    c         C   s$   t  t d    t   Wd  QXd  S(   Ns)   Exactly two objects needed, you supplied:(   R   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_invalid_zero_argsC  s    c         C   s'   t  t d    t d  Wd  QXd  S(   Ns/   Exactly two objects needed, you supplied: ['x']R-   (   R   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_invalid_one_argsI  s    c         C   s-   t  t d    t d d d  Wd  QXd  S(   Ns9   Exactly two objects needed, you supplied: ['x', 'y', 'z']R-   R.   RT   (   R   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_invalid_three_argsO  s    c         C   s-   t  t d    t d d d Wd  QXd  S(   NsA   Exactly two objects needed, you supplied: ['x'] {'expceted': 'z'}R-   t   expcetedRT   (   R   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_invalid_because_of_typoU  s    c         C   s#   |  j  t d d d t d  d  S(   NR-   R.   t   raisess
   'x' != 'y'(   R   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_dont_raise[  s    t   OrmObjc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   RD   (   R,   RD   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR   _  s    c         C   s   t  S(   N(   R)   (   R,   t   other(    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   __eq__a  s    c         C   s   d t  |  j  S(   Ns   OrmObj: (   t   strRD   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR   c  s    (   R6   R7   R   R  R   (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR  ^  s   		c      	      su     j    j d    j d  k    f d   }   j d d d   j d    j d  g d |   d	 t  d  S(
   Ni   i   c           3   s      j  d  V  j  d  Vd  S(   Ni   i   (   R  (    (   R,   (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt	   query_setj  s    R/   s   sequence not as expected:

same:
(OrmObj: 1,)

expected:
(OrmObj: 3,)

actual:
(OrmObj: 2,)

While comparing [1]: OrmObj not as expected:

attributes differ:
'a': 3 (expected) != 2 (actual)R    i   R4   R   (   t
   assertTrueR  R5   R)   (   R,   R  (    (   R,   sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_django_orm_is_horriblef  s    %		c         C   s   t  t d t } | |  j d  |  j d   | |  j d  |  j d   | |  j t d d d   |  j t d d d    d  S(   NR   i   s   some longish stringi  (   R   R   R)   R  R    (   R,   t	   t_compare(    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt"   test_django_orm_is_horrible_part_2  s    c         C   s/   t  d |  j d  d |  j d  d t  d  S(   NR    i   R4   R   (   R   R  R)   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt"   test_django_orm_is_horrible_part_3  s    c      	   C   s)   |  j  d d d d g d d d t  d  S(   NR/   s   [1] (expected) != 2 (actual)R    i   R4   i   R   (   R5   R)   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt"   test_django_orm_is_horrible_part_4  s
    		c         C   s6   t    } | j d d d d t | j | j  d  S(   Ni   i   R-   i   (   R   R   R   t
   mock_calls(   R,   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_mock_call_same  s    	c         C   s<   t    } | j d d d d t | j | j d t d  S(   Ni   i   R-   i   RK   (   R   R   R   R  R)   (   R,   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_mock_call_same_strict  s    	c         C   sg   t    } t    } | j d d d d d d | j d d d d d d |  j | j | j d  d  S(	   Ni   i   R-   i   R.   i   i   s   sequence not as expected:

same:
[]

first:
[call.foo(1, 2, x=3, y=4)]

second:
[call.bar(1, 3, x=7, y=4)]

While comparing [0]: 
'call.foo(1, 2, x=3, y=4)'
!=
'call.bar(1, 3, x=7, y=4)'(   R   R   R   R5   R  (   R,   t   m1t   m2(    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_calls_different  s    		c         C   s)   t  t t   g  t t   g   d  S(   N(   R   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt"   test_compare_arbitrary_nested_same  s    c         C   sS   t  d  } d | _ d | _ t  d  } d | _ d | _ |  j | | d  d  S(   Ni   i*   t   1i   t   2s  SampleClassB not as expected:

attributes same:
['same']

attributes in first but not second:
'foo': '1'

attributes in second but not first:
'bar': '2'

attributes differ:
'args': (1,) != (2,)

While comparing .args: sequence not as expected:

same:
()

first:
(1,)

second:
(2,)(   R   R   R   R   R5   (   R,   R   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_compare_different_vars  s    				c         C   sB   d d d     Y} |  j  | | d   | | d   d  d  S(   Nt   OurClassc           B   s   e  Z d    Z d   Z RS(   c         W   s   | |  _  d  S(   N(   R'   (   R,   R'   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR     s    c         S   s   d S(   Ns   <OurClass obj>(    (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR     s    (   R6   R7   R   R   (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR)    s   	i   i   s  OurClass not as expected:

attributes differ:
'args': (<OurClass obj>,) != (<OurClass obj>,)

While comparing .args: sequence not as expected:

same:
()

first:
(<OurClass obj>,)

second:
(<OurClass obj>,)

While comparing .args[0]: OurClass not as expected:

attributes differ:
'args': (1,) != (2,)

While comparing .args[0].args: sequence not as expected:

same:
()

first:
(1,)

second:
(2,)(    (   R5   (   R,   R)  (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt"   test_compare_arbitrary_nested_diff  s
    c         C   s#   t  t d d  t d d   d  S(   Ni   i   (   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_compare_slotted_same  s    c         C   s)   |  j  t d d  t d d  d  d  S(   Ni   i   i   sP   Slotted not as expected:

attributes same:
['x']

attributes differ:
'y': 2 != 3(   R5   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_compare_slotted_diff  s    c         C   s   t  t   t    d  S(   N(   R   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_empty_sets#  s    c         C   s   t  t   t   d t d  S(   NRK   (   R   R   R)   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_empty_sets_strict&  s    c         C   s/   |  j  t d d d  t d d d  d  d  S(   Ni  i   i   sJ   datetime.datetime(2001, 1, 1, 0, 0) != datetime.datetime(2001, 1, 2, 0, 0)(   R5   R   (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_datetime_not_equal)  s    c         C   sU   d t  f d     Y} d | f d     Y} |  j | d d  | d d  d  d  S(	   Nt   Parentc           B   s   e  Z d Z RS(   RD   (   RD   (   R6   R7   t	   __slots__(    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR0  3  s   t   Childc           B   s   e  Z d Z d   Z RS(   RE   c         S   s   | | |  _  |  _ d  S(   N(   RD   RE   (   R,   RD   RE   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR   9  s    (   RE   (   R6   R7   R1  R   (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR2  6  s   i   R-   i   sN   Child not as expected:

attributes same:
['b']

attributes differ:
'a': 1 != 2(   R9   R5   (   R,   R0  R2  (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_inherited_slots1  s    c         C   sI   d t  f d     Y} d | f d     Y} t | d  | d   d  S(   NR0  c           B   s   e  Z d Z d   Z RS(   RD   c         S   s   | |  _  d  S(   N(   RD   (   R,   RD   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR   M  s    (   RD   (   R6   R7   R1  R   (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR0  J  s   R2  c           B   s   e  Z d  Z RS(   (    (   R6   R7   R1  (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR2  P  s   i   (   R9   R   (   R,   R0  R2  (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_empty_child_slotsH  s    c      
   C   s_   d   } d   } |  j  t |  t |  d j d t t |   d t t |     d  S(   Nc         S   s   d  S(   N(    (   R-   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR   W  RJ   c         S   s   d  S(   N(    (   R.   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR   X  RJ   s   partial not as expected:

attributes same:
['args', 'keywords']

attributes differ:
'func': {foo} != {bar}

While comparing .func: {foo} != {bar}R   R   (   R5   R   Rf   R   R   (   R,   R   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_partial_callable_differentU  s    						c         C   s2   d   } |  j  t | d  t | d  d  d  S(   Nc         S   s   d  S(   N(    (   R-   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR   k  RJ   i   i   s   partial not as expected:

attributes same:
['func', 'keywords']

attributes differ:
'args': (1,) != (2,)

While comparing .args: sequence not as expected:

same:
()

first:
(1,)

second:
(2,)(   R5   R   (   R,   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_partial_args_differenti  s
    	c         C   sD   d   } |  j  t | d d d d t | d d d d d	  d  S(
   Nc         S   s   d  S(   N(    (   R-   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR     RJ   R-   i   R.   i   i   RT   i   s  partial not as expected:

attributes same:
['args', 'func']

attributes differ:
'keywords': {'x': 1, 'y': 3} != {'x': 2, 'z': 4}

While comparing .keywords: dict not as expected:

in first but not second:
'y': 3

in second but not first:
'z': 4

values differ:
'x': 1 != 2(   R5   R   (   R,   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_partial_kw_different  s
    	c         C   s8   d   } t  t | d d d t | d d d  d  S(   Nc         S   s   d  S(   N(    (   R-   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR     RJ   i   R-   i   (   R   R   (   R,   R   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_partial_equal  s    	(   R6   R7   R;   R<   R=   R>   R?   RB   RC   RF   RI   RL   R   RM   RP   RS   RX   RY   RZ   R[   R]   Ra   Rb   Rc   Rd   Rg   Rh   Ri   Rj   Rk   Rl   Rm   Rn   Rp   Rq   Rr   Rs   Rt   Ru   Rv   Rw   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   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   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  R  R  R9   R  R  R  R  R  R   R!  R$  R%  R(  R*  R+  R,  R-  R.  R/  R3  R4  R5  R6  R7  R8  (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR8   A   s,  								
																!																		
								
	
																																													
													
																!	5	8					
														
							#	*										t
   TestIgnorec           B   sO   e  Z d  e f d     YZ d e f d     YZ d   Z d   Z d   Z RS(   R0  c           B   s   e  Z d    Z d   Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t   idR  (   R,   R:  R  (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR     s    	c         C   s   d j  t |   j |  j  S(   Ns   <{}:{}>(   Rf   t   typeR6   R:  (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR     s    (   R6   R7   R   R   (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR0    s   	R2  c           B   s   e  Z RS(    (   R6   R7   (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR2    s    c         C   s2   t  |  j d d  |  j d d  d d h d  S(   Ni   i   i   t   ignore_attributesR:  (   R   R0  (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_ignore_attributes  s    c         C   s8   |  j  |  j d d  |  j d d  d d d h d  S(   Ni   i   i   s   <Parent:1> != <Child:2>R<  R:  (   R5   R0  R2  (   R,   (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt&   test_ignore_attributes_different_types  s
    c         C   ss   i d h |  j  6} t |  j  d d  |  j  d d  d | |  j |  j d d  |  j d d  d d | d  S(   NR:  i   i   i   R<  sS   Child not as expected:

attributes same:
['other']

attributes differ:
'id': 1 != 2(   R0  R   R5   R2  (   R,   t   ignore(    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   test_ignore_attributes_per_type  s    +(   R6   R7   R9   R0  R2  R=  R>  R@  (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyR9    s
   		N(1   R   R    t	   functoolsR   t   collectionsR   t   testfixtures.shouldraiseR   t   testfixtures.tests.sample1R   R   R   t   testfixtures.mockR   R	   t   reR
   t   testfixturesR   R^   R   R   R   R   R   t   testfixtures.compatR   R   R   R   R   R   R   R   t   testfixtures.comparisonR   t   unittestR   R   R   R   R  t	   __class__R   R9   R"   R   R8   R9  (    (    (    sX   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_compare.pyt   <module>   s.   .:		      k