async def test_fetch_with_client_error(self, mocked_post): """Test fetching measurement when getting measurements fails.""" mock_async_get_request = AsyncMock() mock_async_get_request.close = Mock() mock_async_get_request.json.return_value = self.metrics await self.fetch_measurements( None, side_effect=[mock_async_get_request, aiohttp.ClientConnectionError("error")] ) mocked_post.assert_called_once_with( self.measurement_api_url, json=dict( sources=[ dict( api_url=self.url, landing_url=self.url, value=None, total=None, entities=[], connection_error="error", parse_error=None, source_uuid="source_id", ) ], metric_uuid="metric_uuid", ), )
async def test_fetch_with_empty_client_error(self, mocked_post): """Test fetching measurement when getting measurements fails with an 'empty' exception. This can happen when an exception returns an empty string when converted to string. """ mock_async_get_request = AsyncMock() mock_async_get_request.close = Mock() mock_async_get_request.json.return_value = self.metrics await self.fetch_measurements(None, side_effect=[mock_async_get_request, aiohttp.ClientPayloadError()]) mocked_post.assert_called_once_with( self.measurement_api_url, json=dict( sources=[ dict( api_url=self.url, landing_url=self.url, value=None, total=None, entities=[], connection_error="ClientPayloadError", parse_error=None, source_uuid="source_id", ) ], metric_uuid="metric_uuid", ), )
def stream_reader_writer_slots_before_units(hass): """Create a StreamReader and fill it with connection messages.""" reader = StreamReader() reader.feed_data( b"\x1b[H\x1b[2JWelcome to the Folding@home Client command server.\n") reader.feed_data(b"OK\n") reader.feed_data(b"> \n") reader.feed_data(b"> \n") reader.feed_data(b"> \n") reader.feed_data(b"> \n") reader.feed_data(b"PyON 1 slots\n") reader.feed_data( b'[{"id": "00", "status": "READY", "description": "cpu: 3", "options": {"idle": "false"}, "reason": "", "idle": False}]\n' ) reader.feed_data(b"---\n") reader.feed_data(b"> \n") reader.feed_data(b"> \n") reader.feed_data(b"> \n") reader.feed_data(b"> \n") reader.feed_data(b"PyON 1 units\n") reader.feed_data(b"""[{ "id": "00", "state": "RUNNING", "error": "NO_ERROR", "project": 11777, "run": 0, "clone": 17250, "gen": 0, "core": "0x22", "unit": "0x00000003287234c95e774a8488c5d4ea", "percentdone": "72.51%", "eta": "1 hours 04 mins", "ppd": "359072", "creditestimate": "58183", "waitingon": "", "nextattempt": "0.00 secs", "timeremaining": "8.08 days", "totalframes": 100, "framesdone": 72, "assigned": "2020-03-28T08: 33: 55Z", "timeout": "2020-03-29T08: 33: 55Z", "deadline": "2020-04-05T13: 21: 54Z", "ws": "40.114.52.201", "cs": "13.82.98.119", "attempts": 0, "slot": "00", "tpf": "2 mins 20 secs", "basecredit": "9405" } ]\n""") reader.feed_data(b"---\n") reader.feed_data(b"> \n") reader.feed_data(b"> \n") reader.feed_data(b"> \n") reader.feed_data(b"> \n") reader.feed_eof() stream_writer = AsyncMock() stream_writer.close = MagicMock() return (reader, stream_writer)
def writer_mock() -> AsyncMock: """Cria e prepara um objeto writer mock para os testes.""" writer = AsyncMock() # Um objeto AsyncMock que não é chamado com await, faz com que apareça warning ao rodar os testes writer.write = Mock() writer.close = Mock() return writer
async def test_setup_and_shutdown(hass: HomeAssistant, monitors: AsyncMock) -> None: """Test that the component can set up and shut down cleanly, closing the underlying server on shutdown.""" monitors.start_server = AsyncMock(return_value=None) monitors.close = AsyncMock(return_value=None) assert await setup_greeneye_monitor_component_with_config( hass, SINGLE_MONITOR_CONFIG_POWER_SENSORS) await hass.async_stop() assert monitors.close.called
def mock_anthemav() -> AsyncMock: """Return the default mocked anthemav.""" avr = AsyncMock() avr.protocol.macaddress = "000000000001" avr.protocol.model = "MRX 520" avr.reconnect = AsyncMock() avr.protocol.wait_for_device_initialised = AsyncMock() avr.close = MagicMock() avr.protocol.input_list = [] avr.protocol.audio_listening_mode_list = [] avr.protocol.zones = {1: get_zone(), 2: get_zone()} return avr
def get_mock_device( serial="aabbccddeeff", host="1.2.3.4", product_name="P1 meter", product_type="HWE-P1", ): """Return a mock bridge.""" mock_device = AsyncMock() mock_device.host = host mock_device.device.product_name = product_name mock_device.device.product_type = product_type mock_device.device.serial = serial mock_device.device.api_version = "v1" mock_device.device.firmware_version = "1.00" mock_device.state = None mock_device.initialize = AsyncMock() mock_device.close = AsyncMock() return mock_device
def get_mock_device( serial="aabbccddeeff", host="1.2.3.4", product_name="P1 meter", product_type="HWE-P1", ): """Return a mock bridge.""" mock_device = AsyncMock() mock_device.host = host mock_device.device = AsyncMock(return_value=Device( product_name=product_name, product_type=product_type, serial=serial, api_version="V1", firmware_version="1.00", )) mock_device.data = AsyncMock(return_value=None) mock_device.state = AsyncMock(return_value=None) mock_device.close = AsyncMock() return mock_device