§
    Ètºf  ã                   ój   — d Z ddlZddlmZmZmZ ddlmZ ddlm	Z	 ddl
mZmZ  G d„ de	¦  «        ZdS )	z1Test handling of ``pyproject.toml`` configurationé    N)ÚcastÚOptionalÚUnion)ÚPath)ÚTestCase)Ú_load_pyproject_tomlÚ_IncrementalConfigc                   ó€   — e Zd ZdZddœdedeeedf         dee         fd„Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚVerifyPyprojectDotTomlTestsz/Test the `_load_pyproject_toml` helper functionN©ÚpathÚtomlr   Úreturnc                ó^  — |€|                       ¦   «         }nt          |¦  «        }t          |d¦  «        5 }|                     |¦  «         ddd¦  «         n# 1 swxY w Y   	 t	          |¦  «        S # t
          $ r.}t          |d¦  «        r|                     d|› �¦  «         ‚ d}~ww xY w)zÈ
        Read a TOML snipped from a temporary file with `_load_pyproject_toml`

        @param toml: TOML content of the temporary file

        @param path: Path to which the TOML is written
        NÚwÚadd_notezWhile loading:

)ÚmktempÚstrÚopenÚwriter   Ú	ExceptionÚhasattrr   )Úselfr   r   Úpath_ÚfÚes         ú_/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/incremental/tests/test_pyproject.pyÚ	_loadTomlz%VerifyPyprojectDotTomlTests._loadToml   sþ   € ð ˆ<Ø—K’K‘M”MˆEˆEå˜‘I”IˆEå�%˜ÑÔð 	 Ø�GŠG�D‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð	Ý'¨Ñ.Ô.Ð.øÝð 	ð 	ð 	Ý�q˜*Ñ%Ô%ð Ø—
’
Ø/¨Ð/Ð/ñô ð ð øøøøð	øøøs)   ·AÁAÁ AÁ%A4 Á4
B,Á>)B'Â'B,c                 óÒ   — t           j                             t          t          |                      ¦   «         ¦  «        d¦  «        }|                      t          t          |¦  «         dS )zf
        An absent ``pyproject.toml`` file produces no result unless
        there is opt-in.
        úpyproject.tomlN)	Úosr   Újoinr   r   r   ÚassertRaisesÚFileNotFoundErrorr   )r   r   s     r   Útest_fileNotFoundz-VerifyPyprojectDotTomlTests.test_fileNotFound-   sL   € õ
 Œw�|Š|�D¥ d§k¢k¡m¤mÑ4Ô4Ð6FÑGÔGˆØ×ÒÕ+Õ-AÀ4ÑHÔHÐHÐHÐHó    c                 óL   — d}|                       t          | j        |¦  «         dS )zˆ
        Syntactially invalid TOML produces an exception. The specific
        exception varies by the underlying TOML library.
        z[project]
name = "abcN)r#   r   r   ©r   r   s     r   Útest_brokenTomlz+VerifyPyprojectDotTomlTests.test_brokenToml5   s)   € ð
 (ˆØ×Ò�) T¤^°TÑ:Ô:Ð:Ð:Ð:r&   c                 óR   — dD ]#}|                       t          | j        |¦  «         Œ$dS )zP
        `ValueError` is raised when we can't extract the project name.
        )ú
z[tool.notincremental]
z
[project]
z[tool.incremental]
z[project]
[tool.incremental]
N©r#   Ú
ValueErrorr   r(   s     r   Útest_nameMissingz,VerifyPyprojectDotTomlTests.test_nameMissing=   s@   € ð
ð 	@ð 	@ˆDð ×Ò�j¨$¬.¸$Ñ?Ô?Ð?Ð?ð	@ð 	@r&   c                 ó    — dD ]J}|                       t          d¦  «        5  |                      |¦  «         ddd¦  «         n# 1 swxY w Y   ŒKdS )zM
        `TypeError` is raised when the project name isn't a string.
        )z[project]
name = false
z[tool.incremental]
name = -1
z([tool.incremental]
[project]
name = 1.0
z!The project name must be a stringN)ÚassertRaisesRegexÚ	TypeErrorr   r(   s     r   Útest_nameInvalidOptInz1VerifyPyprojectDotTomlTests.test_nameInvalidOptInJ   sž   € ð
ð 	%ð 	%ˆDð
 ×'Ò'­	Ð3VÑWÔWð %ð %Ø—’˜tÑ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %øð	%ð 	%s    AÁA	Á	A	c                 óR   — dD ]#}|                       t          | j        |¦  «         Œ$dS )zm
        `ValueError` is raised when the ``[tool]`` or ``[tool.incremental]``
        isn't a table.
        )ztool = false
z[tool]
incremental = false
z[tool]
incremental = 123
z[tool]
incremental = null
Nr,   r(   s     r   Útest_toolIncrementalInvalidz7VerifyPyprojectDotTomlTests.test_toolIncrementalInvalidV   s@   € ð

ð 	@ð 	@ˆDð ×Ò�j¨$¬.¸$Ñ?Ô?Ð?Ð?ð	@ð 	@r&   c                 óR   — dD ]#}|                       t          | j        |¦  «         Œ$dS )zx
        Raise `ValueError` when the ``[tool.incremental]`` section contains
        keys other than ``"name"``
        )z[tool.incremental]
foo = false
z-[tool.incremental]
name = "OK"
other = false
Nr,   r(   s     r   Ú!test_toolIncrementalUnexpecteKeysz=VerifyPyprojectDotTomlTests.test_toolIncrementalUnexpecteKeysc   s@   € ð

ð 	@ð 	@ˆDð ×Ò�j¨$¬.¸$Ñ?Ô?Ð?Ð?ð		@ð 	@r&   c                 ó(  — t          |                      ¦   «         ¦  «        }|dz  dz  }|                     d¬¦  «         dD ]O}|                      ||dz  ¬¦  «        }|                      |t          ddt          |¦  «        ¬	¦  «        ¦  «         ŒPd
S )zá
        The package has opted-in to Incremental version management when
        the ``[tool.incremental]`` section is a dict. The project name
        is taken from ``[tool.incremental] name`` or ``[project] name``.
        ÚsrcÚfooT©Úparents)z*[project]
name = "Foo"
[tool.incremental]
z [tool.incremental]
name = "Foo"
r    r   ÚFoo©Úopt_inÚpackager   N©r   r   Úmkdirr   ÚassertEqualr	   r   )r   ÚrootÚpkgr   Úconfigs        r   Útest_setuptoolsOptInz0VerifyPyprojectDotTomlTests.test_setuptoolsOptInn   s´   € õ �D—K’K‘M”MÑ"Ô"ˆØ�U‰l˜UÑ"ˆØ�	Š	˜$ˆ	ÑÔÐð
ð 	ð 	ˆDð —^’^ D¨tÐ6FÑ/F�^ÑGÔGˆFà×ÒØÝ"ØØ!Ý˜S™œðñ ô ñô ð ð ð	ð 	r&   c                 ó  — t          |                      ¦   «         ¦  «        }|                     ¦   «          |                      t          d¦  «        5  |                      d|dz  ¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zM
        Raise `ValueError` when the package root can't be resolved.
        z$Can't find the directory of project z[project]
name = "foo"
r    r   N)r   r   rA   r0   r-   r   )r   rC   s     r   Útest_packagePathRequiredz4VerifyPyprojectDotTomlTests.test_packagePathRequired‡   sÈ   € õ �D—K’K‘M”MÑ"Ô"ˆØ�
Š
‰Œˆà×#Ò#¥JÐ0VÑWÔWð 	ð 	Ø�NŠNØ+ØÐ,Ñ,ð ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÁA9Á9A=Â A=c           
      ó  — t          |                      ¦   «         ¦  «        }|dz  dz  }|                     d¬¦  «         |                      d|dz  ¬¦  «        }|                      |t          dd	t          |¦  «        ¬
¦  «        ¦  «         dS )z„
        The ``[tool.incremental]`` table is not strictly required, but its
        ``opt_in=False`` indicates its absence.
        r8   r9   Tr:   z[project]
name = "Foo"
r    r   Fr<   r=   Nr@   )r   rC   rD   rE   s       r   Útest_noToolIncrementalSectionz9VerifyPyprojectDotTomlTests.test_noToolIncrementalSection”   s§   € õ
 �D—K’K‘M”MÑ"Ô"ˆØ�U‰l˜UÑ"ˆØ�	Š	˜$ˆ	ÑÔÐà—’Ø'ØÐ(Ñ(ð  ñ 
ô 
ˆð
 	×ÒØÝØØÝ˜‘X”Xðñ ô ñ	
ô 	
ð 	
ð 	
ð 	
r&   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r	   r   r%   r)   r.   r2   r4   r6   rF   rH   rJ   © r&   r   r   r      sú   € € € € € Ø9Ð9ð <@ðð ð ØðØ"'¨¨c°4¨Ô"8ðà	Ð$Ô	%ðð ð ð ð8Ið Ið Ið;ð ;ð ;ð@ð @ð @ð
%ð 
%ð 
%ð@ð @ð @ð	@ð 	@ð 	@ðð ð ð2ð ð ð
ð 
ð 
ð 
ð 
r&   r   )rN   r!   Útypingr   r   r   Úpathlibr   Útwisted.trial.unittestr   Úincrementalr   r	   r   rO   r&   r   ú<module>rT      s®   ðð 8Ð 7à 	€	€	€	Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +à @Ð @Ð @Ð @Ð @Ð @Ð @Ð @ð[
ð [
ð [
ð [
ð [
 (ñ [
ô [
ð [
ð [
ð [
r&   