o
    §M=`^€  ã                   @   s´   d Z ddlmZmZ ddlZddlZddlZddlmZ ddl	m
Z
 ddlmZ ddlmZmZ G dd	„ d	eƒZG d
d„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZdS )z"
Tests for L{incremental.update}.
é    )ÚdivisionÚabsolute_importN)ÚFilePath)ÚNativeStringIO)ÚTestCase)Ú_runÚrunc                   @   ó   e Zd Zdd„ Zdd„ ZdS )ÚNonCreatedUpdateTestsc                    sl   t ˆ  ¡ ƒˆ _ˆ j ¡  ˆ j d¡}| ¡  | d¡ d¡ ‡ fdd„ˆ _|ˆ _G dd„ dtƒ}|ƒ ˆ _	d S )NÚ
inctestpkgú__init__.pyó‡   
from incremental import Version
introduced_in = Version("inctestpkg", "NEXT", 0, 0).short()
next_released_version = "inctestpkg NEXT"
c                      ó   ˆ j jS ©N©ÚsrcdirÚpath© ©Úselfr   ú?/usr/lib/python3/dist-packages/incremental/tests/test_update.pyÚ<lambda>%   ó    z-NonCreatedUpdateTests.setUp.<locals>.<lambda>c                   @   ó   e Zd ZdZdZdS )z)NonCreatedUpdateTests.setUp.<locals>.Dateéà  é   N©Ú__name__Ú
__module__Ú__qualname__ÚyearÚmonthr   r   r   r   ÚDate(   ó    r"   ©
r   Úmktempr   ÚmakedirsÚchildÚ
setContentÚgetcwdÚ
packagedirÚobjectÚdate©r   r*   r"   r   r   r   ÚsetUp   s   

ÿzNonCreatedUpdateTests.setUpc                 C   sp   |   | j d¡ ¡ ¡ g }tdddddddd| j| j|jd |  | j d¡ ¡ ¡ |  	| j d¡ 
¡ d¡ dS )zP
        `incremental.update package --create` initialises the version.
        ú_version.pyr   NFT©
r   Ú
newversionÚpatchÚrcÚpostÚdevÚcreateÚ_dateÚ_getcwdÚ_printó  """
Provides inctestpkg version information.
"""

# This file is auto-generated! Do not edit!
# Use `python -m incremental.update inctestpkg` to change this file.

from incremental import Version

__version__ = Version("inctestpkg", 16, 8, 0)
__all__ = ["__version__"]
)ÚassertFalser*   r'   Úexistsr   r,   r)   ÚappendÚ
assertTrueÚassertEqualÚ
getContent©r   Úoutr   r   r   Útest_create.   s(   õþz!NonCreatedUpdateTests.test_createN)r   r   r   r.   rC   r   r   r   r   r
      s    r
   c                   @   r	   )ÚMissingTestsc                    ó’   t ˆ  ¡ ƒˆ _ˆ j ¡  ˆ j d¡ ¡  ˆ j d¡ d¡}| ¡  | d¡ d¡ | d¡ d¡ ‡ fdd„ˆ _|ˆ _G d	d
„ d
tƒ}|ƒ ˆ _	d S )NÚsrcar   r   r   r/   óh   
from incremental import Version
__version__ = Version("inctestpkg", 1, 2, 3)
__all__ = ["__version__"]
c                      r   r   r   r   r   r   r   r   n   r   z$MissingTests.setUp.<locals>.<lambda>c                   @   r   )z MissingTests.setUp.<locals>.Dater   r   Nr   r   r   r   r   r"   q   r#   r"   r$   r-   r   r   r   r.   V   ó   

ÿ
ÿzMissingTests.setUpc                 C   sX   g }|   t¡ tdddddddd| j| j|jd W d  ƒ dS 1 s%w   Y  dS )zk
        `incremental.update package --dev` raises and quits if it can't find
        the package.
        r   NFTr0   )ÚassertRaisesÚ
ValueErrorr   r,   r)   r=   rA   r   r   r   Ú	test_pathw   s    õ"ÿzMissingTests.test_pathN©r   r   r   r.   rK   r   r   r   r   rD   U   ó    !rD   c                   @   r	   )ÚCreatedUpdateInSrcTestsc                    rE   )NÚsrcr   r   r   r/   rG   c                      r   r   r   r   r   r   r   r   ¦   r   z/CreatedUpdateInSrcTests.setUp.<locals>.<lambda>c                   @   r   )z+CreatedUpdateInSrcTests.setUp.<locals>.Dater   r   Nr   r   r   r   r   r"   ©   r#   r"   r$   r-   r   r   r   r.   Ž   rH   zCreatedUpdateInSrcTests.setUpc                 C   s¬   g }t dddddddd| j| j|jd |  | j d¡ ¡ ¡ |  | j d¡ 	¡ d¡ t dddddddd| j| j|jd |  | j d¡ ¡ ¡ |  | j d¡ 	¡ d¡ dS )	ú†
        `incremental.update package --path=<path> --dev` increments the dev
        version of the package on the given path
        r   NFTr0   r/   ó  """
Provides inctestpkg version information.
"""

# This file is auto-generated! Do not edit!
# Use `python -m incremental.update inctestpkg` to change this file.

from incremental import Version

__version__ = Version("inctestpkg", 1, 2, 3, dev=0)
__all__ = ["__version__"]
s  """
Provides inctestpkg version information.
"""

# This file is auto-generated! Do not edit!
# Use `python -m incremental.update inctestpkg` to change this file.

from incremental import Version

__version__ = Version("inctestpkg", 1, 2, 3, dev=1)
__all__ = ["__version__"]
©
r   r,   r)   r=   r>   r*   r'   r<   r?   r@   rA   r   r   r   rK   ¯   sJ   õþõþz!CreatedUpdateInSrcTests.test_pathNrL   r   r   r   r   rN      rM   rN   c                   @   s    e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ ZdS )&ÚCreatedUpdateTestsNc                    s|   t ˆ  ¡ ƒˆ _ˆ j ¡  ˆ j d¡}| ¡  | d¡ d¡ | d¡ d¡ ‡ fdd„ˆ _|ˆ _G dd	„ d	tƒ}|ƒ ˆ _	d S )
Nr   r   r   r/   rG   c                      r   r   r   r   r   r   r   r     r   z*CreatedUpdateTests.setUp.<locals>.<lambda>c                   @   r   )z&CreatedUpdateTests.setUp.<locals>.Dater   r   Nr   r   r   r   r   r"     r#   r"   r$   r-   r   r   r   r.   ø   s   

ÿ
ÿzCreatedUpdateTests.setUpc                 C   sZ   g }t d| jjdddddd| j|jd
 |  | j d¡ ¡ ¡ |  | j d¡ 	¡ d¡ dS )rP   r   NFT)	r   r1   r2   r3   r4   r5   r6   r7   r9   r/   rQ   )
r   r*   r   r,   r=   r>   r'   r<   r?   r@   rA   r   r   r   rK     s$   öþzCreatedUpdateTests.test_pathc                 C   sZ   g }t dddddddd| j| j|jd |  | j d¡ ¡ ¡ |  | j d¡ 	¡ d¡ dS )zP
        `incremental.update package --dev` increments the dev version.
        r   NFTr0   r/   rQ   rR   rA   r   r   r   Útest_dev;  ó&   õþzCreatedUpdateTests.test_devc                 C   s\   g }t dddddddd| j| j|jd |  | j d¡ ¡ d¡ |  | j d¡ ¡ d	¡ dS )
zT
        `incremental.update package --patch` increments the patch version.
        r   NTFr0   r/   ó  """
Provides inctestpkg version information.
"""

# This file is auto-generated! Do not edit!
# Use `python -m incremental.update inctestpkg` to change this file.

from incremental import Version

__version__ = Version("inctestpkg", 1, 2, 4)
__all__ = ["__version__"]
r   sƒ   
from incremental import Version
introduced_in = Version("inctestpkg", 1, 2, 4).short()
next_released_version = "inctestpkg 1.2.4"
©r   r,   r)   r=   r?   r*   r'   r@   rA   r   r   r   Ú
test_patch_  s,   õþþzCreatedUpdateTests.test_patchc                 C   sV   | j  d¡ d¡ g }tdddddddd| j| j|jd |  | j  d¡ ¡ d¡ dS )	zŒ
        `incremental.update package --patch` increments the patch version, and
        disregards any old prerelease/dev versions.
        r/   ó„   
from incremental import Version
__version__ = Version("inctestpkg", 1, 2, 3, release_candidate=1, dev=2)
__all__ = ["__version__"]
r   NTFr0   rV   ©	r*   r'   r(   r   r,   r)   r=   r?   r@   rA   r   r   r   Ú"test_patch_with_prerelease_and_devŠ  ó*   ÿõþz5CreatedUpdateTests.test_patch_with_prerelease_and_devc                 C   s\   g }t dddddddd| j| j|jd |  | j d¡ ¡ d¡ |  | j d¡ ¡ d	¡ dS )
z‚
        `incremental.update package --patch --rc` increments the patch
        version and makes it a release candidate.
        r   NTFr0   r/   s!  """
Provides inctestpkg version information.
"""

# This file is auto-generated! Do not edit!
# Use `python -m incremental.update inctestpkg` to change this file.

from incremental import Version

__version__ = Version("inctestpkg", 1, 2, 4, release_candidate=1)
__all__ = ["__version__"]
r   sœ   
from incremental import Version
introduced_in = Version("inctestpkg", 1, 2, 4, release_candidate=1).short()
next_released_version = "inctestpkg 1.2.4.rc1"
rW   rA   r   r   r   Útest_rc_patch¶  ó,   õþþz CreatedUpdateTests.test_rc_patchc                 C   ón   | j  d¡ d¡ g }tdddddddd| j| j|jd |  | j  d¡ ¡ d¡ |  | j  d	¡ ¡ d
¡ dS )z•
        `incremental.update package --rc` increments the rc version if the
        existing version is an rc, and discards any dev version.
        r/   rY   r   NFTr0   s!  """
Provides inctestpkg version information.
"""

# This file is auto-generated! Do not edit!
# Use `python -m incremental.update inctestpkg` to change this file.

from incremental import Version

__version__ = Version("inctestpkg", 1, 2, 3, release_candidate=2)
__all__ = ["__version__"]
r   sœ   
from incremental import Version
introduced_in = Version("inctestpkg", 1, 2, 3, release_candidate=2).short()
next_released_version = "inctestpkg 1.2.3.rc2"
rZ   rA   r   r   r   Útest_rc_with_existing_rcâ  ó2   ÿõþþz+CreatedUpdateTests.test_rc_with_existing_rcc                 C   r_   )z´
        `incremental.update package --rc`, when the package is not a release
        candidate, will issue a new major/minor rc, and disregards the micro
        and dev.
        r/   so   
from incremental import Version
__version__ = Version("inctestpkg", 1, 2, 3, dev=2)
__all__ = ["__version__"]
r   NFTr0   ó"  """
Provides inctestpkg version information.
"""

# This file is auto-generated! Do not edit!
# Use `python -m incremental.update inctestpkg` to change this file.

from incremental import Version

__version__ = Version("inctestpkg", 16, 8, 0, release_candidate=1)
__all__ = ["__version__"]
r   óž   
from incremental import Version
introduced_in = Version("inctestpkg", 16, 8, 0, release_candidate=1).short()
next_released_version = "inctestpkg 16.8.0.rc1"
rZ   rA   r   r   r   Útest_rc_with_no_rc  s2   ÿõþþz%CreatedUpdateTests.test_rc_with_no_rcc                 C   s°   g }t dddddddd| j| j|jd |  | j d¡ ¡ d¡ |  | j d¡ ¡ d	¡ t dddddddd| j| j|jd |  | j d¡ ¡ d
¡ |  | j d¡ ¡ d¡ dS )z›
        `incremental.update package`, when the package is a release
        candidate, will issue the major/minor, sans release candidate or dev.
        r   NFTr0   r/   rb   r   rc   r:   s…   
from incremental import Version
introduced_in = Version("inctestpkg", 16, 8, 0).short()
next_released_version = "inctestpkg 16.8.0"
rW   rA   r   r   r   Útest_full_with_rcK  sV   õþþ	õþþz$CreatedUpdateTests.test_full_with_rcc                 C   sj   g }|   t¡}tdddddddd| j| j|jd W d  ƒ n1 s$w   Y  |  |jjd d¡ dS )zy
        `incremental.update package`, when the package is NOT a release
        candidate, will raise an error.
        r   NFr0   r   z6You need to issue a rc before updating the major/minor©	rI   rJ   r   r,   r)   r=   r?   Ú	exceptionÚargs©r   rB   Úer   r   r   Útest_full_without_rc  s(   õÿ
þz'CreatedUpdateTests.test_full_without_rcc                 C   sZ   g }t dddddddd| j| j|jd |  | j d¡ ¡ ¡ |  | j d¡ 	¡ d¡ dS )zR
        `incremental.update package --post` increments the post version.
        r   NFTr0   r/   ó  """
Provides inctestpkg version information.
"""

# This file is auto-generated! Do not edit!
# Use `python -m incremental.update inctestpkg` to change this file.

from incremental import Version

__version__ = Version("inctestpkg", 1, 2, 3, post=0)
__all__ = ["__version__"]
rR   rA   r   r   r   Ú	test_post·  rU   zCreatedUpdateTests.test_postc                 C   sV   | j  d¡ d¡ g }tdddddddd| j| j|jd |  | j  d¡ ¡ d¡ dS )	zŠ
        `incremental.update package --post` increments the post version, and
        disregards any old prerelease/dev versions.
        r/   rY   r   NFTr0   rl   rZ   rA   r   r   r   Ú!test_post_with_prerelease_and_devÛ  r\   z4CreatedUpdateTests.test_post_with_prerelease_and_devc                 C   sn   | j  d¡ d¡ g }tdddddddd| j| j|jd |  | j  d¡ ¡ d¡ |  | j  d	¡ ¡ d
¡ dS )z¢
        `incremental.update package --post` increments the post version if the
        existing version is an postrelease, and discards any dev version.
        r/   sw   
from incremental import Version
__version__ = Version("inctestpkg", 1, 2, 3, post=1, dev=2)
__all__ = ["__version__"]
r   NFTr0   s  """
Provides inctestpkg version information.
"""

# This file is auto-generated! Do not edit!
# Use `python -m incremental.update inctestpkg` to change this file.

from incremental import Version

__version__ = Version("inctestpkg", 1, 2, 3, post=2)
__all__ = ["__version__"]
r   s‘   
from incremental import Version
introduced_in = Version("inctestpkg", 1, 2, 3, post=2).short()
next_released_version = "inctestpkg 1.2.3.post2"
rZ   rA   r   r   r   Útest_post_with_existing_post  ra   z/CreatedUpdateTests.test_post_with_existing_postc                 C   s  g }|   t¡}tdddddddd| j| j|jd W d  ƒ n1 s$w   Y  |  |jjd d¡ |   t¡}tdddddddd| j| j|jd W d  ƒ n1 sUw   Y  |  |jjd d¡ |   t¡}tdddddddd| j| j|jd W d  ƒ n1 s†w   Y  |  |jjd d¡ |   t¡}tdddddddd| j| j|jd W d  ƒ n1 s·w   Y  |  |jjd d¡ dS )	zf
        The `--newversion` flag can't be mixed with --patch, --rc, --post,
        or --dev.
        r   NÚ1TFr0   r   zOnly give --newversionrf   ri   r   r   r   Útest_no_mix_newversion;  s‚   õÿõÿõÿõÿz)CreatedUpdateTests.test_no_mix_newversionc                 C   s.  g }|   t¡}tdddddddd| j| j|jd W d  ƒ n1 s$w   Y  |  |jjd d¡ |   t¡}tdddddddd| j| j|jd W d  ƒ n1 sUw   Y  |  |jjd d¡ |   t¡}tdddddddd| j| j|jd W d  ƒ n1 s†w   Y  |  |jjd d¡ dS )zP
        The `--dev` flag can't be mixed with --patch, --rc, or --post.
        r   NTFr0   r   zOnly give --devrf   ri   r   r   r   Útest_no_mix_dev  sb   õÿõÿõÿz"CreatedUpdateTests.test_no_mix_devc                 C   sò  g }|   t¡}tdddddddd| j| j|jd W d  ƒ n1 s$w   Y  |  |jjd d¡ |   t¡}tdddddddd| j| j|jd W d  ƒ n1 sUw   Y  |  |jjd d¡ |   t¡}tdddddddd| j| j|jd W d  ƒ n1 s†w   Y  |  |jjd d¡ |   t¡}tdddddddd| j| j|jd W d  ƒ n1 s·w   Y  |  |jjd d¡ |   t¡}tdddddddd| j| j|jd W d  ƒ n1 sèw   Y  |  |jjd d¡ dS )	zp
        The `--create` flag can't be mixed with --patch, --rc, --post,
        --dev, or --newversion.
        r   NTFr0   r   zOnly give --createrp   rf   ri   r   r   r   Útest_no_mix_create¶  s¢   õÿõÿõÿõÿõÿz%CreatedUpdateTests.test_no_mix_createc                 C   ó\   g }t dddddddd| j| j|jd |  | j d¡ ¡ d¡ |  | j d¡ ¡ d	¡ dS )
z
        `incremental.update package --newversion=1.2.3.rc1.post2.dev3`, will
        set that version in the package.
        r   Nz1.2.3.rc1.post2.dev3Fr0   r/   s0  """
Provides inctestpkg version information.
"""

# This file is auto-generated! Do not edit!
# Use `python -m incremental.update inctestpkg` to change this file.

from incremental import Version

__version__ = Version("inctestpkg", 1, 2, 3, release_candidate=1, post=2, dev=3)
__all__ = ["__version__"]
r   s¶   
from incremental import Version
introduced_in = Version("inctestpkg", 1, 2, 3, release_candidate=1, post=2, dev=3).short()
next_released_version = "inctestpkg 1.2.3.rc1.post2.dev3"
rW   rA   r   r   r   Útest_newversion  s,   õþýz"CreatedUpdateTests.test_newversionc                 C   rt   )
zl
        `incremental.update package --newversion=1`, will set that
        version in the package.
        r   Nrp   Fr0   r/   s  """
Provides inctestpkg version information.
"""

# This file is auto-generated! Do not edit!
# Use `python -m incremental.update inctestpkg` to change this file.

from incremental import Version

__version__ = Version("inctestpkg", 1, 0, 0)
__all__ = ["__version__"]
r   sƒ   
from incremental import Version
introduced_in = Version("inctestpkg", 1, 0, 0).short()
next_released_version = "inctestpkg 1.0.0"
rW   rA   r   r   r   Útest_newversion_bare<  r^   z'CreatedUpdateTests.test_newversion_bare)r   r   r   ÚmaxDiffr.   rK   rT   rX   r[   r]   r`   rd   re   rk   rm   rn   ro   rq   rr   rs   ru   rv   r   r   r   r   rS   ô   s(    $$+,,45R$,4F5V0rS   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚScriptTestsc                    s¦   t ˆ ¡ ƒˆ_ˆj ¡  ˆj d¡ ¡  ˆj d¡ d¡}| ¡  | d¡ d¡ | d¡ d¡ ‡fdd„ˆ_|ˆ_G d	d
„ d
tƒ‰ G ‡ fdd„dtƒ}|ƒ ˆ_	d S )NrO   r   r   r   r/   rG   c                      r   r   r   r   r   r   r   r   ‚  r   z#ScriptTests.setUp.<locals>.<lambda>c                   @   r   )zScriptTests.setUp.<locals>.Dater   r   Nr   r   r   r   r   r"   …  r#   r"   c                       s   e Zd Z‡ fdd„ZdS )z%ScriptTests.setUp.<locals>.DateModulec                    s   ˆ ƒ S r   r   r   ©r"   r   r   ÚtodayŠ  s   z+ScriptTests.setUp.<locals>.DateModule.todayN)r   r   r   rz   r   ry   r   r   Ú
DateModule‰  s    r{   r$   )r   r*   r{   r   )r"   r   r   r.   j  s    

ÿ
ÿzScriptTests.setUpc                 C   sp   t ƒ }|  td|¡ |  t¡}tdgƒ W d  ƒ n1 sw   Y  |  |jjd d¡ |  	d| 
¡ ¡ dS )úI
        Calling run() with no args will cause it to print help.
        Ústdoutz--helpNr   zShow this message and exit)r   r2   ÚsysrI   Ú
SystemExitr   r?   rg   rh   ÚassertInÚgetvalue©r   Ústringiorj   r   r   r   Útest_run  s   ÿzScriptTests.test_runc                 C   sÂ   t ƒ }|  td|¡ |  td| j¡ |  td| j¡ |  t¡}t	ddgƒ W d  ƒ n1 s0w   Y  |  
|jjd d¡ |  d| ¡ ¡ |  
| j d	¡ ¡ d
¡ |  
| j d¡ ¡ d¡ dS )r|   r}   r)   r,   r   z--rcNr   zUpdating codebaser/   rb   r   rc   )r   r2   r~   Úosr)   Údatetimer,   rI   r   r   r?   rg   rh   r€   r   r*   r'   r@   r‚   r   r   r   Útest_insufficient_argsœ  s"   ÿþþz"ScriptTests.test_insufficient_argsN)r   r   r   r.   r„   r‡   r   r   r   r   rx   i  s    %rx   )Ú__doc__Ú
__future__r   r   r~   r…   r†   Útwisted.python.filepathr   Útwisted.python.compatr   Útwisted.trial.unittestr   Úincremental.updater   r   r
   rD   rN   rS   rx   r   r   r   r   Ú<module>   s(   @8g      {