File: //usr/local/CyberCP/lib64/python3.10/site-packages/bs4/tests/__pycache__/test_css.cpython-310.pyc
o
�hC � @ sv d dl Z d dlZd dlmZ d dlmZmZmZ ddlm Z m
Z
e
r(d dlmZ e j
je
dd�G d d
� d
e ��ZdS )� N)� MagicMock)�CSS�
BeautifulSoup� ResultSet� )�SoupTest�SOUP_SIEVE_PRESENT)�SelectorSyntaxErrorzSoup Sieve not installed)�reasonc @ s e Zd ZdZdZdd� Zdd� ZeZdd� Zd d
� Z dd� Z
d
d� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� Zd'd(� Zd)d*� Zd+d,� Zd-d.� Zd/d0� Zd1d2� Zd3d4� Zd5d6� Zd7d8� Z d9d:� Z!d;d<� Z"d=d>� Z#d?d@� Z$dAdB� Z%dCdD� Z&dEdF� Z'dGdH� Z(dIdJ� Z)dKdL� Z*dMdN� Z+dOdP� Z,dQdR� Z-dSdT� Z.dUdV� Z/dWdX� Z0dYdZ� Z1d[d\� Z2d]d^� Z3d_d`� Z4dadb� Z5dcdd� Z6dedf� Z7dgdh� Z8didj� Z9dkdl� Z:dmdn� Z;dodp� Z<dqdr� Z=dsdt� Z>dudv� Z?dwdx� Z@dydz� ZAd{d|� ZBd}d~� ZCdd�� ZDd�S )��TestCSSSelectorsz�Test basic CSS selector functionality.
This functionality is implemented in soupsieve, which has a much
more comprehensive test suite, so this is basically an extra check
that soupsieve works as expected.
a�
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>The title</title>
<link rel="stylesheet" href="blah.css" type="text/css" id="l1">
</head>
<body>
<custom-dashed-tag class="dashed" id="dash1">Hello there.</custom-dashed-tag>
<div id="main" class="fancy">
<div id="inner">
<h1 id="header1">An H1</h1>
<p>Some text</p>
<p class="onep" id="p1">Some more text</p>
<h2 id="header2">An H2</h2>
<p class="class1 class2 class3" id="pmulti">Another</p>
<a href="http://bob.example.org/" rel="friend met" id="bob">Bob</a>
<h2 id="header3">Another H2</h2>
<a id="me" href="http://simonwillison.net/" rel="me">me</a>
<span class="s1">
<a href="#" id="s1a1">span1a1</a>
<a href="#" id="s1a2">span1a2 <span id="s1a2s1">test</span></a>
<span class="span2">
<a href="#" id="s2a1">span2a1</a>
</span>
<span class="span3"></span>
<custom-dashed-tag class="dashed" id="dash2"/>
<div data-tag="dashedvalue" id="data1"/>
</span>
</div>
<x id="xid">
<z id="zida"/>
<z id="zidab"/>
<z id="zidac"/>
</x>
<y id="yid">
<z id="zidb"/>
</y>
<p lang="en" id="lang-en">English</p>
<p lang="en-gb" id="lang-en-gb">English UK</p>
<p lang="en-us" id="lang-en-us">English US</p>
<p lang="fr" id="lang-fr">French</p>
</div>
<div id="footer">
</div>
c C s t | jd�| _d S )N�html.parser)r �HTML�soup��self� r �E/usr/local/CyberCP/lib/python3.10/site-packages/bs4/tests/test_css.py�setup_methodN � zTestCSSSelectors.setup_methodc K sj | j j|fi |��}t|t�sJ �dd� |D �}|�� |�� ||ks3J d|d�|�d�|�f ��d S )Nc S s g | ]}|d �qS ��idr )�.0�elr r r �
<listcomp>T s z3TestCSSSelectors.assert_selects.<locals>.<listcomp>z$Selector %s, expected [%s], got [%s]z, )r �select�
isinstancer �sort�join)r �selector�expected_ids�kwargs�results�el_idsr r r �assert_selectsQ s �zTestCSSSelectors.assert_selectsc G s |D ]
\}}| � ||� qd S )N�r# )r �testsr r r r r �assert_select_multiple] s �z'TestCSSSelectors.assert_select_multiplec C sb | j j�d�}| j �|�}t|�dksJ �|D ] }|jdks J �q| j �|�}d|d ks/J �d S �N�div� �mainr )r �css�compiler �len�name�
select_one)r �sel�elsr( r r r r �test_precompileda s z!TestCSSSelectors.test_precompiledc C sF | j �d�}t|�dksJ �|d jdksJ �|d jdgks!J �d S )N�titler r z The title)r r r- r. �contents�r r1 r r r �test_one_tag_onel s z!TestCSSSelectors.test_one_tag_onec C sT | j �d�}t|�dksJ �|D ] }|jdksJ �q| j �d�}d|d ks(J �d S r'