
    h                     B    S r SSKJr  SSKJr  SSKJr   " S S\5      rg)z?
Tests for generic file descriptor based reactor support code.
    )AF_IPX)isIPAddress)TestCasec                   |    \ rS rSrSrSS jrSS jrSS jrSS jrSS jr	SS	 jr
SS
 jrSS jrSS jrSS jrSrg)AddressTests   z*
Tests for address-related functionality.
Nc                 l    U R                  [        S5      5        U R                  [        S5      5        g)z`
L{isIPAddress} should return C{True} for any decimal dotted
representation of an IPv4 address.
z0.1.2.3252.253.254.255N)
assertTruer   selfs    a/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/twisted/test/test_abstract.pytest_decimalDottedAddressTests.test_decimalDotted   s'    
 	I./$567    c                     U R                  [        S5      5        U R                  [        S5      5        U R                  [        S5      5        U R                  [        S5      5        g)zp
L{isIPAddress} should return C{False} for a dotted decimal
representation with fewer or more than four octets.
0z0.1z0.1.2z	0.1.2.3.4NassertFalser   r   s    r   test_shortDecimalDotted$AddressTests.test_shortDecimalDotted   sP    
 	S)*U+,W-.[12r   c                 l    U R                  [        S5      5        U R                  [        S5      5        g)zd
L{isIPAddress} should return C{False} for any non-decimal dotted
representation including letters.
za.2.3.4z1.b.3.4Nr   r   s    r   test_invalidLetters AddressTests.test_invalidLetters&   s*    
 	Y/0Y/0r   c                     U R                  [        S5      5        U R                  [        S5      5        U R                  [        S5      5        U R                  [        S5      5        g)zT
L{isIPAddress} should return C{False} for a string containing
strange punctuation.
,z1,2z1,2,3z1.,.3,4Nr   r   s    r   test_invalidPunctuation$AddressTests.test_invalidPunctuation.   sP    
 	S)*U+,W-.Y/0r   c                 8    U R                  [        S5      5        g)z=
L{isIPAddress} should return C{False} for the empty string.
 Nr   r   s    r   test_emptyStringAddressTests.test_emptyString8   s     	R)r   c                     U R                  [        S5      5        U R                  [        S5      5        U R                  [        S5      5        U R                  [        S5      5        g)zD
L{isIPAddress} should return C{False} for negative decimal values.
z-1z1.-2z1.2.-3z1.2.-3.4Nr   r   s    r   test_invalidNegative!AddressTests.test_invalidNegative>   sP     	T*+V,-X./Z01r   c                    U R                  [        S5      5        U R                  [        S5      5        U R                  [        S5      5        U R                  [        S5      5        U R                  [        S5      5        g)zi
L{isIPAddress} should return C{False} for a string containing
positive decimal values greater than 255.
	256.0.0.0z	0.256.0.0z	0.0.256.0z	0.0.0.256z256.256.256.256Nr   r   s    r   test_invalidPositive!AddressTests.test_invalidPositiveG   sd    
 	[12[12[12[12%678r   c                     U R                  [        S5      5        U R                  [        S5      5        U R                  [        S5      5        U R                  [        S5      5        g)z?
L{isIPAddress} evaluates ASCII-encoded bytes as well as text.
s	   256.0.0.0r'   s   252.253.254.255r
   N)r   r   r   r   s    r   test_unicodeAndBytes!AddressTests.test_unicodeAndBytesR   sN    
 	\23[12$678$567r   c                 D    U R                  [        [        S[        5        g)zd
All address families other than C{AF_INET} and C{AF_INET6} result in a
L{ValueError} being raised.
s   anythingN)assertRaises
ValueErrorr   r   r   s    r   test_nonIPAddressFamily$AddressTests.test_nonIPAddressFamily\   s    
 	*k;Gr   c                 l    U R                  [        S5      5        U R                  [        S5      5        g)z\
All IP addresses must be encodable as ASCII; non-ASCII should result in
a L{False} result.
s
   .notasciiu   䌡.notasciiNr   r   s    r   test_nonASCIIAddressTests.test_nonASCIIc   s,     	%567%678r    )returnN)__name__
__module____qualname____firstlineno____doc__r   r   r   r   r!   r$   r(   r+   r0   r3   __static_attributes__r5   r   r   r   r      s:    8311*2	98H9r   r   N)r;   socketr   twisted.internet.abstractr   twisted.trial.unittestr   r   r5   r   r   <module>r@      s#   
  1 +[98 [9r   