Files
core/tests/components/youtube/__init__.py
T
Joost LekkerkerkerandRobert Hillis e4c51d43f0 Add YouTube integration (#92988)
* Add YouTube stub

* Add YouTube stub

* Add YouTube stub

* Add YouTube stub

* Add Youtube stub

* Add Youtube stub

* Add tests

* Add tests

* Add tests

* Clean up

* Add test for options flow

* Fix feedback

* Fix feedback

* Remove obsolete request

* Catch exceptions

* Parallelize latest video calls

* Apply suggestions from code review

Co-authored-by: Robert Hillis <tkdrob4390@yahoo.com>

* Add youtube to google brands

* Fix feedback

* Fix feedback

* Fix test

* Fix test

* Add unit test for http error

* Update homeassistant/components/youtube/coordinator.py

Co-authored-by: Robert Hillis <tkdrob4390@yahoo.com>

* Fix black

* Fix feedback

* Fix feedback

* Fix tests

---------

Co-authored-by: Robert Hillis <tkdrob4390@yahoo.com>
2023-05-27 11:21:12 -07:00

69 lines
1.6 KiB
Python

"""Tests for the YouTube integration."""
from dataclasses import dataclass
import json
from typing import Any
from tests.common import load_fixture
@dataclass
class MockRequest:
"""Mock object for a request."""
fixture: str
def execute(self) -> dict[str, Any]:
"""Return a fixture."""
return json.loads(load_fixture(self.fixture))
class MockChannels:
"""Mock object for channels."""
def list(
self,
part: str,
id: str | None = None,
mine: bool | None = None,
maxResults: int | None = None,
) -> MockRequest:
"""Return a fixture."""
return MockRequest(fixture="youtube/get_channel.json")
class MockPlaylistItems:
"""Mock object for playlist items."""
def list(
self,
part: str,
playlistId: str,
maxResults: int | None = None,
) -> MockRequest:
"""Return a fixture."""
return MockRequest(fixture="youtube/get_playlist_items.json")
class MockSubscriptions:
"""Mock object for subscriptions."""
def list(self, part: str, mine: bool, maxResults: int | None = None) -> MockRequest:
"""Return a fixture."""
return MockRequest(fixture="youtube/get_subscriptions.json")
class MockService:
"""Service which returns mock objects."""
def channels(self) -> MockChannels:
"""Return a mock object."""
return MockChannels()
def playlistItems(self) -> MockPlaylistItems:
"""Return a mock object."""
return MockPlaylistItems()
def subscriptions(self) -> MockSubscriptions:
"""Return a mock object."""
return MockSubscriptions()