
    bi                         d Z ddlZddlmc mZ ddlZddlm	Z	 ej                  j                  d e e	e      j                         j                  j                               ddlmZ d Zd Zd Zd Zd	 Zd
 Zy)u;   Tests for css_parser — shared CSS custom property parser.    N)Path)parse_all_custom_propertiesc                  >   d} t        |       }|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}|d	   }d
}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}t        |      }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  t              rt        j                  t              nddt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }	t	        t        j
                  |	            d x}x}}y )Nz::root { --color-brand: #533AFD; --font-size-lg: 1.25rem; }z--color-brandz#533AFD==z%(py1)s == %(py4)spy1py4assert %(py6)spy6z--font-size-lgz1.25rem   z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)slenresultpy0r
   py3r   assert %(py8)spy8)
r   
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanationr   @py_builtinslocals_should_repr_global_name)
cssr   @py_assert0@py_assert3@py_assert2@py_format5@py_format7@py_assert5@py_assert4@py_format9s
             @/home/jay/workspace/tools/insane-design/tests/test_css_parser.pytest_basic_parsingr)      sB   
FC(-F/"/i/"i////"i///"///i///////"#0y0#y0000#y000#000y0000000v;!;!;!33vv;!    c                  d   d} t        |       }d}||v}|st        j                  d|fd||f      t        j                  |      dt	        j
                         v st        j                  |      rt        j                  |      nddz  }dd|iz  }t        t        j                  |            d x}}|j                  }d	} ||      }d
}	||	k(  }
|
st        j                  d|
fd||	f      dt	        j
                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      t        j                  |      t        j                  |	      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}
}	y )Nz4/* skip this --fake: red; */ :root { --real: blue; }z--fake)not in)z%(py1)s not in %(py3)sr   r
   r   assert %(py5)spy5z--realbluer   )zI%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.get
}(%(py4)s)
} == %(py9)s)r   py2r   r   py9zassert %(py11)spy11)
r   r   r   r   r   r   r   r   r   get)r   r   r    r"   @py_format4@py_format6@py_assert1r!   r%   @py_assert8@py_assert7@py_format10@py_format12s                r(   test_comment_filteringr<      s   
@C(-F!86!!!!86!!!8!!!!!!6!!!6!!!!!!!::)h):h)6)6))))6))))))6)))6))):)))h))))))6))))))))r*   c                     d} t        |       }|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}y )	Nz0:root { --dup: first; } .dark { --dup: second; }z--dupsecondr   r   r	   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   s          r(   test_last_wins_deduprA      s_    
<C(-F'?&h&?h&&&&?h&&&?&&&h&&&&&&&r*   c                     d} t        |       }|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}y )	Nz%:root { --alias: var(--base-color); }z--aliaszvar(--base-color)r   r   r	   r   r   r?   r@   s          r(   test_var_ref_preservedrC       sg    
1C(-F)3 33 33333 3333333 33333333r*   c                  :   t        d      } t        |       }d}||k(  }|st        j                  d|fd||f      dt	        j
                         v st        j                  t              rt        j                  t              nddt	        j
                         v st        j                  |       rt        j                  |       ndt        j                  |      t        j                  |      dz  }dd	|iz  }t        t        j                  |            d x}x}}y )
N r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )r   r"   r%   r&   r$   r'   s         r(   test_empty_cssrF   &   s    (,Fv;!;!;!33vv;!r*   c                     d} t        |       }d}||v }|st        j                  d|fd||f      t        j                  |      dt	        j
                         v st        j                  |      rt        j                  |      nddz  }dd|iz  }t        t        j                  |            d x}}d	}||v }|st        j                  d|fd||f      t        j                  |      dt	        j
                         v st        j                  |      rt        j                  |      nddz  }dd|iz  }t        t        j                  |            d x}}|d	   }d
}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}y )NzW:root {
        --shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        --color: #FF0000;
    }z--shadow)in)z%(py1)s in %(py3)sr   r-   r.   r/   z--colorz#FF0000r   r   r	   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r    r"   r5   r6   r!   r#   r$   s	            r(   test_multiline_valuesrI   +   s   	C )-F:::999))	)	))))	))))))	)))))))r*   )__doc__builtinsr   _pytest.assertion.rewrite	assertionrewriter   syspathlibr   pathinsertstr__file__resolveparent
css_parserr   r)   r<   rA   rC   rF   rI    r*   r(   <module>rY      sc    A   
  3tH~--/66==> ? 2*'4
*r*   