a
    ߙfbl                     @   s`   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	 d dl
mZ G dd	 d	eZdS )
    N   )FitsTestCase)	fitscheck)fits)AstropyUserWarning)__version__c                   @   sD   e 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S )TestFitscheckc                 C   sJ   t t}tdg W d    n1 s,0    Y  |jjdksFJ d S )Nz-hr   )pytestraises
SystemExitr   mainvaluecode)selfe r   Clib/python3.9/site-packages/astropy/io/fits/tests/test_fitscheck.py	test_help   s    *zTestFitscheck.test_helpc                 C   sh   t t:}tdg | d }|dt ks6J W d    n1 sJ0    Y  |jjdksdJ d S )Nz	--versionr   z
fitscheck )	r	   r
   r   r   r   
readouterrversionr   r   )r   capsysr   outr   r   r   test_version   s
    0zTestFitscheck.test_versionc                 C   s0   t dgdksJ | \}}d|v s,J d S )Nzmissing.fitsr   zNo such file or directory)r   r   r   )r   r   stdoutstderrr   r   r   test_missing_file   s    zTestFitscheck.test_missing_filec                 C   sf   |  d}t|gdksJ t|dgdks4J t|dgdksJJ | \}}d|v sbJ d S )Nchecksum.fitsr   z--compliancez-vZOKdatar   r   r   r   r   testfiler   r   r   r   r   test_valid_file   s    
zTestFitscheck.test_valid_filec                 C   s\   |  d | d}t|ddgdks,J t|gdks@J | \}}d|v sXJ d S )Nr   z
--checksumremover   MISSING)Z	copy_filetempr   r   r   r   r   r   r   test_remove_checksums(   s    

z#TestFitscheck.test_remove_checksumsc                 C   sh   |  d}t|gdksJ | \}}d|v s6J t|dgdksLJ | \}}|dksdJ d S )Nzarange.fitsr   zChecksum not foundz--ignore-missingr    r   r   r   r   r   test_no_checksums0   s    
zTestFitscheck.test_no_checksumsc                 C   sz  |  d}t| d}|j|dd W d   n1 s>0    Y  |  d}t| dR}d|d jd	< d
|d jd< d|d jd	< d|d jd< || W d   n1 s0    Y  t|gdksJ t	d|j
d jsJ |  tt* t|ddgdksJ W d   n1 s40    Y  t	d|j
d jsXJ |  t|gdksvJ dS )zh
        Tests that invalid checksum or datasum are overwritten when the file is
        saved.
        zref.fitsztb.fitsT)ZchecksumNz	test.fitsz1       r   ZDATASUMZ8UgqATfo7TfoATfoZCHECKSUMZ
2349680925r   Z11daD8bX98baA8bUz)BAD.*Checksum verification failed for HDUz--writez--force)r$   r   openr   Zwritetoheaderr   r   rematchZrecordsmessageclearr	   Zwarnsr   )r   ZcaplogZreffileZhdulr    r   r   r   test_overwrite_invalid;   s,    
,
(
:

z$TestFitscheck.test_overwrite_invalidN)
__name__
__module____qualname__r   r   r   r!   r%   r'   r.   r   r   r   r   r      s   
r   )r*   r	   r&   r   Zastropy.io.fits.scriptsr   Z
astropy.ior   Zastropy.utils.exceptionsr   Zastropyr   r   r   r   r   r   r   <module>   s   