
    6"jj
                        d dl mZ d dlZd dlmc mZ d dlZd dl	m
Z
 d dlmZ d dlmZmZmZ  ej        d          Z G d d          ZddZddZddZdS )    )annotationsN)Path)Any)NvidiaImageClientNvidiaImageRequestload_nvidia_api_keyz\iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=c                       e Zd ZdddZddZdS )FakeTransportNstatuseslist[int] | Nonec                (    |pdg| _         g | _        d S )N   )r   calls)selfr   s     J/home/agent/jarvis_runtime/AutoShortsBot/tests/test_nvidia_image_client.py__init__zFakeTransport.__init__   s     )SE+-


    endpointstrapi_keypayloaddict[str, Any]timeout_secondsintreturntuple[int, bytes, str]c               l   | j                             ||||d           | j        t          t	          | j                   dz
  t	          | j                  dz
                     }|dk    r|ddfS t          j        t                                                    }dd| d	                                dfS )	N)r   r   r   r      r   s   404 page not foundz
text/plainz{"artifacts":[{"base64":"z"}]}zapplication/json)
r   appendr   minlenbase64	b64encodeONE_PIXEL_PNGdecodeencode)r   r   r   r   r   statusencodeds          r   	post_jsonzFakeTransport.post_json   s    
xGPWl{||}}}s3tz??Q#6DM8J8JQ8NOOPS==0,>>"=1188::B7BBBJJLLN```r   )N)r   r   )
r   r   r   r   r   r   r   r   r   r   )__name__
__module____qualname__r   r)    r   r   r
   r
      sG        . . . . .a a a a a ar   r
   tmp_pathr   r   Nonec                `   | dz  }|                     dd           t          |          }d}||k    }|st          j        d|fd||f          dt	          j                    v st          j        t                    rt          j        t                    ndd	t	          j                    v st          j        |          rt          j        |          nd	t          j        |          t          j        |          d
z  }dd|iz  }t          t          j	        |                    d x}x}}d S )Nnvidia_api_keyzNVIDIA_API_KEY=test-key
zutf-8)encodingztest-key==)z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sr   secret)py0py1py3py6assert %(py8)spy8)

write_textr   
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation)r.   r5   @py_assert2@py_assert5@py_assert4@py_format7@py_format9s          r   1test_load_nvidia_api_key_supports_env_file_formatrJ      sO   ((F
1GDDDv&&4*4&*4444444444&*444444444444444444444444444444v44444v444444&4444*44444444444444444444444444444r   c                X	   t                      }t          d|          }| dz  }|                    t          d|dd          dg	          }|j        }d
}||k    }|st          j        d|fd||f          dt          j                    v st          j	        |          rt          j
        |          ndt          j
        |          t          j
        |          dz  }dd|iz  }	t          t          j        |	                    d x}x}}|j        }d}||k    }|st          j        d|fd||f          dt          j                    v st          j	        |          rt          j
        |          ndt          j
        |          t          j
        |          dz  }dd|iz  }	t          t          j        |	                    d x}x}}|j        } |            }|t          k    }
|
st          j        d|
fd|t          f          dt          j                    v st          j	        |          rt          j
        |          ndt          j
        |          t          j
        |          dt          j                    v st          j	        t                    rt          j
        t                    nddz  }dd|iz  }t          t          j        |                    d x}x}}
|j        d         d         d         }d}||k    }|slt          j        d|fd||f          t          j
        |          t          j
        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|j        d         d         d         }d}||k    }|slt          j        d|fd||f          t          j
        |          t          j
        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|j        d         d         d          }d!}||k    }|slt          j        d|fd||f          t          j
        |          t          j
        |          dz  }dd|iz  }t          t          j        |                    d x}x}}d S )"Nr5   r   	transportscene_01.pngred cari  i  )promptoutput_pathwidthheight
flux.1-devmodel_ordersuccessr3   z.%(py2)s
{%(py2)s = %(py0)s.status
} == %(py5)sresultr6   py2py5assert %(py7)spy7z-%(py2)s
{%(py2)s = %(py0)s.model
} == %(py5)s)zI%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.read_bytes
}()
} == %(py6)soutputr$   )r6   r[   py4r9   r:   r;   r   r   rR   )z%(py1)s == %(py4)s)r7   ra   zassert %(py6)sr9   rS   modebase)r
   r   generater   r'   r=   r>   r?   r@   rA   rB   rC   rD   model
read_bytesr$   r   )r.   rM   clientr`   rY   @py_assert1rG   @py_assert3@py_format6@py_format8rF   rH   rI   @py_assert0rE   @py_format5s                   r   0test_client_writes_image_from_artifacts_responsern   #   sg   Ix9EEEF&F__/yf\_hklll  |H  {I_  J  JF=%I%=I%%%%%%%%%%=I%%%%%%%%%%%%6%%%%%6%%%%%%=%%%%I%%%%%%%%%%%%%%%%%%%%%%%%%%%<'<'<<''''''''''<<''''''''''''6'''''6''''''<''''<'''''''''''''''''''''''''''//-//////////-////////////6/////6/////////////////////-/////-/////////////////////////////?1i(18S81S88888888881S8888818888S888888888888888888888888888?1i(29c92c99999999992c9999929999c999999999999999999999999999?1i(0:F:0F::::::::::0F:::::0::::F:::::::::::::::::::::::::::::r   c                   t          ddg          }t          d|          }| dz  }|                    t          d|          d	d
g          }|j        }d}||k    }|st          j        d|fd||f          dt          j                    v st          j	        |          rt          j
        |          ndt          j
        |          t          j
        |          dz  }dd|iz  }	t          t          j        |	                    d x}x}}|j        }d
}||k    }|st          j        d|fd||f          dt          j                    v st          j	        |          rt          j
        |          ndt          j
        |          t          j
        |          dz  }dd|iz  }	t          t          j        |	                    d x}x}}|j        }
t          |
          }d}||k    }|st          j        d|fd||f          dt          j                    v st          j	        t                    rt          j
        t                    nddt          j                    v st          j	        |          rt          j
        |          ndt          j
        |
          t          j
        |          t          j
        |          dz  }dd|iz  }t          t          j        |                    d x}
x}x}}|j        d         d         }|j        }
d} |
|          }|ssdt          j
        |          t          j
        |
          t          j
        |          t          j
        |          dz  }	t          t          j        |	                    d x}x}
x}}|j        d          d         }|j        }
d!} |
|          }|ssdt          j
        |          t          j
        |
          t          j
        |          t          j
        |          dz  }	t          t          j        |	                    d x}x}
x}}d S )"Ni  r   )r   r5   rL   rN   rO   )rP   rQ   z
qwen-imagerT   rU   rW   r3   rX   rY   rZ   r]   r^   r_      )zK%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.calls
})
} == %(py8)sr!   rM   )r6   r7   r8   r\   r;   zassert %(py10)spy10r   r   z/qwen/qwen-imagezJassert %(py7)s
{%(py7)s = %(py3)s
{%(py3)s = %(py1)s.endswith
}(%(py5)s)
})r7   r8   r\   r^   r   z/black-forest-labs/flux.1-dev)r
   r   rd   r   r'   r=   r>   r?   r@   rA   rB   rC   rD   re   r   r!   endswith)r.   rM   rg   r`   rY   rh   rG   ri   rj   rk   rE   @py_assert7@py_assert6rI   @py_format11rl   s                   r   6test_client_falls_back_when_first_model_is_unavailablerv   2   s   Sz222Ix9EEEF&F__)@@@!<0   F
 =%I%=I%%%%%%%%%%=I%%%%%%%%%%%%6%%%%%6%%%%%%=%%%%I%%%%%%%%%%%%%%%%%%%%%%%%%%%<'<'<<''''''''''<<''''''''''''6'''''6''''''<''''<'''''''''''''''''''''''''''$3$1$1$$$$$$$$$$1$$$$$$$$$$$$3$$$$$3$$$$$$$$$$$$$y$$$$$y$$$$$$$$$$$$$$1$$$$$$$$$$$$$$$$$$$$$$$$$$$$$?1j)F)2F3EF223EFFFFFFFF)FFFF2FFFF3EFFFFFFFFFFFFFFFFFFFFFFFFFFFF?1j)S)2S3RS223RSSSSSSSS)SSSS2SSSS3RSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSr   )r.   r   r   r/   )
__future__r   builtinsr?   _pytest.assertion.rewrite	assertionrewriter=   r"   pathlibr   typingr   autoshorts.nvidia_image_clientr   r   r   	b64decoder$   r
   rJ   rn   rv   r-   r   r   <module>r      s   " " " " " "                           e e e e e e e e e e  b 
a a a a a a a a5 5 5 5; ; ; ;T T T T T Tr   