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__ZyearZmonthr   r   r   r   Date(       r    
r   Z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_dateZ_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__"]
)ZassertFalser'   r$   existsr   r)   r&   append
assertTrueassertEqual
getContentr   outr   r   r   test_create.   s(   z!NonCreatedUpdateTests.test_createN)r   r   r   r+   r>   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 )NZ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   NFTr-   )assertRaises
ValueErrorr   r)   r&   r8   r<   r   r   r   	test_pathw   s    "zMissingTests.test_pathNr   r   r   r+   rE   r   r   r   r   r?   U       !r?   c                   @   r	   )CreatedUpdateInSrcTestsc                    r@   )Nsrcr   r   r   r,   rA   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+      rB   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   NFTr-   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&   r8   r9   r'   r$   r7   r:   r;   r<   r   r   r   rE      sJ   z!CreatedUpdateInSrcTests.test_pathNrF   r   r   r   r   rH      rG   rH   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,   rA   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 )rJ   r   NFT)	r   r.   r/   r0   r1   r2   r3   r4   r5   r,   rK   )
r   r'   r   r)   r8   r9   r$   r7   r:   r;   r<   r   r   r   rE     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   NFTr-   r,   rK   rL   r<   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   NTFr-   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&   r8   r:   r'   r$   r;   r<   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   NTFr-   rP   	r'   r$   r%   r   r)   r&   r8   r:   r;   r<   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   NTFr-   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"
rQ   r<   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,   rS   r   NFTr-   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"
rT   r<   r   r   r   test_rc_with_existing_rc  2   z+CreatedUpdateTests.test_rc_with_existing_rcc                 C   rY   )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   NFTr-   "  """
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"
rT   r<   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   NFTr-   r,   r\   r   r]   r6   s   
from incremental import Version
introduced_in = Version("inctestpkg", 16, 8, 0).short()
next_released_version = "inctestpkg 16.8.0"
rQ   r<   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   NFr-   r   z6You need to issue a rc before updating the major/minor	rC   rD   r   r)   r&   r8   r:   	exceptionargsr   r=   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   NFTr-   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__"]
rL   r<   r   r   r   	test_post  rO   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,   rS   r   NFTr-   rf   rT   r<   r   r   r   !test_post_with_prerelease_and_dev  rV   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   NFTr-   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"
rT   r<   r   r   r   test_post_with_existing_post  r[   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 sw   Y  | |jjd d |  t}tdddddddd| j| j|jd W d   n1 sw   Y  | |jjd d dS )	zf
        The `--newversion` flag can't be mixed with --patch, --rc, --post,
        or --dev.
        r   N1TFr-   r   zOnly give --newversionr`   rc   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 sw   Y  | |jjd d dS )zP
        The `--dev` flag can't be mixed with --patch, --rc, or --post.
        r   NTFr-   r   zOnly give --devr`   rc   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 sw   Y  | |jjd d |  t}tdddddddd| j| j|jd W d   n1 sw   Y  | |jjd d |  t}tdddddddd| j| j|jd W d   n1 sw   Y  | |jjd d dS )	zp
        The `--create` flag can't be mixed with --patch, --rc, --post,
        --dev, or --newversion.
        r   NTFr-   r   zOnly give --createrj   r`   rc   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.dev3Fr-   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"
rQ   r<   r   r   r   test_newversion  s,   z"CreatedUpdateTests.test_newversionc                 C   rn   )
zl
        `incremental.update package --newversion=1`, will set that
        version in the package.
        r   Nrj   Fr-   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"
rQ   r<   r   r   r   test_newversion_bare<  rX   z'CreatedUpdateTests.test_newversion_bare)r   r   r   ZmaxDiffr+   rE   rN   rR   rU   rW   rZ   r^   r_   re   rg   rh   ri   rk   rl   rm   ro   rp   r   r   r   r   rM      s(    $$+,,45R$,4F5V0rM   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 )NrI   r   r   r   r,   rA   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   rs   r   rr   r   r   
DateModule  s    rt   r"   )r   r'   rt   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   r/   sysrC   
SystemExitr   r:   ra   rb   assertIngetvaluer   Zstringiord   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 )ru   rv   r&   r)   r   z--rcNr   zUpdating codebaser,   r\   r   r]   )r   r/   rw   osr&   datetimer)   rC   rx   r   r:   ra   rb   ry   rz   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   rq   i  s    %rq   )__doc__Z
__future__r   r   rw   r}   r~   Ztwisted.python.filepathr   Ztwisted.python.compatr   Ztwisted.trial.unittestr   Zincremental.updater   r   r
   r?   rH   rM   rq   r   r   r   r   <module>   s(   @8g      {