





import random
import unittest

import torch

from diffusers import IFImgaImgSuperResolutionPipeline
from diffusers.utils import floats_tensor
from diffusers.utils.import_utils import is_xformers_available
from diffusers.utils.testing_utils import skip_mps, torch_device

from ..pipeline_params import TEXT_GUIDED_IMAGE_VARIATION_BATCH_PARAMS, TEXT_GUIDED_IMAGE_VARIATION_PARAMS
from ..test_pipelines_common import PipelineTesterMixin
from . import IFPipelineTesterMixin



@skip_mps
class 					A__   (       __snake_case       ,   __snake_case       ,   unittest.TestCase			):
      _UpperCAmelCase	:int						    =   IFImgaImgSuperResolutionPipeline
      _UpperCAmelCase	:List[str]						    =   TEXT_GUIDED_IMAGE_VARIATION_PARAMS - {'width', 'height'}
      _UpperCAmelCase	:Optional[int]						    =   TEXT_GUIDED_IMAGE_VARIATION_BATCH_PARAMS.union({'original_image'}			)
      _UpperCAmelCase	:Dict						    =   PipelineTesterMixin.required_optional_params - {'latents'}





      def        __UpperCamelCase( self   ):
       '''simple docstring'''




       return self._get_superresolution_dummy_components()





      def        __UpperCamelCase( self       ,							A_       ,							A_=0   ):
       '''simple docstring'''




       if str(A_   ).startswith("mps"   ):
        UpperCamelCase	:					Dict       	=   torch.manual_seed(A_   )
       else:
        UpperCamelCase	:					Any       	=   torch.Generator(device=A_   ).manual_seed(A_   )

       UpperCamelCase	:					Any       	=   floats_tensor((1, 3, 32, 32)       ,							rng=random.Random(A_   )   ).to(A_   )
       UpperCamelCase	:					List[str]       	=   floats_tensor((1, 3, 16, 16)       ,							rng=random.Random(A_   )   ).to(A_   )

       UpperCamelCase	:					List[Any]       	=   {
           "prompt": "A painting of a squirrel eating a burger",
           "image": image,
           "original_image": original_image,
           "generator": generator,
           "num_inference_steps": 2,
           "output_type": "numpy",
       }

       return inputs





      @unittest.skipIf(
          torch_device != "cuda" or not is_xformers_available()       ,							reason="XFormers attention is only available with CUDA and `xformers` installed"       ,							)
      def        __UpperCamelCase( self   ):
       '''simple docstring'''




       self._test_xformers_attention_forwardGenerator_pass(expected_max_diff=1e-3   )





      def        __UpperCamelCase( self   ):
       '''simple docstring'''




       self._test_save_load_optional_components()





      @unittest.skipIf(torch_device != "cuda"       ,							reason="float16 requires CUDA"   )
      def        __UpperCamelCase( self   ):
       '''simple docstring'''




       super().test_save_load_floataa(expected_max_diff=1e-1   )





      def        __UpperCamelCase( self   ):
       '''simple docstring'''




       self._test_attention_slicing_forward_pass(expected_max_diff=1e-2   )





      def        __UpperCamelCase( self   ):
       '''simple docstring'''




       self._test_save_load_local()





      def        __UpperCamelCase( self   ):
       '''simple docstring'''




       self._test_inference_batch_single_identical(
           expected_max_diff=1e-2       ,							)







import pytest
import requests

from datasets.utils.file_utils import http_head

from .utils import OfflineSimulationMode, RequestWouldHangIndefinitelyError, offline



@pytest.mark.integration
def 		A_				(     )						-> List[Any]:
 with offline(OfflineSimulationMode.CONNECTION_TIMES_OUT     ):
  with pytest.raises(_lowerCAmelCase     ):
   requests.request("GET"							,   "https://huggingface.co"     )
  with pytest.raises(requests.exceptions.ConnectTimeout     ):
   requests.request("GET"							,   "https://huggingface.co"							,   timeout=1.0     )



@pytest.mark.integration
def 		A_				(     )						-> Tuple:
 with offline(OfflineSimulationMode.CONNECTION_FAILS     ):
  with pytest.raises(requests.exceptions.ConnectionError     ):
   requests.request("GET"							,   "https://huggingface.co"     )



def 		A_				(     )						-> Optional[int]:
 with offline(OfflineSimulationMode.HF_DATASETS_OFFLINE_SET_TO_1     ):
  with pytest.raises(_lowerCAmelCase     ):
   http_head("https://huggingface.co"     )
