diff --git a/aiopyarr/models/base.py b/aiopyarr/models/base.py index c0382ed..050bb84 100644 --- a/aiopyarr/models/base.py +++ b/aiopyarr/models/base.py @@ -3,7 +3,7 @@ from __future__ import annotations from dataclasses import dataclass -from datetime import date, datetime +from datetime import datetime from enum import Enum from typing import Any @@ -12,7 +12,6 @@ from ..const import ATTR_DATA from .const import ( CONVERT_TO_BOOL, - CONVERT_TO_DATE, CONVERT_TO_DATETIME, CONVERT_TO_ENUM, CONVERT_TO_FLOAT, @@ -21,26 +20,15 @@ ) -def get_datetime( - _input: datetime | str | None, utc: bool = False -) -> datetime | str | int | None: +def get_datetime(_input: datetime | str | None) -> datetime | str | int | None: """Convert input to datetime object.""" if isinstance(_input, str): if _input.isnumeric(): return int(_input) - if utc: - return ciso8601.parse_datetime(_input) - return ciso8601.parse_datetime_as_naive(_input) + return ciso8601.parse_datetime(_input) return _input -def get_date(_input: datetime | str | None) -> date | None: - """Convert input to date object.""" - if (result := get_datetime(_input)) and isinstance(result, datetime): - return result.date() - return None - - def get_enum_value(val: str) -> str | Enum: """Convert input to the correct enum.""" for protocol in ProtocolType: @@ -95,12 +83,7 @@ def __init__( if key == ATTR_DATA: value = generate_data(value, datatype) elif key in CONVERT_TO_DATETIME: - if key == "airDateUtc": - value = get_datetime(value, utc=True) - else: - value = get_datetime(value) - elif key in CONVERT_TO_DATE: - value = get_date(value) + value = get_datetime(value) elif key in CONVERT_TO_ENUM: value = get_enum_value(value) elif key in CONVERT_TO_FLOAT and value is not None: diff --git a/aiopyarr/models/const.py b/aiopyarr/models/const.py index 1ebfe49..b4fff65 100644 --- a/aiopyarr/models/const.py +++ b/aiopyarr/models/const.py @@ -25,13 +25,14 @@ "tvRageId", ) -CONVERT_TO_DATE = ( +RELEASE_TYPES = ( "digitalRelease", "physicalRelease", "inCinemas", ) CONVERT_TO_DATETIME = ( + *RELEASE_TYPES, "added", "airDate", "airDateUtc", diff --git a/aiopyarr/models/radarr_common.py b/aiopyarr/models/radarr_common.py index 9114cf3..e1cdaba 100644 --- a/aiopyarr/models/radarr_common.py +++ b/aiopyarr/models/radarr_common.py @@ -4,10 +4,17 @@ from __future__ import annotations from dataclasses import dataclass, field -from datetime import date, timedelta +from datetime import date, datetime, timedelta + +try: + from datetime import UTC +except ImportError: + from datetime import timezone + + UTC = timezone.utc from .base import BaseModel -from .const import CONVERT_TO_DATE +from .const import RELEASE_TYPES from .request_common import ( _Common3, _Common5, @@ -141,10 +148,12 @@ def __post_init__(self): self.images = [_RadarrMovieImages(image) for image in self.images or []] self.ratings = _RadarrMovieRatings(self.ratings) - def releaseDateType(self, release: date = date.today()) -> tuple[date, str]: + def releaseDateType( + self, release: datetime = datetime.now(UTC) + ) -> tuple[datetime, str]: """Return release date and type matching/closest to supplied date.""" delta = timedelta(days=999999999) - for _type in CONVERT_TO_DATE: + for _type in RELEASE_TYPES: try: if (_date := getattr(self, _type)) and abs(release - _date) < delta: delta = release - _date diff --git a/tests/test_lidarr.py b/tests/test_lidarr.py index bddabb6..ffaa4e5 100644 --- a/tests/test_lidarr.py +++ b/tests/test_lidarr.py @@ -4,6 +4,13 @@ from datetime import datetime import json +try: + from datetime import UTC # pylint:disable=ungrouped-imports +except ImportError: + from datetime import timezone + + UTC = timezone.utc + from aresponses.main import ResponsesMockServer as Server import pytest @@ -74,7 +81,7 @@ async def test_async_get_albums( assert isinstance(data.mediumCount, int) assert isinstance(data.ratings.votes, int) assert isinstance(data.ratings.value, float) - assert data.releaseDate == datetime(2010, 8, 23, 0, 0) + assert data.releaseDate == datetime(2010, 8, 23, 0, 0, tzinfo=UTC) assert isinstance(data.releases[0].id, int) assert isinstance(data.releases[0].albumId, int) assert data.releases[0].foreignReleaseId == "string" @@ -117,7 +124,7 @@ async def test_async_get_albums( assert data.artist.cleanName == "string" assert data.artist.sortName == "string" assert isinstance(data.artist.tags[0], int) - assert data.artist.added == datetime(2021, 8, 21, 15, 35, 54, 398878) + assert data.artist.added == datetime(2021, 8, 21, 15, 35, 54, 398878, tzinfo=UTC) assert isinstance(data.artist.ratings.votes, int) assert isinstance(data.artist.ratings.value, float) assert isinstance(data.artist.statistics.albumCount, int) @@ -289,7 +296,7 @@ async def test_async_get_artists( assert data.nextAlbum.title == "string" assert data.nextAlbum.overview == "string" assert data.nextAlbum.disambiguation == "string" - assert data.nextAlbum.releaseDate == datetime(2011, 8, 23, 0, 0) + assert data.nextAlbum.releaseDate == datetime(2011, 8, 23, 0, 0, tzinfo=UTC) assert data.nextAlbum.images[0].url == "string" assert data.nextAlbum.images[0].coverType == ImageType.POSTER.value assert data.nextAlbum.images[0].extension == "string" @@ -305,8 +312,10 @@ async def test_async_get_artists( assert isinstance(data.nextAlbum.profileId, int) assert data.nextAlbum.monitored is True assert data.nextAlbum.anyReleaseOk is True - assert data.nextAlbum.lastInfoSync == datetime(2020, 12, 27, 10, 52, 27, 220039) - assert data.nextAlbum.added == datetime(1, 1, 1, 0, 0) + assert data.nextAlbum.lastInfoSync == datetime( + 2020, 12, 27, 10, 52, 27, 220039, tzinfo=UTC + ) + assert data.nextAlbum.added == datetime(1, 1, 1, 0, 0, tzinfo=UTC) assert data.nextAlbum.addOptions.addType == AddTypes.AUTOMATIC.value assert data.nextAlbum.artistMetadata.isLoaded is False assert data.nextAlbum.albumReleases.isLoaded is False @@ -318,7 +327,7 @@ async def test_async_get_artists( assert data.lastAlbum.title == "string" assert data.lastAlbum.overview == "string" assert data.lastAlbum.disambiguation == "string" - assert data.lastAlbum.releaseDate == datetime(2010, 8, 23, 0, 0) + assert data.lastAlbum.releaseDate == datetime(2010, 8, 23, 0, 0, tzinfo=UTC) assert data.lastAlbum.images[0].url == "string" assert data.lastAlbum.images[0].coverType == ImageType.POSTER.value assert data.lastAlbum.images[0].extension == "string" @@ -334,8 +343,10 @@ async def test_async_get_artists( assert isinstance(data.lastAlbum.profileId, int) assert data.lastAlbum.monitored is True assert data.lastAlbum.anyReleaseOk is True - assert data.lastAlbum.lastInfoSync == datetime(2021, 12, 27, 10, 52, 27, 220039) - assert data.lastAlbum.added == datetime(1, 1, 1, 0, 0) + assert data.lastAlbum.lastInfoSync == datetime( + 2021, 12, 27, 10, 52, 27, 220039, tzinfo=UTC + ) + assert data.lastAlbum.added == datetime(1, 1, 1, 0, 0, tzinfo=UTC) assert data.lastAlbum.addOptions.addType == AddTypes.AUTOMATIC.value assert data.lastAlbum.artistMetadata.isLoaded is False assert data.lastAlbum.albumReleases.isLoaded is False @@ -353,7 +364,7 @@ async def test_async_get_artists( assert data.cleanName == "string" assert data.sortName == "string" assert isinstance(data.tags[0], int) - assert data.added == datetime(2021, 8, 21, 15, 35, 54, 398878) + assert data.added == datetime(2021, 8, 21, 15, 35, 54, 398878, tzinfo=UTC) assert isinstance(data.ratings.votes, int) assert isinstance(data.ratings.value, float) assert isinstance(data.statistics.albumCount, int) @@ -501,7 +512,7 @@ async def test_async_album_lookup( assert isinstance(data[0].mediumCount, int) assert isinstance(data[0].ratings.votes, int) assert isinstance(data[0].ratings.value, float) - assert data[0].releaseDate == datetime(2018, 3, 9, 0, 0) + assert data[0].releaseDate == datetime(2018, 3, 9, 0, 0, tzinfo=UTC) assert isinstance(data[0].releases[0].id, int) assert isinstance(data[0].releases[0].albumId, int) assert data[0].releases[0].foreignReleaseId == "string" @@ -544,7 +555,7 @@ async def test_async_album_lookup( assert data[0].artist.cleanName == "string" assert data[0].artist.sortName == "string" assert isinstance(data[0].artist.tags[0], int) - assert data[0].artist.added == datetime(2021, 8, 21, 15, 36, 8, 777408) + assert data[0].artist.added == datetime(2021, 8, 21, 15, 36, 8, 777408, tzinfo=UTC) assert isinstance(data[0].artist.ratings.votes, int) assert isinstance(data[0].artist.ratings.value, float) assert isinstance(data[0].artist.statistics.albumCount, int) @@ -592,7 +603,7 @@ async def test_async_get_blocklist( assert isinstance(data.records[0].quality.revision.version, int) assert isinstance(data.records[0].quality.revision.real, int) assert data.records[0].quality.revision.isRepack is False - assert data.records[0].date == datetime(2020, 2, 15, 19, 24, 28, 476060) + assert data.records[0].date == datetime(2020, 2, 15, 19, 24, 28, 476060, tzinfo=UTC) assert data.records[0].protocol is ProtocolType.UNKNOWN assert data.records[0].indexer == "string" assert data.records[0].message == "string" @@ -618,7 +629,9 @@ async def test_async_get_blocklist( assert data.records[0].artist.cleanName == "string" assert data.records[0].artist.sortName == "string" assert isinstance(data.records[0].artist.tags[0], int) - assert data.records[0].artist.added == datetime(2021, 8, 21, 15, 35, 54, 398878) + assert data.records[0].artist.added == datetime( + 2021, 8, 21, 15, 35, 54, 398878, tzinfo=UTC + ) assert isinstance(data.records[0].artist.ratings.votes, int) assert isinstance(data.records[0].artist.ratings.value, float) assert isinstance(data.records[0].artist.statistics.albumCount, int) @@ -665,7 +678,7 @@ async def test_async_get_calendar( assert isinstance(data[0].mediumCount, int) assert isinstance(data[0].ratings.votes, int) assert isinstance(data[0].ratings.value, float) - assert data[0].releaseDate == datetime(2020, 2, 14, 0, 0) + assert data[0].releaseDate == datetime(2020, 2, 14, 0, 0, tzinfo=UTC) assert isinstance(data[0].releases[0].id, int) assert isinstance(data[0].releases[0].albumId, int) assert data[0].releases[0].foreignReleaseId == "string" @@ -708,7 +721,7 @@ async def test_async_get_calendar( assert data[0].artist.cleanName == "string" assert data[0].artist.sortName == "string" assert isinstance(data[0].artist.tags[0], int) - assert data[0].artist.added == datetime(2021, 8, 21, 15, 37, 39, 225947) + assert data[0].artist.added == datetime(2021, 8, 21, 15, 37, 39, 225947, tzinfo=UTC) assert isinstance(data[0].artist.ratings.votes, int) assert isinstance(data[0].artist.ratings.value, float) assert isinstance(data[0].artist.statistics.albumCount, int) @@ -854,7 +867,7 @@ async def test_async_get_wanted( assert isinstance(data.mediumCount, int) assert isinstance(data.ratings.votes, int) assert isinstance(data.ratings.value, float) - assert data.releaseDate == datetime(2010, 8, 23, 0, 0) + assert data.releaseDate == datetime(2010, 8, 23, 0, 0, tzinfo=UTC) assert isinstance(data.releases[0].id, int) assert isinstance(data.releases[0].albumId, int) assert data.releases[0].foreignReleaseId == "string" @@ -897,7 +910,7 @@ async def test_async_get_wanted( assert data.artist.cleanName == "string" assert data.artist.sortName == "string" assert isinstance(data.artist.tags[0], int) - assert data.artist.added == datetime(2021, 8, 21, 15, 35, 54, 398878) + assert data.artist.added == datetime(2021, 8, 21, 15, 35, 54, 398878, tzinfo=UTC) assert isinstance(data.artist.ratings.votes, int) assert isinstance(data.artist.ratings.value, float) assert isinstance(data.artist.statistics.albumCount, int) @@ -1185,7 +1198,7 @@ async def test_async_get_history( assert isinstance(data.records[0].quality.revision.real, int) assert data.records[0].quality.revision.isRepack is False assert data.records[0].qualityCutoffNotMet is False - assert data.records[0].date == datetime(2020, 2, 16, 14, 3, 43, 622491) + assert data.records[0].date == datetime(2020, 2, 16, 14, 3, 43, 622491, tzinfo=UTC) assert data.records[0].downloadId == "string" assert data.records[0].eventType == LidarrEventType.GRABBED.name.lower() assert data.records[0].data.indexer == "string" @@ -1194,7 +1207,9 @@ async def test_async_get_history( assert isinstance(data.records[0].data.age, int) assert isinstance(data.records[0].data.ageHours, float) assert isinstance(data.records[0].data.ageMinutes, float) - assert data.records[0].data.publishedDate == datetime(2020, 2, 16, 6, 11) + assert data.records[0].data.publishedDate == datetime( + 2020, 2, 16, 6, 11, tzinfo=UTC + ) assert data.records[0].data.downloadClient == "string" assert isinstance(data.records[0].data.size, int) assert data.records[0].data.downloadUrl == "string" @@ -1218,7 +1233,7 @@ async def test_async_get_history( assert isinstance(_value.mediumCount, int) assert isinstance(_value.ratings.votes, int) assert isinstance(_value.ratings.value, float) - assert _value.releaseDate == datetime(2015, 11, 13, 0, 0) + assert _value.releaseDate == datetime(2015, 11, 13, 0, 0, tzinfo=UTC) assert isinstance(_value.releases[0].id, int) assert isinstance(_value.releases[0].albumId, int) assert _value.releases[0].foreignReleaseId == "string" @@ -1262,7 +1277,7 @@ async def test_async_get_history( assert _valu.cleanName == "string" assert _valu.sortName == "string" assert isinstance(_valu.tags[0], int) - assert _valu.added == datetime(2021, 8, 21, 15, 56, 31, 922597) + assert _valu.added == datetime(2021, 8, 21, 15, 56, 31, 922597, tzinfo=UTC) assert isinstance(_valu.ratings.votes, int) assert isinstance(_valu.ratings.value, float) assert isinstance(_valu.statistics.albumCount, int) @@ -1299,7 +1314,9 @@ async def test_async_get_history( assert data.records[0].artist.cleanName == "string" assert data.records[0].artist.sortName == "string" assert isinstance(data.records[0].artist.tags[0], int) - assert data.records[0].artist.added == datetime(2021, 8, 21, 15, 56, 31, 922597) + assert data.records[0].artist.added == datetime( + 2021, 8, 21, 15, 56, 31, 922597, tzinfo=UTC + ) assert isinstance(data.records[0].artist.ratings.votes, int) assert isinstance(data.records[0].artist.ratings.value, float) assert isinstance(data.records[0].artist.statistics.albumCount, int) @@ -1475,7 +1492,7 @@ async def test_async_get_queue(aresponses: Server, lidarr_client: LidarrClient) assert _value.artist.cleanName == "string" assert _value.artist.sortName == "string" assert isinstance(_value.artist.tags[0], int) - assert _value.artist.added == datetime(2021, 8, 21, 15, 38, 22, 723851) + assert _value.artist.added == datetime(2021, 8, 21, 15, 38, 22, 723851, tzinfo=UTC) assert isinstance(_value.artist.ratings.votes, int) assert isinstance(_value.artist.ratings.value, float) assert isinstance(_value.artist.statistics.albumCount, int) @@ -1493,7 +1510,9 @@ async def test_async_get_queue(aresponses: Server, lidarr_client: LidarrClient) assert _value.title == "string" assert _value.sizeleft > 0 assert _value.timeleft == "00:00:00" - assert _value.estimatedCompletionTime == datetime(2020, 2, 16, 23, 34, 44, 885649) + assert _value.estimatedCompletionTime == datetime( + 2020, 2, 16, 23, 34, 44, 885649, tzinfo=UTC + ) assert _value.status == "string" assert _value.trackedDownloadStatus == "string" assert _value.trackedDownloadState == "stopped" @@ -1592,7 +1611,7 @@ async def test_async_get_queue_details( assert data[0].artist.cleanName == "string" assert data[0].artist.sortName == "string" assert isinstance(data[0].artist.tags[0], int) - assert data[0].artist.added == datetime(2021, 8, 21, 15, 56, 31, 922597) + assert data[0].artist.added == datetime(2021, 8, 21, 15, 56, 31, 922597, tzinfo=UTC) assert isinstance(data[0].artist.ratings.votes, int) assert isinstance(data[0].artist.ratings.value, float) assert isinstance(data[0].artist.statistics.albumCount, int) @@ -1617,7 +1636,7 @@ async def test_async_get_queue_details( assert isinstance(data[0].album.mediumCount, int) assert isinstance(data[0].album.ratings.votes, int) assert isinstance(data[0].album.ratings.value, float) - assert data[0].album.releaseDate == datetime(2010, 11, 12, 0, 0) + assert data[0].album.releaseDate == datetime(2010, 11, 12, 0, 0, tzinfo=UTC) assert isinstance(data[0].album.releases[0].id, int) assert isinstance(data[0].album.releases[0].albumId, int) assert data[0].album.releases[0].foreignReleaseId == "string" @@ -1660,7 +1679,9 @@ async def test_async_get_queue_details( assert data[0].album.artist.cleanName == "string" assert data[0].album.artist.sortName == "string" assert isinstance(data[0].album.artist.tags[0], int) - assert data[0].album.artist.added == datetime(2021, 8, 21, 15, 56, 31, 922597) + assert data[0].album.artist.added == datetime( + 2021, 8, 21, 15, 56, 31, 922597, tzinfo=UTC + ) assert isinstance(data[0].album.artist.ratings.votes, int) assert isinstance(data[0].album.artist.ratings.value, float) assert isinstance(data[0].album.artist.statistics.albumCount, int) @@ -1684,7 +1705,9 @@ async def test_async_get_queue_details( assert data[0].title == "string" assert data[0].sizeleft == 0 assert data[0].timeleft == "00:00:00" - assert data[0].estimatedCompletionTime == datetime(2020, 2, 16, 23, 49, 45, 143727) + assert data[0].estimatedCompletionTime == datetime( + 2020, 2, 16, 23, 49, 45, 143727, tzinfo=UTC + ) assert data[0].status == "string" assert data[0].trackedDownloadStatus == "string" assert data[0].trackedDownloadState == "string" @@ -1752,7 +1775,7 @@ async def test_async_get_release( assert data[0].rejected is True assert data[0].rejections[0].reason == "string" assert data[0].rejections[0].type == "permanent" - assert data[0].publishDate == datetime(2020, 2, 16, 20, 8, 16) + assert data[0].publishDate == datetime(2020, 2, 16, 20, 8, 16, tzinfo=UTC) assert data[0].commentUrl == "string" assert data[0].downloadUrl == "string" assert data[0].infoHash == "string" @@ -1902,7 +1925,7 @@ async def test_async_get_manual_import( assert data[0].artist.cleanName == "string" assert data[0].artist.sortName == "string" assert isinstance(data[0].artist.tags[0], int) - assert data[0].artist.added == datetime(2020, 2, 20, 14, 6, 21, 541356) + assert data[0].artist.added == datetime(2020, 2, 20, 14, 6, 21, 541356, tzinfo=UTC) assert isinstance(data[0].artist.ratings.votes, int) assert isinstance(data[0].artist.ratings.value, float) assert isinstance(data[0].artist.statistics.albumCount, int) @@ -1927,7 +1950,7 @@ async def test_async_get_manual_import( assert isinstance(data[0].album.mediumCount, int) assert isinstance(data[0].album.ratings.votes, int) assert isinstance(data[0].album.ratings.value, float) - assert data[0].album.releaseDate == datetime(2019, 7, 25, 0, 0) + assert data[0].album.releaseDate == datetime(2019, 7, 25, 0, 0, tzinfo=UTC) assert isinstance(data[0].album.releases[0].id, int) assert isinstance(data[0].album.releases[0].albumId, int) assert data[0].album.releases[0].foreignReleaseId == "string" @@ -1970,7 +1993,9 @@ async def test_async_get_manual_import( assert data[0].album.artist.cleanName == "string" assert data[0].album.artist.sortName == "string" assert isinstance(data[0].album.artist.tags[0], int) - assert data[0].album.artist.added == datetime(2020, 2, 20, 14, 6, 21, 541356) + assert data[0].album.artist.added == datetime( + 2020, 2, 20, 14, 6, 21, 541356, tzinfo=UTC + ) assert isinstance(data[0].album.artist.ratings.votes, int) assert isinstance(data[0].album.artist.ratings.value, float) assert isinstance(data[0].album.artist.statistics.albumCount, int) @@ -2118,7 +2143,7 @@ async def test_async_search(aresponses: Server, lidarr_client: LidarrClient) -> assert data[0].artist.cleanName == "string" assert data[0].artist.sortName == "string" assert isinstance(data[0].artist.tags[0], int) - assert data[0].artist.added == datetime(2021, 8, 21, 15, 35, 54, 398878) + assert data[0].artist.added == datetime(2021, 8, 21, 15, 35, 54, 398878, tzinfo=UTC) assert isinstance(data[0].artist.ratings.votes, int) assert isinstance(data[0].artist.ratings.value, float) assert isinstance(data[0].artist.statistics.albumCount, int) @@ -2248,7 +2273,7 @@ async def test_async_get_tracks( assert data.artist.cleanName == "string" assert data.artist.sortName == "string" assert isinstance(data.artist.tags[0], int) - assert data.artist.added == datetime(2021, 8, 21, 15, 35, 54, 398878) + assert data.artist.added == datetime(2021, 8, 21, 15, 35, 54, 398878, tzinfo=UTC) assert isinstance(data.artist.ratings.votes, int) assert isinstance(data.artist.ratings.value, float) assert isinstance(data.artist.statistics.albumCount, int) @@ -2286,7 +2311,7 @@ async def test_async_get_track_files( assert isinstance(data[0].albumId, int) assert data[0].path == "string" assert isinstance(data[0].size, int) - assert data[0].dateAdded == datetime(2021, 8, 21, 16, 0, 22, 10803) + assert data[0].dateAdded == datetime(2021, 8, 21, 16, 0, 22, 10803, tzinfo=UTC) assert isinstance(data[0].quality.quality.id, int) assert data[0].quality.quality.name == "string" assert isinstance(data[0].quality.revision.version, int) @@ -2317,7 +2342,7 @@ async def test_async_get_track_files( assert isinstance(data.albumId, int) assert data.path == "string" assert isinstance(data.size, int) - assert data.dateAdded == datetime(2021, 8, 21, 16, 0, 17, 930148) + assert data.dateAdded == datetime(2021, 8, 21, 16, 0, 17, 930148, tzinfo=UTC) assert isinstance(data.quality.quality.id, int) assert data.quality.quality.name == "string" assert isinstance(data.quality.revision.version, int) diff --git a/tests/test_radarr.py b/tests/test_radarr.py index 5bbace5..78066e7 100644 --- a/tests/test_radarr.py +++ b/tests/test_radarr.py @@ -3,11 +3,17 @@ # pylint:disable=line-too-long, too-many-lines, too-many-statements from datetime import date, datetime +try: + from datetime import UTC +except ImportError: + from datetime import timezone + + UTC = timezone.utc + from aresponses.main import ResponsesMockServer as Server import pytest from aiopyarr.exceptions import ArrException -from aiopyarr.models.base import get_date from aiopyarr.models.const import ProtocolType from aiopyarr.models.radarr import ( RadarrCommands, @@ -56,7 +62,7 @@ async def test_async_get_blocklist( assert isinstance(data.totalRecords, int) assert isinstance(data.records[0].movieId, int) assert data.records[0].sourceTitle == "string" - assert data.records[0].date == datetime(2021, 9, 19, 14, 24, 13) + assert data.records[0].date == datetime(2021, 9, 19, 14, 24, 13, tzinfo=UTC) assert isinstance(data.records[0].id, int) assert data.records[0].indexer == "string" assert data.records[0].protocol is ProtocolType.UNKNOWN @@ -136,7 +142,7 @@ async def test_async_get_blocklist_movie( assert spec.fields[0].value == "string" assert spec.fields[0].type == "string" assert spec.fields[0].advanced is True - assert data[0].date == datetime(2019, 4, 10, 15, 9, 11) + assert data[0].date == datetime(2019, 4, 10, 15, 9, 11, tzinfo=UTC) assert isinstance(data[0].id, int) assert data[0].indexer == "string" assert data[0].protocol is ProtocolType.UNKNOWN @@ -170,10 +176,10 @@ async def test_async_get_calendar( assert isinstance(data[0].sizeOnDisk, int) assert data[0].status == "string" assert data[0].overview == "string" - assert data[0].physicalRelease == date(2021, 12, 3) - assert data[0].digitalRelease == date(2020, 8, 11) - assert data[0].releaseDateType(date(2021, 1, 12)) == ( - date(2020, 8, 11), + assert data[0].physicalRelease == datetime(2021, 12, 3, 0, 0, tzinfo=UTC) + assert data[0].digitalRelease == datetime(2020, 8, 11, tzinfo=UTC) + assert data[0].releaseDateType(datetime(2021, 1, 12, tzinfo=UTC)) == ( + datetime(2020, 8, 11, tzinfo=UTC), "digitalRelease", ) assert data[0].images[0].coverType == ImageType.POSTER.value @@ -196,7 +202,7 @@ async def test_async_get_calendar( assert isinstance(data[0].titleSlug, int) assert data[0].genres == ["string"] assert data[0].tags == [] - assert data[0].added == datetime(2020, 7, 16, 13, 25, 37) + assert data[0].added == datetime(2020, 7, 16, 13, 25, 37, tzinfo=UTC) assert isinstance(data[0].ratings.imdb.votes, int) assert isinstance(data[0].ratings.imdb.value, float) assert data[0].ratings.imdb.type == "string" @@ -213,7 +219,7 @@ async def test_async_get_calendar( assert data[0].movieFile.relativePath == "string" assert data[0].movieFile.path == "string" assert isinstance(data[0].movieFile.size, int) - assert data[0].movieFile.dateAdded == datetime(2021, 6, 1, 4, 8, 20) + assert data[0].movieFile.dateAdded == datetime(2021, 6, 1, 4, 8, 20, tzinfo=UTC) assert data[0].movieFile.sceneName == "string" assert isinstance(data[0].movieFile.indexerFlags, int) assert isinstance(data[0].movieFile.quality.quality.id, int) @@ -328,7 +334,7 @@ async def test_async_get_history( assert spec.fields[0].type == "string" assert spec.fields[0].advanced is True assert data.records[0].qualityCutoffNotMet is True - assert data.records[0].date == datetime(2020, 2, 20, 21, 34, 52) + assert data.records[0].date == datetime(2020, 2, 20, 21, 34, 52, tzinfo=UTC) assert data.records[0].downloadId == "string" assert data.records[0].eventType == RadarrEventType.GRABBED.name.lower() assert isinstance(data.records[0].data.fileId, int) @@ -446,11 +452,11 @@ async def test_async_get_import_list_movies( assert data[0].sortTitle == "string" assert data[0].status == "released" assert data[0].overview == "string" - assert data[0].inCinemas == date(2018, 3, 9) - assert data[0].physicalRelease == date(2018, 6, 10) - assert data[0].digitalRelease == date(2018, 5, 25) - assert data[0].releaseDateType(date(2018, 6, 10)) == ( - date(2018, 6, 10), + assert data[0].inCinemas == datetime(2018, 3, 9, tzinfo=UTC) + assert data[0].physicalRelease == datetime(2018, 6, 10, tzinfo=UTC) + assert data[0].digitalRelease == datetime(2018, 5, 25, tzinfo=UTC) + assert data[0].releaseDateType(datetime(2018, 6, 10, tzinfo=UTC)) == ( + datetime(2018, 6, 10, tzinfo=UTC), "physicalRelease", ) assert data[0].images[0].coverType == ImageType.POSTER.value @@ -683,10 +689,10 @@ async def test_async_get_movie(aresponses: Server, radarr_client: RadarrClient) assert data.sortTitle == "string" assert isinstance(data.sizeOnDisk, int) assert data.overview == "string" - assert data.inCinemas == date(2020, 11, 6) - assert data.physicalRelease == date(2019, 3, 19) - assert data.releaseDateType(date(2019, 1, 1)) == ( - date(2019, 3, 19), + assert data.inCinemas == datetime(2020, 11, 6, tzinfo=UTC) + assert data.physicalRelease == datetime(2019, 3, 19, tzinfo=UTC) + assert data.releaseDateType(datetime(2019, 1, 1, tzinfo=UTC)) == ( + datetime(2019, 3, 19, tzinfo=UTC), "physicalRelease", ) assert data.images[0].coverType == ImageType.POSTER.value @@ -712,7 +718,7 @@ async def test_async_get_movie(aresponses: Server, radarr_client: RadarrClient) assert data.certification == "string" assert data.genres == ["string"] assert isinstance(data.tags[0], int) - assert data.added == datetime(2018, 12, 28, 5, 56, 49) + assert data.added == datetime(2018, 12, 28, 5, 56, 49, tzinfo=UTC) assert isinstance(data.ratings.imdb.votes, int) assert isinstance(data.ratings.imdb.value, float) assert data.ratings.imdb.type == "string" @@ -729,7 +735,7 @@ async def test_async_get_movie(aresponses: Server, radarr_client: RadarrClient) assert data.movieFile.relativePath == "string" assert data.movieFile.path == "string" assert isinstance(data.movieFile.size, int) - assert data.movieFile.dateAdded == datetime(2020, 11, 26, 2, 0, 35) + assert data.movieFile.dateAdded == datetime(2020, 11, 26, 2, 0, 35, tzinfo=UTC) assert data.movieFile.indexerFlags == 1 assert isinstance(data.movieFile.quality.quality.id, int) assert data.movieFile.quality.quality.name == "string" @@ -831,7 +837,7 @@ async def test_async_lookup_movie_files( assert data.relativePath == "string" assert data.path == "string" assert isinstance(data.size, int) - assert data.dateAdded == datetime(2018, 12, 28, 6, 35, 27) + assert data.dateAdded == datetime(2018, 12, 28, 6, 35, 27, tzinfo=UTC) assert isinstance(data.indexerFlags, int) assert isinstance(data.quality.quality.id, int) assert data.quality.quality.name == "string" @@ -980,7 +986,9 @@ async def test_async_get_queue(aresponses: Server, radarr_client: RadarrClient) assert data.records[0].title == "string" assert data.records[0].sizeleft > 0 assert data.records[0].timeleft == "00:00:20" - assert data.records[0].estimatedCompletionTime == datetime(2020, 1, 21, 0, 1, 59) + assert data.records[0].estimatedCompletionTime == datetime( + 2020, 1, 21, 0, 1, 59, tzinfo=UTC + ) assert data.records[0].status == "string" assert data.records[0].trackedDownloadStatus == "string" assert data.records[0].trackedDownloadState == "downloading" @@ -1107,7 +1115,9 @@ async def test_async_get_queue_details( assert data[0].title == "string" assert data[0].sizeleft == 0 assert data[0].timeleft == "string" - assert data[0].estimatedCompletionTime == datetime(2020, 1, 21, 0, 1, 59) + assert data[0].estimatedCompletionTime == datetime( + 2020, 1, 21, 0, 1, 59, tzinfo=UTC + ) assert data[0].status == "string" assert data[0].trackedDownloadStatus == "string" assert data[0].trackedDownloadState == "string" @@ -1205,10 +1215,13 @@ async def test_async_parse(aresponses: Server, radarr_client: RadarrClient) -> N assert isinstance(data.movie.sizeOnDisk, int) assert data.movie.status == "string" assert data.movie.overview == "string" - assert data.movie.inCinemas == date(2000, 4, 25) - assert data.movie.physicalRelease == date(2000, 7, 8) - assert data.movie.digitalRelease == date(2000, 2, 1) - assert data.movie.releaseDateType() == (date(2000, 7, 8), "physicalRelease") + assert data.movie.inCinemas == datetime(2000, 4, 25, tzinfo=UTC) + assert data.movie.physicalRelease == datetime(2000, 7, 8, tzinfo=UTC) + assert data.movie.digitalRelease == datetime(2000, 2, 1, tzinfo=UTC) + assert data.movie.releaseDateType() == ( + datetime(2000, 7, 8, tzinfo=UTC), + "physicalRelease", + ) assert data.movie.images[0].coverType == ImageType.POSTER.value assert data.movie.images[0].url == "string" assert data.movie.website == "string" @@ -1230,7 +1243,7 @@ async def test_async_parse(aresponses: Server, radarr_client: RadarrClient) -> N assert data.movie.certification == "string" assert data.movie.genres == ["string"] assert isinstance(data.movie.tags[0], int) - assert data.movie.added == datetime(2020, 11, 28, 6, 34, 25) + assert data.movie.added == datetime(2020, 11, 28, 6, 34, 25, tzinfo=UTC) assert isinstance(data.movie.ratings.imdb.votes, int) assert isinstance(data.movie.ratings.imdb.value, float) assert data.movie.ratings.imdb.type == "string" @@ -1247,7 +1260,9 @@ async def test_async_parse(aresponses: Server, radarr_client: RadarrClient) -> N assert data.movie.movieFile.relativePath == "string" assert data.movie.movieFile.path == "string" assert isinstance(data.movie.movieFile.size, int) - assert data.movie.movieFile.dateAdded == datetime(2020, 2, 23, 12, 0, 46) + assert data.movie.movieFile.dateAdded == datetime( + 2020, 2, 23, 12, 0, 46, tzinfo=UTC + ) assert isinstance(data.movie.movieFile.indexerFlags, int) assert isinstance(data.movie.movieFile.quality.quality.id, int) assert data.movie.movieFile.quality.quality.name == "string" @@ -1339,7 +1354,7 @@ async def test_async_get_release( assert isinstance(data[0].imdbId, int) assert data[0].rejections[0].reason == "string" assert data[0].rejections[0].type == "permanent" - assert data[0].publishDate == datetime(2022, 1, 7, 4, 20, 36) + assert data[0].publishDate == datetime(2022, 1, 7, 4, 20, 36, tzinfo=UTC) assert data[0].commentUrl == "string" assert data[0].downloadUrl == "string" assert data[0].infoUrl == "string" @@ -1435,7 +1450,7 @@ async def test_async_get_manual_import( assert isinstance(data[0].movie.sizeOnDisk, int) assert data[0].movie.status == "released" assert data[0].movie.overview == "string" - assert data[0].movie.inCinemas == date(2010, 5, 20) + assert data[0].movie.inCinemas == datetime(2010, 5, 20, tzinfo=UTC) assert data[0].movie.images[0].coverType == "string" assert data[0].movie.images[0].url == "string" assert data[0].movie.website == "string" @@ -1457,7 +1472,7 @@ async def test_async_get_manual_import( assert data[0].movie.certification == "string" assert data[0].movie.genres == ["string"] assert isinstance(data[0].movie.tags[0], int) - assert data[0].movie.added == datetime(2019, 5, 31, 5, 1, 52) + assert data[0].movie.added == datetime(2019, 5, 31, 5, 1, 52, tzinfo=UTC) assert isinstance(data[0].movie.ratings.imdb.votes, int) assert isinstance(data[0].movie.ratings.imdb.value, int) assert data[0].movie.ratings.imdb.type == "user" @@ -2028,8 +2043,3 @@ async def test_not_implemented(radarr_client: RadarrClient) -> None: with pytest.raises(NotImplementedError): await radarr_client.async_delete_metadata_profile(0) - - -def test_get_date_returns() -> None: - """Test get date function returns with no date.""" - assert get_date(True) is None diff --git a/tests/test_readarr.py b/tests/test_readarr.py index 77adfa5..e086b1a 100644 --- a/tests/test_readarr.py +++ b/tests/test_readarr.py @@ -2,6 +2,13 @@ # pylint:disable=line-too-long, too-many-lines, too-many-statements from datetime import datetime + +try: + from datetime import UTC +except ImportError: + from datetime import timezone + + UTC = timezone.utc import json from aresponses.main import ResponsesMockServer as Server @@ -86,7 +93,9 @@ async def test_async_get_authors( assert data.nextBook.foreignBookId == "string" assert isinstance(data.nextBook.titleSlug, int) assert data.nextBook.title == "string" - assert data.nextBook.releaseDate == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert data.nextBook.releaseDate == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) assert data.nextBook.links[0].url == "string" assert data.nextBook.links[0].name == "string" assert data.nextBook.genres[0] == "string" @@ -96,8 +105,10 @@ async def test_async_get_authors( assert data.nextBook.cleanTitle == "string" assert data.nextBook.monitored is True assert data.nextBook.anyEditionOk is True - assert data.nextBook.lastInfoSync == datetime(2021, 12, 6, 22, 12, 47, 67000) - assert data.nextBook.added == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert data.nextBook.lastInfoSync == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) + assert data.nextBook.added == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert data.nextBook.addOptions.addType == AddTypes.AUTOMATIC.value assert data.nextBook.addOptions.searchForNewBook is True _value = data.nextBook.authorMetadata.value @@ -113,8 +124,8 @@ async def test_async_get_authors( assert _value.disambiguation == "string" assert _value.gender == "string" assert _value.hometown == "string" - assert _value.born == datetime(2021, 12, 6, 22, 12, 47, 67000) - assert _value.died == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.born == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) + assert _value.died == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert _value.status == "string" assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value @@ -131,10 +142,10 @@ async def test_async_get_authors( assert isinstance(_value.authorMetadataId, int) assert _value.cleanName == "string" assert _value.monitored is True - assert _value.lastInfoSync == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.lastInfoSync == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert _value.path == "string" assert _value.rootFolderPath == "string" - assert _value.added == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.added == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert isinstance(_value.qualityProfileId, int) assert isinstance(_value.metadataProfileId, int) assert isinstance(_value.tags[0], int) @@ -154,8 +165,12 @@ async def test_async_get_authors( assert _value.metadata.value.disambiguation == "string" assert _value.metadata.value.gender == "string" assert _value.metadata.value.hometown == "string" - assert _value.metadata.value.born == datetime(2021, 12, 6, 22, 12, 47, 67000) - assert _value.metadata.value.died == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.metadata.value.born == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) + assert _value.metadata.value.died == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) assert _value.metadata.value.status == "string" assert _value.metadata.value.images[0].url == "string" assert _value.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -186,8 +201,12 @@ async def test_async_get_authors( assert _value.metadata.value.disambiguation == "string" assert _value.metadata.value.gender == "string" assert _value.metadata.value.hometown == "string" - assert _value.metadata.value.born == datetime(2021, 12, 6, 22, 12, 47, 67000) - assert _value.metadata.value.died == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.metadata.value.born == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) + assert _value.metadata.value.died == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) assert _value.metadata.value.status == "string" assert _value.metadata.value.images[0].url == "string" assert _value.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -252,7 +271,7 @@ async def test_async_get_authors( assert _value.disambiguation == "string" assert _value.publisher == "string" assert isinstance(_value.pageCount, int) - assert _value.releaseDate == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.releaseDate == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value assert _value.images[0].extension == "string" @@ -268,8 +287,8 @@ async def test_async_get_authors( assert isinstance(_value.id, int) assert _value.path == "string" assert isinstance(_value.size, int) - assert _value.modified == datetime(2021, 12, 6, 22, 12, 47, 67000) - assert _value.dateAdded == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.modified == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) + assert _value.dateAdded == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert _value.sceneName == "string" assert _value.releaseGroup == "string" assert isinstance(_value.quality.quality.id, int) @@ -289,10 +308,14 @@ async def test_async_get_authors( assert isinstance(_value.author.value.authorMetadataId, int) assert _value.author.value.cleanName == "string" assert _value.author.value.monitored is True - assert _value.author.value.lastInfoSync == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.author.value.lastInfoSync == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) assert _value.author.value.path == "string" assert _value.author.value.rootFolderPath == "string" - assert _value.author.value.added == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.author.value.added == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) assert isinstance(_value.author.value.qualityProfileId, int) assert isinstance(_value.author.value.metadataProfileId, int) assert isinstance(_value.author.value.tags[0], int) @@ -313,8 +336,8 @@ async def test_async_get_authors( assert _valu.disambiguation == "string" assert _valu.gender == "string" assert _valu.hometown == "string" - assert _valu.born == datetime(2021, 12, 6, 22, 12, 47, 67000) - assert _valu.died == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _valu.born == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) + assert _valu.died == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert _valu.status == "string" assert _valu.images[0].url == "string" assert _valu.images[0].coverType == ImageType.POSTER.value @@ -379,8 +402,8 @@ async def test_async_get_authors( assert isinstance(_value.id, int) assert _value.path == "string" assert isinstance(_value.size, int) - assert _value.modified == datetime(2021, 12, 6, 22, 12, 47, 67000) - assert _value.dateAdded == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.modified == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) + assert _value.dateAdded == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert _value.sceneName == "string" assert _value.releaseGroup == "string" assert isinstance(_value.quality.quality.id, int) @@ -400,10 +423,10 @@ async def test_async_get_authors( assert isinstance(_value.authorMetadataId, int) assert _value.cleanName == "string" assert _value.monitored is True - assert _value.lastInfoSync == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.lastInfoSync == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert _value.path == "string" assert _value.rootFolderPath == "string" - assert _value.added == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.added == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert isinstance(_value.qualityProfileId, int) assert isinstance(_value.metadataProfileId, int) assert isinstance(_value.tags[0], int) @@ -422,8 +445,12 @@ async def test_async_get_authors( assert _value.metadata.value.disambiguation == "string" assert _value.metadata.value.gender == "string" assert _value.metadata.value.hometown == "string" - assert _value.metadata.value.born == datetime(2021, 12, 6, 22, 12, 47, 67000) - assert _value.metadata.value.died == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.metadata.value.born == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) + assert _value.metadata.value.died == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) assert _value.metadata.value.status == "string" assert _value.metadata.value.images[0].url == "string" assert _value.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -500,7 +527,9 @@ async def test_async_get_authors( assert data.lastBook.foreignBookId == "string" assert isinstance(data.lastBook.titleSlug, int) assert data.lastBook.title == "string" - assert data.lastBook.releaseDate == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert data.lastBook.releaseDate == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) assert data.lastBook.links[0].url == "string" assert data.lastBook.links[0].name == "string" assert data.lastBook.genres[0] == "string" @@ -510,8 +539,10 @@ async def test_async_get_authors( assert data.lastBook.cleanTitle == "string" assert data.lastBook.monitored is True assert data.lastBook.anyEditionOk is True - assert data.lastBook.lastInfoSync == datetime(2021, 12, 6, 22, 12, 47, 67000) - assert data.lastBook.added == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert data.lastBook.lastInfoSync == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) + assert data.lastBook.added == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert data.lastBook.addOptions.addType == AddTypes.AUTOMATIC.value assert data.lastBook.addOptions.searchForNewBook is True _value = data.lastBook.authorMetadata.value @@ -527,8 +558,8 @@ async def test_async_get_authors( assert _value.disambiguation == "string" assert _value.gender == "string" assert _value.hometown == "string" - assert _value.born == datetime(2021, 12, 6, 22, 12, 47, 67000) - assert _value.died == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.born == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) + assert _value.died == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert _value.status == "string" assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value @@ -545,10 +576,10 @@ async def test_async_get_authors( assert isinstance(_value.authorMetadataId, int) assert _value.cleanName == "string" assert _value.monitored is True - assert _value.lastInfoSync == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.lastInfoSync == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert _value.path == "string" assert _value.rootFolderPath == "string" - assert _value.added == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.added == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert isinstance(_value.qualityProfileId, int) assert isinstance(_value.metadataProfileId, int) assert isinstance(_value.tags[0], int) @@ -568,8 +599,12 @@ async def test_async_get_authors( assert _value.metadata.value.disambiguation == "string" assert _value.metadata.value.gender == "string" assert _value.metadata.value.hometown == "string" - assert _value.metadata.value.born == datetime(2021, 12, 6, 22, 12, 47, 67000) - assert _value.metadata.value.died == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.metadata.value.born == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) + assert _value.metadata.value.died == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) assert _value.metadata.value.status == "string" assert _value.metadata.value.images[0].url == "string" assert _value.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -600,8 +635,12 @@ async def test_async_get_authors( assert _value.metadata.value.disambiguation == "string" assert _value.metadata.value.gender == "string" assert _value.metadata.value.hometown == "string" - assert _value.metadata.value.born == datetime(2021, 12, 6, 22, 12, 47, 67000) - assert _value.metadata.value.died == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.metadata.value.born == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) + assert _value.metadata.value.died == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) assert _value.metadata.value.status == "string" assert _value.metadata.value.images[0].url == "string" assert _value.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -668,7 +707,7 @@ async def test_async_get_authors( assert _value.disambiguation == "string" assert _value.publisher == "string" assert isinstance(_value.pageCount, int) - assert _value.releaseDate == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.releaseDate == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value assert _value.images[0].extension == "string" @@ -684,8 +723,8 @@ async def test_async_get_authors( assert isinstance(_value.id, int) assert _value.path == "string" assert isinstance(_value.size, int) - assert _value.modified == datetime(2021, 12, 6, 22, 12, 47, 67000) - assert _value.dateAdded == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.modified == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) + assert _value.dateAdded == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert _value.sceneName == "string" assert _value.releaseGroup == "string" assert isinstance(_value.quality.quality.id, int) @@ -705,10 +744,14 @@ async def test_async_get_authors( assert isinstance(_value.author.value.authorMetadataId, int) assert _value.author.value.cleanName == "string" assert _value.author.value.monitored is True - assert _value.author.value.lastInfoSync == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.author.value.lastInfoSync == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) assert _value.author.value.path == "string" assert _value.author.value.rootFolderPath == "string" - assert _value.author.value.added == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.author.value.added == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) assert isinstance(_value.author.value.qualityProfileId, int) assert isinstance(_value.author.value.metadataProfileId, int) assert isinstance(_value.author.value.tags[0], int) @@ -729,8 +772,8 @@ async def test_async_get_authors( assert _valu.disambiguation == "string" assert _valu.gender == "string" assert _valu.hometown == "string" - assert _valu.born == datetime(2021, 12, 6, 22, 12, 47, 67000) - assert _valu.died == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _valu.born == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) + assert _valu.died == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert _valu.status == "string" assert _valu.images[0].url == "string" assert _valu.images[0].coverType == ImageType.POSTER.value @@ -794,8 +837,8 @@ async def test_async_get_authors( assert isinstance(_value.id, int) assert _value.path == "string" assert isinstance(_value.size, int) - assert _value.modified == datetime(2021, 12, 6, 22, 12, 47, 67000) - assert _value.dateAdded == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.modified == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) + assert _value.dateAdded == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert _value.sceneName == "string" assert _value.releaseGroup == "string" assert isinstance(_value.quality.quality.id, int) @@ -814,10 +857,14 @@ async def test_async_get_authors( assert isinstance(_value.author.value.authorMetadataId, int) assert _value.author.value.cleanName == "string" assert _value.author.value.monitored is True - assert _value.author.value.lastInfoSync == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.author.value.lastInfoSync == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) assert _value.author.value.path == "string" assert _value.author.value.rootFolderPath == "string" - assert _value.author.value.added == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _value.author.value.added == datetime( + 2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC + ) assert isinstance(_value.author.value.qualityProfileId, int) assert isinstance(_value.author.value.metadataProfileId, int) assert isinstance(_value.author.value.tags[0], int) @@ -837,8 +884,8 @@ async def test_async_get_authors( assert _valu.disambiguation == "string" assert _valu.gender == "string" assert _valu.hometown == "string" - assert _valu.born == datetime(2021, 12, 6, 22, 12, 47, 67000) - assert _valu.died == datetime(2021, 12, 6, 22, 12, 47, 67000) + assert _valu.born == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) + assert _valu.died == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) assert _valu.status == "string" assert _valu.images[0].url == "string" assert _valu.images[0].coverType == ImageType.POSTER.value @@ -923,7 +970,7 @@ async def test_async_get_authors( assert data.sortName == "string" assert data.sortNameLastFirst == "string" assert isinstance(data.tags[0], int) - assert data.added == datetime(2021, 12, 6, 22, 12, 47, 68000) + assert data.added == datetime(2021, 12, 6, 22, 12, 47, 68000, tzinfo=UTC) assert data.addOptions.monitor == MonitoringOptionsType.ALL.value assert data.addOptions.booksToMonitor[0] == "string" assert data.addOptions.monitored is True @@ -981,7 +1028,7 @@ async def test_async_author_lookup( assert data[0].sortName == "string" assert data[0].sortNameLastFirst == "string" assert isinstance(data[0].tags[0], int) - assert data[0].added == datetime(2021, 12, 6, 22, 23, 55) + assert data[0].added == datetime(2021, 12, 6, 22, 23, 55, tzinfo=UTC) assert isinstance(data[0].ratings.votes, int) assert isinstance(data[0].ratings.value, float) assert isinstance(data[0].ratings.popularity, float) @@ -1027,7 +1074,7 @@ async def test_async_get_blocklist( assert isinstance(data.records[0].quality.revision.version, int) assert isinstance(data.records[0].quality.revision.real, int) assert data.records[0].quality.revision.isRepack is True - assert data.records[0].date == datetime(2021, 12, 7, 8, 55, 41, 226000) + assert data.records[0].date == datetime(2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC) assert data.records[0].protocol is ProtocolType.UNKNOWN assert data.records[0].indexer == "string" assert data.records[0].message == "string" @@ -1048,7 +1095,9 @@ async def test_async_get_blocklist( assert _author.nextBook.foreignBookId == "string" assert isinstance(_author.nextBook.titleSlug, int) assert _author.nextBook.title == "string" - assert _author.nextBook.releaseDate == datetime(2021, 12, 7, 8, 55, 41, 226000) + assert _author.nextBook.releaseDate == datetime( + 2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC + ) assert _author.nextBook.links[0].url == "string" assert _author.nextBook.links[0].name == "string" assert _author.nextBook.genres[0] == "string" @@ -1058,8 +1107,12 @@ async def test_async_get_blocklist( assert _author.nextBook.cleanTitle == "string" assert _author.nextBook.monitored is True assert _author.nextBook.anyEditionOk is True - assert _author.nextBook.lastInfoSync == datetime(2021, 12, 7, 8, 55, 41, 226000) - assert _author.nextBook.added == datetime(2021, 12, 7, 8, 55, 41, 226000) + assert _author.nextBook.lastInfoSync == datetime( + 2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC + ) + assert _author.nextBook.added == datetime( + 2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC + ) assert _author.nextBook.addOptions.addType == AddTypes.AUTOMATIC.value assert _author.nextBook.addOptions.searchForNewBook is True _value = _author.nextBook.authorMetadata.value @@ -1074,8 +1127,8 @@ async def test_async_get_blocklist( assert _value.overview == "string" assert _value.gender == "string" assert _value.hometown == "string" - assert _value.born == datetime(2021, 12, 7, 8, 55, 41, 226000) - assert _value.died == datetime(2021, 12, 7, 8, 55, 41, 226000) + assert _value.born == datetime(2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC) + assert _value.died == datetime(2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC) assert _value.status == "string" assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value @@ -1092,10 +1145,10 @@ async def test_async_get_blocklist( assert isinstance(_value.authorMetadataId, int) assert _value.cleanName == "string" assert _value.monitored is True - assert _value.lastInfoSync == datetime(2021, 12, 7, 8, 55, 41, 226000) + assert _value.lastInfoSync == datetime(2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC) assert _value.path == "string" assert _value.rootFolderPath == "string" - assert _value.added == datetime(2021, 12, 7, 8, 55, 41, 226000) + assert _value.added == datetime(2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC) assert isinstance(_value.qualityProfileId, int) assert isinstance(_value.metadataProfileId, int) assert isinstance(_value.tags[0], int) @@ -1114,8 +1167,12 @@ async def test_async_get_blocklist( assert _value.metadata.value.overview == "string" assert _value.metadata.value.gender == "string" assert _value.metadata.value.hometown == "string" - assert _value.metadata.value.born == datetime(2021, 12, 7, 8, 55, 41, 226000) - assert _value.metadata.value.died == datetime(2021, 12, 7, 8, 55, 41, 226000) + assert _value.metadata.value.born == datetime( + 2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC + ) + assert _value.metadata.value.died == datetime( + 2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC + ) assert _value.metadata.value.status == "string" assert _value.metadata.value.images[0].url == "string" assert _value.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -1145,8 +1202,12 @@ async def test_async_get_blocklist( assert _value.metadata.value.overview == "string" assert _value.metadata.value.gender == "string" assert _value.metadata.value.hometown == "string" - assert _value.metadata.value.born == datetime(2021, 12, 7, 8, 55, 41, 226000) - assert _value.metadata.value.died == datetime(2021, 12, 7, 8, 55, 41, 226000) + assert _value.metadata.value.born == datetime( + 2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC + ) + assert _value.metadata.value.died == datetime( + 2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC + ) assert _value.metadata.value.status == "string" assert _value.metadata.value.images[0].url == "string" assert _value.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -1209,7 +1270,7 @@ async def test_async_get_blocklist( assert _value.isEbook is True assert _value.publisher == "string" assert isinstance(_value.pageCount, int) - assert _value.releaseDate == datetime(2021, 12, 7, 8, 55, 41, 226000) + assert _value.releaseDate == datetime(2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC) assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value assert _value.images[0].extension == "string" @@ -1225,8 +1286,8 @@ async def test_async_get_blocklist( assert isinstance(_val.id, int) assert _val.path == "string" assert isinstance(_val.size, int) - assert _val.modified == datetime(2021, 12, 7, 8, 55, 41, 226000) - assert _val.dateAdded == datetime(2021, 12, 7, 8, 55, 41, 226000) + assert _val.modified == datetime(2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC) + assert _val.dateAdded == datetime(2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC) assert _val.sceneName == "string" assert _val.releaseGroup == "string" assert isinstance(_val.quality.quality.id, int) @@ -1246,10 +1307,14 @@ async def test_async_get_blocklist( assert isinstance(_val.author.value.authorMetadataId, int) assert _val.author.value.cleanName == "string" assert _val.author.value.monitored is True - assert _val.author.value.lastInfoSync == datetime(2021, 12, 7, 8, 55, 41, 226000) + assert _val.author.value.lastInfoSync == datetime( + 2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC + ) assert _val.author.value.path == "string" assert _val.author.value.rootFolderPath == "string" - assert _val.author.value.added == datetime(2021, 12, 7, 8, 55, 41, 226000) + assert _val.author.value.added == datetime( + 2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC + ) assert isinstance(_val.author.value.qualityProfileId, int) assert isinstance(_val.author.value.metadataProfileId, int) assert isinstance(_val.author.value.tags[0], int) @@ -1270,8 +1335,8 @@ async def test_async_get_blocklist( assert _valu.overview == "string" assert _valu.gender == "string" assert _valu.hometown == "string" - assert _valu.born == datetime(2021, 12, 7, 8, 55, 41, 226000) - assert _valu.died == datetime(2021, 12, 7, 8, 55, 41, 226000) + assert _valu.born == datetime(2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC) + assert _valu.died == datetime(2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC) assert _valu.status == "string" assert _valu.images[0].url == "string" assert _valu.images[0].coverType == ImageType.POSTER.value @@ -1335,8 +1400,8 @@ async def test_async_get_blocklist( assert isinstance(_value.id, int) assert _value.path == "string" assert isinstance(_value.size, int) - assert _value.modified == datetime(2021, 12, 7, 8, 55, 41, 227000) - assert _value.dateAdded == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _value.modified == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) + assert _value.dateAdded == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) assert _value.sceneName == "string" assert _value.releaseGroup == "string" assert isinstance(_value.quality.quality.id, int) @@ -1355,10 +1420,14 @@ async def test_async_get_blocklist( assert isinstance(_value.author.value.authorMetadataId, int) assert _value.author.value.cleanName == "string" assert _value.author.value.monitored is True - assert _value.author.value.lastInfoSync == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _value.author.value.lastInfoSync == datetime( + 2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC + ) assert _value.author.value.path == "string" assert _value.author.value.rootFolderPath == "string" - assert _value.author.value.added == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _value.author.value.added == datetime( + 2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC + ) assert isinstance(_value.author.value.qualityProfileId, int) assert isinstance(_value.author.value.metadataProfileId, int) assert isinstance(_value.author.value.tags[0], int) @@ -1377,8 +1446,8 @@ async def test_async_get_blocklist( assert _valu.overview == "string" assert _valu.gender == "string" assert _valu.hometown == "string" - assert _valu.born == datetime(2021, 12, 7, 8, 55, 41, 227000) - assert _valu.died == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _valu.born == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) + assert _valu.died == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) assert _valu.status == "string" assert _valu.images[0].url == "string" assert _valu.images[0].coverType == ImageType.POSTER.value @@ -1455,7 +1524,7 @@ async def test_async_get_blocklist( assert _value.foreignBookId == "string" assert isinstance(_value.titleSlug, int) assert _value.title == "string" - assert _value.releaseDate == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _value.releaseDate == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) assert _value.links[0].url == "string" assert _value.links[0].name == "string" assert _value.genres[0] == "string" @@ -1465,8 +1534,8 @@ async def test_async_get_blocklist( assert _value.cleanTitle == "string" assert _value.monitored is True assert _value.anyEditionOk is True - assert _value.lastInfoSync == datetime(2021, 12, 7, 8, 55, 41, 227000) - assert _value.added == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _value.lastInfoSync == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) + assert _value.added == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) assert _value.addOptions.addType == AddTypes.AUTOMATIC.value assert _value.addOptions.searchForNewBook is True _value = _value.authorMetadata.value @@ -1481,8 +1550,8 @@ async def test_async_get_blocklist( assert _value.overview == "string" assert _value.gender == "string" assert _value.hometown == "string" - assert _value.born == datetime(2021, 12, 7, 8, 55, 41, 227000) - assert _value.died == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _value.born == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) + assert _value.died == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) assert _value.status == "string" assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value @@ -1499,10 +1568,10 @@ async def test_async_get_blocklist( assert isinstance(_value.authorMetadataId, int) assert _value.cleanName == "string" assert _value.monitored is True - assert _value.lastInfoSync == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _value.lastInfoSync == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) assert _value.path == "string" assert _value.rootFolderPath == "string" - assert _value.added == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _value.added == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) assert isinstance(_value.qualityProfileId, int) assert isinstance(_value.metadataProfileId, int) assert isinstance(_value.tags[0], int) @@ -1521,8 +1590,12 @@ async def test_async_get_blocklist( assert _value.metadata.value.overview == "string" assert _value.metadata.value.gender == "string" assert _value.metadata.value.hometown == "string" - assert _value.metadata.value.born == datetime(2021, 12, 7, 8, 55, 41, 227000) - assert _value.metadata.value.died == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _value.metadata.value.born == datetime( + 2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC + ) + assert _value.metadata.value.died == datetime( + 2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC + ) assert _value.metadata.value.status == "string" assert _value.metadata.value.images[0].url == "string" assert _value.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -1552,8 +1625,12 @@ async def test_async_get_blocklist( assert _value.metadata.value.overview == "string" assert _value.metadata.value.gender == "string" assert _value.metadata.value.hometown == "string" - assert _value.metadata.value.born == datetime(2021, 12, 7, 8, 55, 41, 227000) - assert _value.metadata.value.died == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _value.metadata.value.born == datetime( + 2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC + ) + assert _value.metadata.value.died == datetime( + 2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC + ) assert _value.metadata.value.status == "string" assert _value.metadata.value.images[0].url == "string" assert _value.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -1616,7 +1693,7 @@ async def test_async_get_blocklist( assert _value.isEbook is True assert _value.publisher == "string" assert isinstance(_value.pageCount, int) - assert _value.releaseDate == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _value.releaseDate == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value assert _value.images[0].extension == "string" @@ -1632,8 +1709,8 @@ async def test_async_get_blocklist( assert isinstance(_val.id, int) assert _val.path == "string" assert isinstance(_val.size, int) - assert _val.modified == datetime(2021, 12, 7, 8, 55, 41, 227000) - assert _val.dateAdded == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _val.modified == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) + assert _val.dateAdded == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) assert _val.sceneName == "string" assert _val.releaseGroup == "string" assert isinstance(_val.quality.quality.id, int) @@ -1653,10 +1730,14 @@ async def test_async_get_blocklist( assert isinstance(_val.author.value.authorMetadataId, int) assert _val.author.value.cleanName == "string" assert _val.author.value.monitored is True - assert _val.author.value.lastInfoSync == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _val.author.value.lastInfoSync == datetime( + 2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC + ) assert _val.author.value.path == "string" assert _val.author.value.rootFolderPath == "string" - assert _val.author.value.added == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _val.author.value.added == datetime( + 2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC + ) assert isinstance(_val.author.value.qualityProfileId, int) assert isinstance(_val.author.value.metadataProfileId, int) assert isinstance(_val.author.value.tags[0], int) @@ -1676,8 +1757,8 @@ async def test_async_get_blocklist( assert _valu.overview == "string" assert _valu.gender == "string" assert _valu.hometown == "string" - assert _valu.born == datetime(2021, 12, 7, 8, 55, 41, 227000) - assert _valu.died == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _valu.born == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) + assert _valu.died == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) assert _valu.status == "string" assert _valu.images[0].url == "string" assert _valu.images[0].coverType == ImageType.POSTER.value @@ -1741,8 +1822,8 @@ async def test_async_get_blocklist( assert isinstance(_value.id, int) assert _value.path == "string" assert isinstance(_value.size, int) - assert _value.modified == datetime(2021, 12, 7, 8, 55, 41, 227000) - assert _value.dateAdded == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _value.modified == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) + assert _value.dateAdded == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) assert _value.sceneName == "string" assert _value.releaseGroup == "string" assert isinstance(_value.quality.quality.id, int) @@ -1761,10 +1842,14 @@ async def test_async_get_blocklist( assert isinstance(_value.author.value.authorMetadataId, int) assert _value.author.value.cleanName == "string" assert _value.author.value.monitored is True - assert _value.author.value.lastInfoSync == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _value.author.value.lastInfoSync == datetime( + 2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC + ) assert _value.author.value.path == "string" assert _value.author.value.rootFolderPath == "string" - assert _value.author.value.added == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _value.author.value.added == datetime( + 2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC + ) assert isinstance(_value.author.value.qualityProfileId, int) assert isinstance(_value.author.value.metadataProfileId, int) assert isinstance(_value.author.value.tags[0], int) @@ -1783,8 +1868,8 @@ async def test_async_get_blocklist( assert _valu.overview == "string" assert _valu.gender == "string" assert _valu.hometown == "string" - assert _valu.born == datetime(2021, 12, 7, 8, 55, 41, 227000) - assert _valu.died == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert _valu.born == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) + assert _valu.died == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) assert _valu.status == "string" assert _valu.images[0].url == "string" assert _valu.images[0].coverType == ImageType.POSTER.value @@ -1869,7 +1954,9 @@ async def test_async_get_blocklist( assert data.records[0].author.sortName == "string" assert data.records[0].author.sortNameLastFirst == "string" assert isinstance(data.records[0].author.tags[0], int) - assert data.records[0].author.added == datetime(2021, 12, 7, 8, 55, 41, 227000) + assert data.records[0].author.added == datetime( + 2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC + ) assert data.records[0].author.addOptions.monitor == MonitoringOptionsType.ALL.value assert data.records[0].author.addOptions.booksToMonitor[0] == "string" assert data.records[0].author.addOptions.monitored is True @@ -1916,7 +2003,7 @@ async def test_async_get_book( assert isinstance(data[0].ratings.votes, int) assert isinstance(data[0].ratings.value, float) assert isinstance(data[0].ratings.popularity, int) - assert data[0].releaseDate == datetime(2021, 12, 7, 9, 7, 35, 508000) + assert data[0].releaseDate == datetime(2021, 12, 7, 9, 7, 35, 508000, tzinfo=UTC) assert isinstance(data[0].pageCount, int) assert data[0].genres[0] == "string" assert isinstance(data[0].author.id, int) @@ -1937,7 +2024,7 @@ async def test_async_get_book( assert _book.foreignBookId == "string" assert isinstance(_book.titleSlug, int) assert _book.title == "string" - assert _book.releaseDate == datetime(2021, 12, 7, 9, 7, 35, 508000) + assert _book.releaseDate == datetime(2021, 12, 7, 9, 7, 35, 508000, tzinfo=UTC) assert _book.links[0].url == "string" assert _book.links[0].name == "string" assert _book.genres[0] == "string" @@ -1947,8 +2034,8 @@ async def test_async_get_book( assert _book.cleanTitle == "string" assert _book.monitored is True assert _book.anyEditionOk is True - assert _book.lastInfoSync == datetime(2021, 12, 7, 9, 7, 35, 508000) - assert _book.added == datetime(2021, 12, 7, 9, 7, 35, 508000) + assert _book.lastInfoSync == datetime(2021, 12, 7, 9, 7, 35, 508000, tzinfo=UTC) + assert _book.added == datetime(2021, 12, 7, 9, 7, 35, 508000, tzinfo=UTC) assert _book.addOptions.addType == AddTypes.AUTOMATIC.value assert _book.addOptions.searchForNewBook is True _value = _book.authorMetadata.value @@ -1964,8 +2051,8 @@ async def test_async_get_book( assert _value.disambiguation == "string" assert _value.gender == "string" assert _value.hometown == "string" - assert _value.born == datetime(2021, 12, 7, 9, 7, 35, 508000) - assert _value.died == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _value.born == datetime(2021, 12, 7, 9, 7, 35, 508000, tzinfo=UTC) + assert _value.died == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) assert _value.status == "string" assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value @@ -1982,10 +2069,10 @@ async def test_async_get_book( assert isinstance(_value.authorMetadataId, int) assert _value.cleanName == "string" assert _value.monitored is True - assert _value.lastInfoSync == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _value.lastInfoSync == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) assert _value.path == "string" assert _value.rootFolderPath == "string" - assert _value.added == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _value.added == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) assert isinstance(_value.qualityProfileId, int) assert isinstance(_value.metadataProfileId, int) assert isinstance(_value.tags[0], int) @@ -2005,8 +2092,12 @@ async def test_async_get_book( assert _value.metadata.value.disambiguation == "string" assert _value.metadata.value.gender == "string" assert _value.metadata.value.hometown == "string" - assert _value.metadata.value.born == datetime(2021, 12, 7, 9, 7, 35, 509000) - assert _value.metadata.value.died == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _value.metadata.value.born == datetime( + 2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC + ) + assert _value.metadata.value.died == datetime( + 2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC + ) assert _value.metadata.value.status == "string" assert _value.metadata.value.images[0].url == "string" assert _value.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -2071,7 +2162,7 @@ async def test_async_get_book( assert _value.disambiguation == "string" assert _value.publisher == "string" assert isinstance(_value.pageCount, int) - assert _value.releaseDate == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _value.releaseDate == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value assert _value.images[0].extension == "string" @@ -2087,8 +2178,8 @@ async def test_async_get_book( assert isinstance(_valu.id, int) assert _valu.path == "string" assert isinstance(_valu.size, int) - assert _valu.modified == datetime(2021, 12, 7, 9, 7, 35, 509000) - assert _valu.dateAdded == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _valu.modified == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) + assert _valu.dateAdded == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) assert _valu.sceneName == "string" assert _valu.releaseGroup == "string" assert isinstance(_valu.quality.quality.id, int) @@ -2109,10 +2200,10 @@ async def test_async_get_book( assert isinstance(_val.authorMetadataId, int) assert _val.cleanName == "string" assert _val.monitored is True - assert _val.lastInfoSync == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _val.lastInfoSync == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) assert _val.path == "string" assert _val.rootFolderPath == "string" - assert _val.added == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _val.added == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) assert isinstance(_val.qualityProfileId, int) assert isinstance(_val.metadataProfileId, int) assert isinstance(_val.tags[0], int) @@ -2132,8 +2223,12 @@ async def test_async_get_book( assert _val.metadata.value.disambiguation == "string" assert _val.metadata.value.gender == "string" assert _val.metadata.value.hometown == "string" - assert _val.metadata.value.born == datetime(2021, 12, 7, 9, 7, 35, 509000) - assert _val.metadata.value.died == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _val.metadata.value.born == datetime( + 2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC + ) + assert _val.metadata.value.died == datetime( + 2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC + ) assert _val.metadata.value.status == "string" assert _val.metadata.value.images[0].url == "string" assert _val.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -2212,7 +2307,7 @@ async def test_async_get_book( assert _book.foreignBookId == "string" assert isinstance(_book.titleSlug, int) assert _book.title == "string" - assert _book.releaseDate == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _book.releaseDate == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) assert _book.links[0].url == "string" assert _book.links[0].name == "string" assert _book.genres[0] == "string" @@ -2222,8 +2317,8 @@ async def test_async_get_book( assert _book.cleanTitle == "string" assert _book.monitored is True assert _book.anyEditionOk is True - assert _book.lastInfoSync == datetime(2021, 12, 7, 9, 7, 35, 509000) - assert _book.added == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _book.lastInfoSync == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) + assert _book.added == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) assert _book.addOptions.addType == AddTypes.AUTOMATIC.value assert _book.addOptions.searchForNewBook is True _value = _book.authorMetadata.value @@ -2239,8 +2334,8 @@ async def test_async_get_book( assert _value.disambiguation == "string" assert _value.gender == "string" assert _value.hometown == "string" - assert _value.born == datetime(2021, 12, 7, 9, 7, 35, 509000) - assert _value.died == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _value.born == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) + assert _value.died == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) assert _value.status == "string" assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value @@ -2257,10 +2352,10 @@ async def test_async_get_book( assert isinstance(_value.authorMetadataId, int) assert _value.cleanName == "string" assert _value.monitored is True - assert _value.lastInfoSync == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _value.lastInfoSync == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) assert _value.path == "string" assert _value.rootFolderPath == "string" - assert _value.added == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _value.added == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) assert isinstance(_value.qualityProfileId, int) assert isinstance(_value.metadataProfileId, int) assert isinstance(_value.tags[0], int) @@ -2280,8 +2375,12 @@ async def test_async_get_book( assert _value.metadata.value.disambiguation == "string" assert _value.metadata.value.gender == "string" assert _value.metadata.value.hometown == "string" - assert _value.metadata.value.born == datetime(2021, 12, 7, 9, 7, 35, 509000) - assert _value.metadata.value.died == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _value.metadata.value.born == datetime( + 2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC + ) + assert _value.metadata.value.died == datetime( + 2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC + ) assert _value.metadata.value.status == "string" assert _value.metadata.value.images[0].url == "string" assert _value.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -2346,7 +2445,7 @@ async def test_async_get_book( assert _value.disambiguation == "string" assert _value.publisher == "string" assert isinstance(_value.pageCount, int) - assert _value.releaseDate == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _value.releaseDate == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value assert _value.images[0].extension == "string" @@ -2362,8 +2461,8 @@ async def test_async_get_book( assert isinstance(_val.id, int) assert _val.path == "string" assert isinstance(_val.size, int) - assert _val.modified == datetime(2021, 12, 7, 9, 7, 35, 509000) - assert _val.dateAdded == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _val.modified == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) + assert _val.dateAdded == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) assert _val.sceneName == "string" assert _val.releaseGroup == "string" assert isinstance(_val.quality.quality.id, int) @@ -2383,10 +2482,14 @@ async def test_async_get_book( assert isinstance(_val.author.value.authorMetadataId, int) assert _val.author.value.cleanName == "string" assert _val.author.value.monitored is True - assert _val.author.value.lastInfoSync == datetime(2021, 12, 7, 9, 7, 35, 509000) + assert _val.author.value.lastInfoSync == datetime( + 2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC + ) assert _val.author.value.path == "string" assert _val.author.value.rootFolderPath == "string" - assert _val.author.value.added == datetime(2021, 12, 7, 9, 7, 35, 510000) + assert _val.author.value.added == datetime( + 2021, 12, 7, 9, 7, 35, 510000, tzinfo=UTC + ) assert isinstance(_val.author.value.qualityProfileId, int) assert isinstance(_val.author.value.metadataProfileId, int) assert isinstance(_val.author.value.tags[0], int) @@ -2407,8 +2510,8 @@ async def test_async_get_book( assert _valu.disambiguation == "string" assert _valu.gender == "string" assert _valu.hometown == "string" - assert _valu.born == datetime(2021, 12, 7, 9, 7, 35, 510000) - assert _valu.died == datetime(2021, 12, 7, 9, 7, 35, 510000) + assert _valu.born == datetime(2021, 12, 7, 9, 7, 35, 510000, tzinfo=UTC) + assert _valu.died == datetime(2021, 12, 7, 9, 7, 35, 510000, tzinfo=UTC) assert _valu.status == "string" assert _valu.images[0].url == "string" assert _valu.images[0].coverType == ImageType.POSTER.value @@ -2495,7 +2598,7 @@ async def test_async_get_book( assert data[0].author.sortName == "string" assert data[0].author.sortNameLastFirst == "string" assert isinstance(data[0].author.tags[0], int) - assert data[0].author.added == datetime(2021, 12, 7, 9, 7, 35, 510000) + assert data[0].author.added == datetime(2021, 12, 7, 9, 7, 35, 510000, tzinfo=UTC) assert data[0].author.addOptions.monitor == MonitoringOptionsType.ALL.value assert data[0].author.addOptions.booksToMonitor[0] == "string" assert data[0].author.addOptions.monitored is True @@ -2519,7 +2622,7 @@ async def test_async_get_book( assert isinstance(data[0].statistics.totalBookCount, int) assert isinstance(data[0].statistics.sizeOnDisk, int) assert isinstance(data[0].statistics.percentOfBooks, float) - assert data[0].added == datetime(2021, 12, 7, 9, 7, 35, 510000) + assert data[0].added == datetime(2021, 12, 7, 9, 7, 35, 510000, tzinfo=UTC) assert data[0].addOptions.addType == AddTypes.AUTOMATIC.value assert data[0].addOptions.searchForNewBook is True assert data[0].remoteCover == "string" @@ -2537,7 +2640,9 @@ async def test_async_get_book( assert data[0].editions[0].disambiguation == "string" assert data[0].editions[0].publisher == "string" assert isinstance(data[0].editions[0].pageCount, int) - assert data[0].editions[0].releaseDate == datetime(2021, 12, 7, 9, 7, 35, 510000) + assert data[0].editions[0].releaseDate == datetime( + 2021, 12, 7, 9, 7, 35, 510000, tzinfo=UTC + ) assert data[0].editions[0].images[0].url == "string" assert data[0].editions[0].images[0].coverType == ImageType.POSTER.value assert data[0].editions[0].images[0].extension == "string" @@ -2575,7 +2680,7 @@ async def test_async_get_book_file( assert isinstance(data.bookId, int) assert data.path == "string" assert isinstance(data.size, int) - assert data.dateAdded == datetime(2021, 12, 9, 20, 39, 8, 79000) + assert data.dateAdded == datetime(2021, 12, 9, 20, 39, 8, 79000, tzinfo=UTC) assert isinstance(data.quality.quality.id, int) assert data.quality.quality.name == "string" assert isinstance(data.quality.revision.version, int) @@ -2675,7 +2780,7 @@ async def test_async_book_lookup( assert isinstance(data[0].ratings.votes, int) assert isinstance(data[0].ratings.value, float) assert isinstance(data[0].ratings.popularity, float) - assert data[0].releaseDate == datetime(1869, 1, 1, 0, 0) + assert data[0].releaseDate == datetime(1869, 1, 1, 0, 0, tzinfo=UTC) assert isinstance(data[0].pageCount, int) assert data[0].genres == ["string"] assert isinstance(data[0].author.authorMetadataId, int) @@ -2699,7 +2804,7 @@ async def test_async_book_lookup( assert data[0].author.sortName == "string" assert data[0].author.sortNameLastFirst == "string" assert isinstance(data[0].author.tags[0], int) - assert data[0].author.added == datetime(1, 1, 1, 4, 57) + assert data[0].author.added == datetime(1, 1, 1, 4, 57, tzinfo=UTC) assert isinstance(data[0].author.ratings.votes, int) assert isinstance(data[0].author.ratings.value, float) assert isinstance(data[0].author.ratings.popularity, float) @@ -2714,7 +2819,7 @@ async def test_async_book_lookup( assert data[0].images[0].extension == ".jpg" assert data[0].links[0].url == "string" assert data[0].links[0].name == "string" - assert data[0].added == datetime(1, 1, 1, 4, 57) + assert data[0].added == datetime(1, 1, 1, 4, 57, tzinfo=UTC) assert data[0].remoteCover == "string" assert isinstance(data[0].editions[0].bookId, int) assert data[0].editions[0].foreignEditionId == "string" @@ -2726,7 +2831,7 @@ async def test_async_book_lookup( assert data[0].editions[0].disambiguation == "string" assert data[0].editions[0].publisher == "string" assert isinstance(data[0].editions[0].pageCount, int) - assert data[0].editions[0].releaseDate == datetime(1998, 6, 25, 0, 0) + assert data[0].editions[0].releaseDate == datetime(1998, 6, 25, 0, 0, tzinfo=UTC) assert data[0].editions[0].images[0].url == "string" assert data[0].editions[0].images[0].coverType == "cover" assert data[0].editions[0].images[0].extension == ".jpg" @@ -2774,7 +2879,7 @@ async def test_async_get_calendar( assert data[0].anyEditionOk is True assert isinstance(data[0].ratings.votes, int) assert isinstance(data[0].ratings.value, float) - assert data[0].releaseDate == datetime(2021, 12, 11, 9, 30, 28, 338000) + assert data[0].releaseDate == datetime(2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC) assert isinstance(data[0].pageCount, int) assert data[0].genres[0] == "string" _value = data[0].author @@ -2794,7 +2899,9 @@ async def test_async_get_calendar( assert _value.nextBook.foreignBookId == "string" assert isinstance(_value.nextBook.titleSlug, int) assert _value.nextBook.title == "string" - assert _value.nextBook.releaseDate == datetime(2021, 12, 11, 9, 30, 28, 338000) + assert _value.nextBook.releaseDate == datetime( + 2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC + ) assert _value.nextBook.links[0].url == "string" assert _value.nextBook.links[0].name == "string" assert _value.nextBook.genres[0] == "string" @@ -2803,8 +2910,12 @@ async def test_async_get_calendar( assert _value.nextBook.cleanTitle == "string" assert _value.nextBook.monitored is True assert _value.nextBook.anyEditionOk is True - assert _value.nextBook.lastInfoSync == datetime(2021, 12, 11, 9, 30, 28, 338000) - assert _value.nextBook.added == datetime(2021, 12, 11, 9, 30, 28, 338000) + assert _value.nextBook.lastInfoSync == datetime( + 2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC + ) + assert _value.nextBook.added == datetime( + 2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC + ) assert _value.nextBook.addOptions.addType == AddTypes.AUTOMATIC.value assert _value.nextBook.addOptions.searchForNewBook is True _value = data[0].author.nextBook.authorMetadata.value @@ -2819,8 +2930,8 @@ async def test_async_get_calendar( assert _value.disambiguation == "string" assert _value.gender == "string" assert _value.hometown == "string" - assert _value.born == datetime(2021, 12, 11, 9, 30, 28, 338000) - assert _value.died == datetime(2021, 12, 11, 9, 30, 28, 338000) + assert _value.born == datetime(2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC) + assert _value.died == datetime(2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC) assert _value.status == "string" assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value @@ -2835,10 +2946,10 @@ async def test_async_get_calendar( assert isinstance(_value.authorMetadataId, int) assert _value.cleanName == "string" assert _value.monitored is True - assert _value.lastInfoSync == datetime(2021, 12, 11, 9, 30, 28, 338000) + assert _value.lastInfoSync == datetime(2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC) assert _value.path == "string" assert _value.rootFolderPath == "string" - assert _value.added == datetime(2021, 12, 11, 9, 30, 28, 338000) + assert _value.added == datetime(2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC) assert isinstance(_value.qualityProfileId, int) assert isinstance(_value.metadataProfileId, int) assert isinstance(_value.tags[0], int) @@ -2858,8 +2969,12 @@ async def test_async_get_calendar( assert _value.metadata.value.disambiguation == "string" assert _value.metadata.value.gender == "string" assert _value.metadata.value.hometown == "string" - assert _value.metadata.value.born == datetime(2021, 12, 11, 9, 30, 28, 338000) - assert _value.metadata.value.died == datetime(2021, 12, 11, 9, 30, 28, 338000) + assert _value.metadata.value.born == datetime( + 2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC + ) + assert _value.metadata.value.died == datetime( + 2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC + ) assert _value.metadata.value.status == "string" assert _value.metadata.value.images[0].url == "string" assert _value.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -2922,7 +3037,7 @@ async def test_async_get_calendar( assert _valu.disambiguation == "string" assert _valu.publisher == "string" assert isinstance(_valu.pageCount, int) - assert _valu.releaseDate == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _valu.releaseDate == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) assert _valu.images[0].url == "string" assert _valu.images[0].coverType == ImageType.POSTER.value assert _valu.images[0].extension == "string" @@ -2938,8 +3053,8 @@ async def test_async_get_calendar( assert isinstance(_value.id, int) assert _value.path == "string" assert isinstance(_value.size, int) - assert _value.modified == datetime(2021, 12, 11, 9, 30, 28, 339000) - assert _value.dateAdded == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _value.modified == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) + assert _value.dateAdded == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) assert _value.sceneName == "string" assert _value.releaseGroup == "string" assert isinstance(_value.quality.quality.id, int) @@ -2959,10 +3074,14 @@ async def test_async_get_calendar( assert isinstance(_value.author.value.authorMetadataId, int) assert _value.author.value.cleanName == "string" assert _value.author.value.monitored is True - assert _value.author.value.lastInfoSync == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _value.author.value.lastInfoSync == datetime( + 2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC + ) assert _value.author.value.path == "string" assert _value.author.value.rootFolderPath == "string" - assert _value.author.value.added == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _value.author.value.added == datetime( + 2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC + ) assert isinstance(_value.author.value.qualityProfileId, int) assert isinstance(_value.author.value.metadataProfileId, int) assert isinstance(_value.author.value.tags[0], int) @@ -2983,8 +3102,8 @@ async def test_async_get_calendar( assert _valu.disambiguation == "string" assert _valu.gender == "string" assert _valu.hometown == "string" - assert _valu.born == datetime(2021, 12, 11, 9, 30, 28, 339000) - assert _valu.died == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _valu.born == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) + assert _valu.died == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) assert _valu.status == "string" assert _valu.images[0].url == "string" assert _valu.images[0].coverType == ImageType.POSTER.value @@ -3041,8 +3160,8 @@ async def test_async_get_calendar( assert isinstance(_val.id, int) assert _val.path == "string" assert isinstance(_val.size, int) - assert _val.modified == datetime(2021, 12, 11, 9, 30, 28, 339000) - assert _val.dateAdded == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _val.modified == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) + assert _val.dateAdded == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) assert _val.sceneName == "string" assert _val.releaseGroup == "string" assert isinstance(_val.quality.quality.id, int) @@ -3063,10 +3182,12 @@ async def test_async_get_calendar( assert isinstance(_author.value.authorMetadataId, int) assert _author.value.cleanName == "string" assert _author.value.monitored is True - assert _author.value.lastInfoSync == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _author.value.lastInfoSync == datetime( + 2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC + ) assert _author.value.path == "string" assert _author.value.rootFolderPath == "string" - assert _author.value.added == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _author.value.added == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) assert isinstance(_author.value.qualityProfileId, int) assert isinstance(_author.value.metadataProfileId, int) assert isinstance(_author.value.tags[0], int) @@ -3087,8 +3208,8 @@ async def test_async_get_calendar( assert _val.disambiguation == "string" assert _val.gender == "string" assert _val.hometown == "string" - assert _val.born == datetime(2021, 12, 11, 9, 30, 28, 339000) - assert _val.died == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _val.born == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) + assert _val.died == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) assert _val.status == "string" assert _val.images[0].url == "string" assert _val.images[0].coverType == ImageType.POSTER.value @@ -3165,7 +3286,9 @@ async def test_async_get_calendar( assert _value.nextBook.foreignBookId == "string" assert isinstance(_value.nextBook.titleSlug, int) assert _value.nextBook.title == "string" - assert _value.nextBook.releaseDate == datetime(2021, 12, 11, 9, 30, 28, 338000) + assert _value.nextBook.releaseDate == datetime( + 2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC + ) assert _value.nextBook.links[0].url == "string" assert _value.nextBook.links[0].name == "string" assert _value.nextBook.genres[0] == "string" @@ -3174,8 +3297,12 @@ async def test_async_get_calendar( assert _value.nextBook.cleanTitle == "string" assert _value.nextBook.monitored is True assert _value.nextBook.anyEditionOk is True - assert _value.nextBook.lastInfoSync == datetime(2021, 12, 11, 9, 30, 28, 338000) - assert _value.nextBook.added == datetime(2021, 12, 11, 9, 30, 28, 338000) + assert _value.nextBook.lastInfoSync == datetime( + 2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC + ) + assert _value.nextBook.added == datetime( + 2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC + ) assert _value.nextBook.addOptions.addType == AddTypes.AUTOMATIC.value assert _value.nextBook.addOptions.searchForNewBook is True _value = data[0].author.nextBook.authorMetadata.value @@ -3190,8 +3317,8 @@ async def test_async_get_calendar( assert _value.disambiguation == "string" assert _value.gender == "string" assert _value.hometown == "string" - assert _value.born == datetime(2021, 12, 11, 9, 30, 28, 338000) - assert _value.died == datetime(2021, 12, 11, 9, 30, 28, 338000) + assert _value.born == datetime(2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC) + assert _value.died == datetime(2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC) assert _value.status == "string" assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value @@ -3206,10 +3333,10 @@ async def test_async_get_calendar( assert isinstance(_value.authorMetadataId, int) assert _value.cleanName == "string" assert _value.monitored is True - assert _value.lastInfoSync == datetime(2021, 12, 11, 9, 30, 28, 338000) + assert _value.lastInfoSync == datetime(2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC) assert _value.path == "string" assert _value.rootFolderPath == "string" - assert _value.added == datetime(2021, 12, 11, 9, 30, 28, 338000) + assert _value.added == datetime(2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC) assert isinstance(_value.qualityProfileId, int) assert isinstance(_value.metadataProfileId, int) assert isinstance(_value.tags[0], int) @@ -3229,8 +3356,12 @@ async def test_async_get_calendar( assert _value.metadata.value.disambiguation == "string" assert _value.metadata.value.gender == "string" assert _value.metadata.value.hometown == "string" - assert _value.metadata.value.born == datetime(2021, 12, 11, 9, 30, 28, 338000) - assert _value.metadata.value.died == datetime(2021, 12, 11, 9, 30, 28, 338000) + assert _value.metadata.value.born == datetime( + 2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC + ) + assert _value.metadata.value.died == datetime( + 2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC + ) assert _value.metadata.value.status == "string" assert _value.metadata.value.images[0].url == "string" assert _value.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -3293,7 +3424,7 @@ async def test_async_get_calendar( assert _value.disambiguation == "string" assert _value.publisher == "string" assert isinstance(_value.pageCount, int) - assert _value.releaseDate == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _value.releaseDate == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value assert _value.images[0].extension == "string" @@ -3309,8 +3440,8 @@ async def test_async_get_calendar( assert isinstance(_value.id, int) assert _value.path == "string" assert isinstance(_value.size, int) - assert _value.modified == datetime(2021, 12, 11, 9, 30, 28, 339000) - assert _value.dateAdded == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _value.modified == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) + assert _value.dateAdded == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) assert _value.sceneName == "string" assert _value.releaseGroup == "string" assert isinstance(_value.quality.quality.id, int) @@ -3330,10 +3461,14 @@ async def test_async_get_calendar( assert isinstance(_value.author.value.authorMetadataId, int) assert _value.author.value.cleanName == "string" assert _value.author.value.monitored is True - assert _value.author.value.lastInfoSync == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _value.author.value.lastInfoSync == datetime( + 2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC + ) assert _value.author.value.path == "string" assert _value.author.value.rootFolderPath == "string" - assert _value.author.value.added == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _value.author.value.added == datetime( + 2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC + ) assert isinstance(_value.author.value.qualityProfileId, int) assert isinstance(_value.author.value.metadataProfileId, int) assert isinstance(_value.author.value.tags[0], int) @@ -3354,8 +3489,8 @@ async def test_async_get_calendar( assert _valu.disambiguation == "string" assert _valu.gender == "string" assert _valu.hometown == "string" - assert _valu.born == datetime(2021, 12, 11, 9, 30, 28, 339000) - assert _valu.died == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _valu.born == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) + assert _valu.died == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) assert _valu.status == "string" assert _valu.images[0].url == "string" assert _valu.images[0].coverType == ImageType.POSTER.value @@ -3412,8 +3547,8 @@ async def test_async_get_calendar( assert isinstance(_val.id, int) assert _val.path == "string" assert isinstance(_val.size, int) - assert _val.modified == datetime(2021, 12, 11, 9, 30, 28, 339000) - assert _val.dateAdded == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _val.modified == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) + assert _val.dateAdded == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) assert _val.sceneName == "string" assert _val.releaseGroup == "string" assert isinstance(_val.quality.quality.id, int) @@ -3434,10 +3569,12 @@ async def test_async_get_calendar( assert isinstance(_author.value.authorMetadataId, int) assert _author.value.cleanName == "string" assert _author.value.monitored is True - assert _author.value.lastInfoSync == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _author.value.lastInfoSync == datetime( + 2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC + ) assert _author.value.path == "string" assert _author.value.rootFolderPath == "string" - assert _author.value.added == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _author.value.added == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) assert isinstance(_author.value.qualityProfileId, int) assert isinstance(_author.value.metadataProfileId, int) assert isinstance(_author.value.tags[0], int) @@ -3458,8 +3595,8 @@ async def test_async_get_calendar( assert _val.disambiguation == "string" assert _val.gender == "string" assert _val.hometown == "string" - assert _val.born == datetime(2021, 12, 11, 9, 30, 28, 339000) - assert _val.died == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert _val.born == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) + assert _val.died == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) assert _val.status == "string" assert _val.images[0].url == "string" assert _val.images[0].coverType == ImageType.POSTER.value @@ -3544,7 +3681,7 @@ async def test_async_get_calendar( assert data[0].author.sortName == "string" assert data[0].author.sortNameLastFirst == "string" assert isinstance(data[0].author.tags[0], int) - assert data[0].author.added == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert data[0].author.added == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) assert data[0].author.addOptions.monitor == MonitoringOptionsType.ALL.value assert data[0].author.addOptions.booksToMonitor[0] == "string" assert data[0].author.addOptions.monitored is True @@ -3568,7 +3705,7 @@ async def test_async_get_calendar( assert isinstance(data[0].statistics.totalBookCount, int) assert isinstance(data[0].statistics.sizeOnDisk, int) assert isinstance(data[0].statistics.percentOfBooks, float) - assert data[0].added == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert data[0].added == datetime(2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC) assert data[0].addOptions.addType == AddTypes.AUTOMATIC.value assert data[0].addOptions.searchForNewBook is True assert data[0].remoteCover == "string" @@ -3586,7 +3723,9 @@ async def test_async_get_calendar( assert data[0].editions[0].disambiguation == "string" assert data[0].editions[0].publisher == "string" assert isinstance(data[0].editions[0].pageCount, int) - assert data[0].editions[0].releaseDate == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert data[0].editions[0].releaseDate == datetime( + 2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC + ) assert data[0].editions[0].images[0].url == "string" assert data[0].editions[0].images[0].coverType == ImageType.POSTER.value assert data[0].editions[0].images[0].extension == "string" @@ -3637,7 +3776,9 @@ async def test_async_get_wanted_missing( assert isinstance(data.records[0].ratings.votes, int) assert isinstance(data.records[0].ratings.value, float) assert isinstance(data.records[0].ratings.popularity, float) - assert data.records[0].releaseDate == datetime(2021, 12, 11, 9, 30, 28, 339000) + assert data.records[0].releaseDate == datetime( + 2021, 12, 11, 9, 30, 28, 339000, tzinfo=UTC + ) assert isinstance(data.records[0].pageCount, int) assert data.records[0].genres[0] == "string" assert isinstance(data.records[0].author.authorMetadataId, int) @@ -3663,7 +3804,7 @@ async def test_async_get_wanted_missing( assert data.records[0].author.sortName == "string" assert data.records[0].author.sortNameLastFirst == "string" assert isinstance(data.records[0].author.tags[0], int) - assert data.records[0].author.added == datetime(2021, 12, 6, 22, 23, 55) + assert data.records[0].author.added == datetime(2021, 12, 6, 22, 23, 55, tzinfo=UTC) assert isinstance(data.records[0].author.ratings.votes, int) assert isinstance(data.records[0].author.ratings.value, float) assert isinstance(data.records[0].author.ratings.popularity, float) @@ -3684,7 +3825,7 @@ async def test_async_get_wanted_missing( assert isinstance(data.records[0].statistics.totalBookCount, int) assert isinstance(data.records[0].statistics.sizeOnDisk, int) assert isinstance(data.records[0].statistics.percentOfBooks, float) - assert data.records[0].added == datetime(2021, 12, 6, 22, 23, 58) + assert data.records[0].added == datetime(2021, 12, 6, 22, 23, 58, tzinfo=UTC) assert isinstance(data.records[0].editions[0].bookId, int) assert data.records[0].editions[0].foreignEditionId == "string" assert isinstance(data.records[0].editions[0].titleSlug, int) @@ -3697,7 +3838,9 @@ async def test_async_get_wanted_missing( assert data.records[0].editions[0].disambiguation == "string" assert data.records[0].editions[0].publisher == "string" assert isinstance(data.records[0].editions[0].pageCount, int) - assert data.records[0].editions[0].releaseDate == datetime(2017, 3, 15, 0, 0) + assert data.records[0].editions[0].releaseDate == datetime( + 2017, 3, 15, 0, 0, tzinfo=UTC + ) assert data.records[0].editions[0].images[0].url == "string" assert data.records[0].editions[0].images[0].coverType == ImageType.POSTER.value assert data.records[0].editions[0].images[0].extension == "string" @@ -3778,7 +3921,7 @@ async def test_async_get_history( assert isinstance(data.records[0].quality.revision.real, int) assert data.records[0].quality.revision.isRepack is False assert data.records[0].qualityCutoffNotMet is False - assert data.records[0].date == datetime(2021, 12, 31, 1, 13, 38) + assert data.records[0].date == datetime(2021, 12, 31, 1, 13, 38, tzinfo=UTC) assert data.records[0].downloadId == "string" assert data.records[0].eventType == ReadarrEventType.GRABBED.name.lower() assert data.records[0].data.indexer == "string" @@ -3787,7 +3930,7 @@ async def test_async_get_history( assert isinstance(data.records[0].data.age, int) assert isinstance(data.records[0].data.ageHours, float) assert isinstance(data.records[0].data.ageMinutes, float) - assert data.records[0].data.publishedDate == datetime(2020, 6, 6, 4, 0) + assert data.records[0].data.publishedDate == datetime(2020, 6, 6, 4, 0, tzinfo=UTC) assert data.records[0].data.downloadClient == "string" assert isinstance(data.records[0].data.size, int) assert data.records[0].data.downloadUrl == "string" @@ -4043,7 +4186,9 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(data.parsedBookInfo.quality.revision.version, int) assert isinstance(data.parsedBookInfo.quality.revision.real, int) assert data.parsedBookInfo.quality.revision.isRepack is True - assert data.parsedBookInfo.releaseDate == datetime(2021, 12, 7, 8, 55, 41, 226000) + assert data.parsedBookInfo.releaseDate == datetime( + 2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC + ) assert data.parsedBookInfo.discography is True assert isinstance(data.parsedBookInfo.discographyStart, int) assert isinstance(data.parsedBookInfo.discographyEnd, int) @@ -4067,7 +4212,7 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _value.foreignBookId == "string" assert isinstance(_value.titleSlug, int) assert _value.title == "string" - assert _value.releaseDate == datetime(2020, 2, 6, 12, 49, 48, 602000) + assert _value.releaseDate == datetime(2020, 2, 6, 12, 49, 48, 602000, tzinfo=UTC) assert _value.links[0].url == "string" assert _value.links[0].name == "string" assert _value.genres[0] == "string" @@ -4077,8 +4222,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _value.cleanTitle == "string" assert _value.monitored is True assert _value.anyEditionOk is True - assert _value.lastInfoSync == datetime(2020, 2, 6, 12, 49, 48, 602000) - assert _value.added == datetime(2020, 2, 6, 12, 49, 48, 602000) + assert _value.lastInfoSync == datetime(2020, 2, 6, 12, 49, 48, 602000, tzinfo=UTC) + assert _value.added == datetime(2020, 2, 6, 12, 49, 48, 602000, tzinfo=UTC) assert _value.addOptions.addType == AddTypes.AUTOMATIC.value assert _value.addOptions.searchForNewBook is True assert isinstance(_value.authorMetadata.value.id, int) @@ -4092,8 +4237,12 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _value.authorMetadata.value.overview == "string" assert _value.authorMetadata.value.gender == "string" assert _value.authorMetadata.value.hometown == "string" - assert _value.authorMetadata.value.born == datetime(2020, 1, 6, 12, 49, 48, 602000) - assert _value.authorMetadata.value.died == datetime(2020, 1, 6, 12, 49, 48, 602000) + assert _value.authorMetadata.value.born == datetime( + 2020, 1, 6, 12, 49, 48, 602000, tzinfo=UTC + ) + assert _value.authorMetadata.value.died == datetime( + 2020, 1, 6, 12, 49, 48, 602000, tzinfo=UTC + ) assert _value.authorMetadata.value.status == "string" assert _value.authorMetadata.value.images[0].url == "string" assert _value.authorMetadata.value.images[0].coverType == ImageType.POSTER.value @@ -4109,10 +4258,14 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_value.author.value.authorMetadataId, int) assert _value.author.value.cleanName == "string" assert _value.author.value.monitored is True - assert _value.author.value.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 602000) + assert _value.author.value.lastInfoSync == datetime( + 2020, 1, 6, 12, 49, 48, 602000, tzinfo=UTC + ) assert _value.author.value.path == "string" assert _value.author.value.rootFolderPath == "string" - assert _value.author.value.added == datetime(2020, 1, 6, 12, 49, 48, 602000) + assert _value.author.value.added == datetime( + 2020, 1, 6, 12, 49, 48, 602000, tzinfo=UTC + ) assert isinstance(_value.author.value.qualityProfileId, int) assert isinstance(_value.author.value.metadataProfileId, int) assert isinstance(_value.author.value.tags[0], int) @@ -4131,8 +4284,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _val.value.overview == "string" assert _val.value.gender == "string" assert _val.value.hometown == "string" - assert _val.value.born == datetime(2020, 1, 6, 12, 49, 48, 603000) - assert _val.value.died == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _val.value.born == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) + assert _val.value.died == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert _val.value.status == "string" assert _val.value.images[0].url == "string" assert _val.value.images[0].coverType == ImageType.POSTER.value @@ -4196,7 +4349,7 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _val.isEbook is True assert _val.publisher == "string" assert isinstance(_val.pageCount, int) - assert _val.releaseDate == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _val.releaseDate == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert _val.images[0].url == "string" assert _val.images[0].coverType == ImageType.POSTER.value assert _val.images[0].extension == "string" @@ -4211,8 +4364,12 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_val.bookFiles.value[0].id, int) assert _val.bookFiles.value[0].path == "string" assert isinstance(_val.bookFiles.value[0].size, int) - assert _val.bookFiles.value[0].modified == datetime(2020, 1, 6, 12, 49, 48, 603000) - assert _val.bookFiles.value[0].dateAdded == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _val.bookFiles.value[0].modified == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) + assert _val.bookFiles.value[0].dateAdded == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) assert _val.bookFiles.value[0].sceneName == "string" assert _val.bookFiles.value[0].releaseGroup == "string" assert isinstance(_val.bookFiles.value[0].quality.quality.id, int) @@ -4233,10 +4390,10 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_valu.authorMetadataId, int) assert _valu.cleanName == "string" assert _valu.monitored is True - assert _valu.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _valu.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert _valu.path == "string" assert _valu.rootFolderPath == "string" - assert _valu.added == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _valu.added == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert isinstance(_valu.qualityProfileId, int) assert isinstance(_valu.metadataProfileId, int) assert isinstance(_valu.tags[0], int) @@ -4255,8 +4412,12 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _valu.metadata.value.overview == "string" assert _valu.metadata.value.gender == "string" assert _valu.metadata.value.hometown == "string" - assert _valu.metadata.value.born == datetime(2020, 1, 6, 12, 49, 48, 603000) - assert _valu.metadata.value.died == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _valu.metadata.value.born == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) + assert _valu.metadata.value.died == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) assert _valu.metadata.value.status == "string" assert _valu.metadata.value.images[0].url == "string" assert _valu.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -4314,8 +4475,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_valu.id, int) assert _valu.path == "string" assert isinstance(_valu.size, int) - assert _valu.modified == datetime(2020, 1, 6, 12, 49, 48, 603000) - assert _valu.dateAdded == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _valu.modified == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) + assert _valu.dateAdded == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert _valu.sceneName == "string" assert _valu.releaseGroup == "string" assert isinstance(_valu.quality.quality.id, int) @@ -4336,10 +4497,10 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_valu.authorMetadataId, int) assert _valu.cleanName == "string" assert _valu.monitored is True - assert _valu.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _valu.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert _valu.path == "string" assert _valu.rootFolderPath == "string" - assert _valu.added == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _valu.added == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert isinstance(_valu.qualityProfileId, int) assert isinstance(_valu.metadataProfileId, int) assert isinstance(_valu.tags[0], int) @@ -4358,8 +4519,12 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _valu.metadata.value.overview == "string" assert _valu.metadata.value.gender == "string" assert _valu.metadata.value.hometown == "string" - assert _valu.metadata.value.born == datetime(2020, 1, 6, 12, 49, 48, 603000) - assert _valu.metadata.value.died == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _valu.metadata.value.born == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) + assert _valu.metadata.value.died == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) assert _valu.metadata.value.status == "string" assert _valu.metadata.value.images[0].url == "string" assert _valu.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -4435,7 +4600,9 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert data.author.lastBook.foreignBookId == "string" assert isinstance(data.author.lastBook.titleSlug, int) assert data.author.lastBook.title == "string" - assert data.author.lastBook.releaseDate == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert data.author.lastBook.releaseDate == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) assert data.author.lastBook.links[0].url == "string" assert data.author.lastBook.links[0].name == "string" assert data.author.lastBook.genres[0] == "string" @@ -4445,8 +4612,12 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert data.author.lastBook.cleanTitle == "string" assert data.author.lastBook.monitored is True assert data.author.lastBook.anyEditionOk is True - assert data.author.lastBook.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 603000) - assert data.author.lastBook.added == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert data.author.lastBook.lastInfoSync == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) + assert data.author.lastBook.added == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) assert data.author.lastBook.addOptions.addType == AddTypes.AUTOMATIC.value assert data.author.lastBook.addOptions.searchForNewBook is True _value = data.author.lastBook @@ -4461,8 +4632,12 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _value.authorMetadata.value.overview == "string" assert _value.authorMetadata.value.gender == "string" assert _value.authorMetadata.value.hometown == "string" - assert _value.authorMetadata.value.born == datetime(2020, 1, 6, 12, 49, 48, 603000) - assert _value.authorMetadata.value.died == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _value.authorMetadata.value.born == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) + assert _value.authorMetadata.value.died == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) assert _value.authorMetadata.value.status == "string" assert _value.authorMetadata.value.images[0].url == "string" assert _value.authorMetadata.value.images[0].coverType == ImageType.POSTER.value @@ -4478,10 +4653,14 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_value.author.value.authorMetadataId, int) assert _value.author.value.cleanName == "string" assert _value.author.value.monitored is True - assert _value.author.value.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _value.author.value.lastInfoSync == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) assert _value.author.value.path == "string" assert _value.author.value.rootFolderPath == "string" - assert _value.author.value.added == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _value.author.value.added == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) assert isinstance(_value.author.value.qualityProfileId, int) assert isinstance(_value.author.value.metadataProfileId, int) assert isinstance(_value.author.value.tags[0], int) @@ -4500,8 +4679,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _valu.overview == "string" assert _valu.gender == "string" assert _valu.hometown == "string" - assert _valu.born == datetime(2020, 1, 6, 12, 49, 48, 603000) - assert _valu.died == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _valu.born == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) + assert _valu.died == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert _valu.status == "string" assert _valu.images[0].url == "string" assert _valu.images[0].coverType == ImageType.POSTER.value @@ -4565,7 +4744,7 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _valu.isEbook is True assert _valu.publisher == "string" assert isinstance(_valu.pageCount, int) - assert _valu.releaseDate == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _valu.releaseDate == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert _valu.images[0].url == "string" assert _valu.images[0].coverType == ImageType.POSTER.value assert _valu.images[0].extension == "string" @@ -4581,8 +4760,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_val.id, int) assert _val.path == "string" assert isinstance(_val.size, int) - assert _val.modified == datetime(2020, 1, 6, 12, 49, 48, 603000) - assert _val.dateAdded == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _val.modified == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) + assert _val.dateAdded == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert _val.sceneName == "string" assert _val.releaseGroup == "string" assert isinstance(_val.quality.quality.id, int) @@ -4602,10 +4781,14 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_val.author.value.authorMetadataId, int) assert _val.author.value.cleanName == "string" assert _val.author.value.monitored is True - assert _val.author.value.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _val.author.value.lastInfoSync == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) assert _val.author.value.path == "string" assert _val.author.value.rootFolderPath == "string" - assert _val.author.value.added == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _val.author.value.added == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) assert isinstance(_val.author.value.qualityProfileId, int) assert isinstance(_val.author.value.metadataProfileId, int) assert isinstance(_val.author.value.tags[0], int) @@ -4626,8 +4809,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _va.overview == "string" assert _va.gender == "string" assert _va.hometown == "string" - assert _va.born == datetime(2020, 1, 6, 12, 49, 48, 603000) - assert _va.died == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _va.born == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) + assert _va.died == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert _va.status == "string" assert _va.images[0].url == "string" assert _va.images[0].coverType == ImageType.POSTER.value @@ -4685,8 +4868,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_valu.id, int) assert _valu.path == "string" assert isinstance(_valu.size, int) - assert _valu.modified == datetime(2020, 1, 6, 12, 49, 48, 603000) - assert _valu.dateAdded == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _valu.modified == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) + assert _valu.dateAdded == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert _valu.sceneName == "string" assert _valu.releaseGroup == "string" assert isinstance(_valu.quality.quality.id, int) @@ -4707,10 +4890,10 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_val.authorMetadataId, int) assert _val.cleanName == "string" assert _val.monitored is True - assert _val.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _val.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert _val.path == "string" assert _val.rootFolderPath == "string" - assert _val.added == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _val.added == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert isinstance(_val.qualityProfileId, int) assert isinstance(_val.metadataProfileId, int) assert isinstance(_val.tags[0], int) @@ -4729,8 +4912,12 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _val.metadata.value.overview == "string" assert _val.metadata.value.gender == "string" assert _val.metadata.value.hometown == "string" - assert _val.metadata.value.born == datetime(2020, 1, 6, 12, 49, 48, 603000) - assert _val.metadata.value.died == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _val.metadata.value.born == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) + assert _val.metadata.value.died == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) assert _val.metadata.value.status == "string" assert _val.metadata.value.images[0].url == "string" assert _val.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -4815,7 +5002,7 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert data.author.sortName == "string" assert data.author.sortNameLastFirst == "string" assert isinstance(data.author.tags[0], int) - assert data.author.added == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert data.author.added == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert data.author.addOptions.monitor == MonitoringOptionsType.ALL.value assert data.author.addOptions.booksToMonitor == ["string"] assert data.author.addOptions.monitored is True @@ -4842,7 +5029,9 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(data.books[0].ratings.votes, int) assert isinstance(data.books[0].ratings.value, float) assert isinstance(data.books[0].ratings.popularity, float) - assert data.books[0].releaseDate == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert data.books[0].releaseDate == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) assert isinstance(data.books[0].pageCount, int) assert data.books[0].genres == ["string"] assert isinstance(data.books[0].author.id, int) @@ -4862,7 +5051,7 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _book.foreignBookId == "string" assert isinstance(_book.titleSlug, int) assert _book.title == "string" - assert _book.releaseDate == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _book.releaseDate == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert _book.links[0].url == "string" assert _book.links[0].name == "string" assert _book.genres == ["string"] @@ -4872,8 +5061,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _book.cleanTitle == "string" assert _book.monitored is True assert _book.anyEditionOk is True - assert _book.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 603000) - assert _book.added == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _book.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) + assert _book.added == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert _book.addOptions.addType == AddTypes.AUTOMATIC.value assert _book.addOptions.searchForNewBook is True assert isinstance(_book.authorMetadata.value.id, int) @@ -4886,8 +5075,12 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _book.authorMetadata.value.overview == "string" assert _book.authorMetadata.value.gender == "string" assert _book.authorMetadata.value.hometown == "string" - assert _book.authorMetadata.value.born == datetime(2020, 1, 6, 12, 49, 48, 603000) - assert _book.authorMetadata.value.died == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _book.authorMetadata.value.born == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) + assert _book.authorMetadata.value.died == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) assert _book.authorMetadata.value.status == "string" assert _book.authorMetadata.value.images[0].url == "string" assert _book.authorMetadata.value.images[0].coverType == ImageType.POSTER.value @@ -4903,10 +5096,14 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_book.author.value.authorMetadataId, int) assert _book.author.value.cleanName == "string" assert _book.author.value.monitored is True - assert _book.author.value.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _book.author.value.lastInfoSync == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) assert _book.author.value.path == "string" assert _book.author.value.rootFolderPath == "string" - assert _book.author.value.added == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _book.author.value.added == datetime( + 2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC + ) assert isinstance(_book.author.value.qualityProfileId, int) assert isinstance(_book.author.value.metadataProfileId, int) assert isinstance(_book.author.value.tags[0], int) @@ -4926,8 +5123,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _valu.overview == "string" assert _valu.gender == "string" assert _valu.hometown == "string" - assert _valu.born == datetime(2020, 1, 6, 12, 49, 48, 603000) - assert _valu.died == datetime(2020, 1, 6, 12, 49, 48, 603000) + assert _valu.born == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) + assert _valu.died == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) assert _valu.status == "string" assert _valu.images[0].url == "string" assert _valu.images[0].coverType == ImageType.POSTER.value @@ -4991,7 +5188,7 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _valu.isEbook is True assert _valu.publisher == "string" assert isinstance(_valu.pageCount, int) - assert _valu.releaseDate == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _valu.releaseDate == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) assert _valu.images[0].url == "string" assert _valu.images[0].coverType == ImageType.POSTER.value assert _valu.images[0].extension == "string" @@ -5007,8 +5204,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_val.id, int) assert _val.path == "string" assert isinstance(_val.size, int) - assert _val.modified == datetime(2020, 1, 6, 12, 49, 48, 604000) - assert _val.dateAdded == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _val.modified == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) + assert _val.dateAdded == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) assert _val.sceneName == "string" assert _val.releaseGroup == "string" assert isinstance(_val.quality.quality.id, int) @@ -5028,10 +5225,14 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_val.author.value.authorMetadataId, int) assert _val.author.value.cleanName == "string" assert _val.author.value.monitored is True - assert _val.author.value.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _val.author.value.lastInfoSync == datetime( + 2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC + ) assert _val.author.value.path == "string" assert _val.author.value.rootFolderPath == "string" - assert _val.author.value.added == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _val.author.value.added == datetime( + 2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC + ) assert isinstance(_val.author.value.qualityProfileId, int) assert isinstance(_val.author.value.metadataProfileId, int) assert isinstance(_val.author.value.tags[0], int) @@ -5051,8 +5252,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _va.overview == "string" assert _va.gender == "string" assert _va.hometown == "string" - assert _va.born == datetime(2020, 1, 6, 12, 49, 48, 604000) - assert _va.died == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _va.born == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) + assert _va.died == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) assert _va.status == "string" assert _va.images[0].url == "string" assert _va.images[0].coverType == ImageType.POSTER.value @@ -5109,8 +5310,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_val.id, int) assert _val.path == "string" assert isinstance(_val.size, int) - assert _val.modified == datetime(2020, 1, 6, 12, 49, 48, 604000) - assert _val.dateAdded == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _val.modified == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) + assert _val.dateAdded == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) assert _val.sceneName == "string" assert _val.releaseGroup == "string" assert isinstance(_val.quality.quality.id, int) @@ -5130,10 +5331,14 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_val.author.value.authorMetadataId, int) assert _val.author.value.cleanName == "string" assert _val.author.value.monitored is True - assert _val.author.value.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _val.author.value.lastInfoSync == datetime( + 2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC + ) assert _val.author.value.path == "string" assert _val.author.value.rootFolderPath == "string" - assert _val.author.value.added == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _val.author.value.added == datetime( + 2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC + ) assert isinstance(_val.author.value.qualityProfileId, int) assert isinstance(_val.author.value.metadataProfileId, int) assert isinstance(_val.author.value.tags[0], int) @@ -5153,8 +5358,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _va.overview == "string" assert _va.gender == "string" assert _va.hometown == "string" - assert _va.born == datetime(2020, 1, 6, 12, 49, 48, 604000) - assert _va.died == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _va.born == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) + assert _va.died == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) assert _va.status == "string" assert _va.images[0].url == "string" assert _va.images[0].coverType == ImageType.POSTER.value @@ -5230,7 +5435,7 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _valu.foreignBookId == "string" assert isinstance(_valu.titleSlug, int) assert _valu.title == "string" - assert _valu.releaseDate == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _valu.releaseDate == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) assert _valu.links[0].url == "string" assert _valu.links[0].name == "string" assert _valu.genres == ["string"] @@ -5240,8 +5445,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _valu.cleanTitle == "string" assert _valu.monitored is True assert _valu.anyEditionOk is True - assert _valu.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 604000) - assert _valu.added == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _valu.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) + assert _valu.added == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) assert _valu.addOptions.addType == AddTypes.AUTOMATIC.value assert _valu.addOptions.searchForNewBook is True assert isinstance(_valu.authorMetadata.value.id, int) @@ -5254,8 +5459,12 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _valu.authorMetadata.value.overview == "string" assert _valu.authorMetadata.value.gender == "string" assert _valu.authorMetadata.value.hometown == "string" - assert _valu.authorMetadata.value.born == datetime(2020, 1, 6, 12, 49, 48, 604000) - assert _valu.authorMetadata.value.died == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _valu.authorMetadata.value.born == datetime( + 2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC + ) + assert _valu.authorMetadata.value.died == datetime( + 2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC + ) assert _valu.authorMetadata.value.status == "string" assert _valu.authorMetadata.value.images[0].url == "string" assert _valu.authorMetadata.value.images[0].coverType == ImageType.POSTER.value @@ -5271,10 +5480,14 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_valu.author.value.authorMetadataId, int) assert _valu.author.value.cleanName == "string" assert _valu.author.value.monitored is True - assert _valu.author.value.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _valu.author.value.lastInfoSync == datetime( + 2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC + ) assert _valu.author.value.path == "string" assert _valu.author.value.rootFolderPath == "string" - assert _valu.author.value.added == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _valu.author.value.added == datetime( + 2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC + ) assert isinstance(_valu.author.value.qualityProfileId, int) assert isinstance(_valu.author.value.metadataProfileId, int) assert isinstance(_valu.author.value.tags[0], int) @@ -5294,8 +5507,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _val.overview == "string" assert _val.gender == "string" assert _val.hometown == "string" - assert _val.born == datetime(2020, 1, 6, 12, 49, 48, 604000) - assert _val.died == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _val.born == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) + assert _val.died == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) assert _val.status == "string" assert _val.images[0].url == "string" assert _val.images[0].coverType == ImageType.POSTER.value @@ -5359,7 +5572,7 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _val.isEbook is True assert _val.publisher == "string" assert isinstance(_val.pageCount, int) - assert _val.releaseDate == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _val.releaseDate == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) assert _val.images[0].url == "string" assert _val.images[0].coverType == ImageType.POSTER.value assert _val.images[0].extension == "string" @@ -5374,8 +5587,12 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_val.bookFiles.value[0].id, int) assert _val.bookFiles.value[0].path == "string" assert isinstance(_val.bookFiles.value[0].size, int) - assert _val.bookFiles.value[0].modified == datetime(2020, 1, 6, 12, 49, 48, 604000) - assert _val.bookFiles.value[0].dateAdded == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _val.bookFiles.value[0].modified == datetime( + 2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC + ) + assert _val.bookFiles.value[0].dateAdded == datetime( + 2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC + ) assert _val.bookFiles.value[0].sceneName == "string" assert _val.bookFiles.value[0].releaseGroup == "string" assert isinstance(_val.bookFiles.value[0].quality.quality.id, int) @@ -5396,10 +5613,10 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_va.authorMetadataId, int) assert _va.cleanName == "string" assert _va.monitored is True - assert _va.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _va.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) assert _va.path == "string" assert _va.rootFolderPath == "string" - assert _va.added == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _va.added == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) assert isinstance(_va.qualityProfileId, int) assert isinstance(_va.metadataProfileId, int) assert isinstance(_va.tags[0], int) @@ -5418,8 +5635,12 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _va.metadata.value.overview == "string" assert _va.metadata.value.gender == "string" assert _va.metadata.value.hometown == "string" - assert _va.metadata.value.born == datetime(2020, 1, 6, 12, 49, 48, 604000) - assert _va.metadata.value.died == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _va.metadata.value.born == datetime( + 2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC + ) + assert _va.metadata.value.died == datetime( + 2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC + ) assert _va.metadata.value.status == "string" assert _va.metadata.value.images[0].url == "string" assert _va.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -5476,8 +5697,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_val.id, int) assert _val.path == "string" assert isinstance(_val.size, int) - assert _val.modified == datetime(2020, 1, 6, 12, 49, 48, 604000) - assert _val.dateAdded == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _val.modified == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) + assert _val.dateAdded == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) assert _val.sceneName == "string" assert _val.releaseGroup == "string" assert isinstance(_val.quality.quality.id, int) @@ -5497,10 +5718,14 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(_val.author.value.authorMetadataId, int) assert _val.author.value.cleanName == "string" assert _val.author.value.monitored is True - assert _val.author.value.lastInfoSync == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _val.author.value.lastInfoSync == datetime( + 2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC + ) assert _val.author.value.path == "string" assert _val.author.value.rootFolderPath == "string" - assert _val.author.value.added == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _val.author.value.added == datetime( + 2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC + ) assert isinstance(_val.author.value.qualityProfileId, int) assert isinstance(_val.author.value.metadataProfileId, int) assert isinstance(_val.author.value.tags[0], int) @@ -5520,8 +5745,8 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _va.overview == "string" assert _va.gender == "string" assert _va.hometown == "string" - assert _va.born == datetime(2020, 1, 6, 12, 49, 48, 604000) - assert _va.died == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _va.born == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) + assert _va.died == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) assert _va.status == "string" assert _va.images[0].url == "string" assert _va.images[0].coverType == ImageType.POSTER.value @@ -5605,7 +5830,9 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert data.books[0].author.sortName == "string" assert data.books[0].author.sortNameLastFirst == "string" assert isinstance(data.books[0].author.tags[0], int) - assert data.books[0].author.added == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert data.books[0].author.added == datetime( + 2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC + ) assert data.books[0].author.addOptions.monitor == MonitoringOptionsType.ALL.value assert data.books[0].author.addOptions.booksToMonitor == ["string"] assert data.books[0].author.addOptions.monitored is True @@ -5629,7 +5856,7 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert isinstance(data.books[0].statistics.totalBookCount, int) assert isinstance(data.books[0].statistics.sizeOnDisk, int) assert isinstance(data.books[0].statistics.percentOfBooks, float) - assert data.books[0].added == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert data.books[0].added == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) assert data.books[0].addOptions.addType == AddTypes.AUTOMATIC.value assert data.books[0].addOptions.searchForNewBook is True assert data.books[0].remoteCover == "string" @@ -5648,7 +5875,7 @@ async def test_async_parse(aresponses: Server, readarr_client: ReadarrClient) -> assert _value.isEbook is True assert _value.publisher == "string" assert isinstance(_value.pageCount, int) - assert _value.releaseDate == datetime(2020, 1, 6, 12, 49, 48, 604000) + assert _value.releaseDate == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value assert _value.images[0].extension == "string" @@ -5699,7 +5926,9 @@ async def test_async_get_queue( assert data.records[0].title == "string" assert data.records[0].sizeleft > 0 assert data.records[0].timeleft == "00:00:10" - assert data.records[0].estimatedCompletionTime == datetime(2020, 2, 9, 23, 22, 30) + assert data.records[0].estimatedCompletionTime == datetime( + 2020, 2, 9, 23, 22, 30, tzinfo=UTC + ) assert data.records[0].status == "string" assert data.records[0].trackedDownloadStatus == "string" assert data.records[0].trackedDownloadState == "downloading" @@ -5792,7 +6021,7 @@ async def test_async_get_queue_details( assert isinstance(data[0].book.ratings.votes, int) assert isinstance(data[0].book.ratings.value, float) assert isinstance(data[0].book.ratings.popularity, float) - assert data[0].book.releaseDate == datetime(2021, 11, 22, 0, 0) + assert data[0].book.releaseDate == datetime(2021, 11, 22, 0, 0, tzinfo=UTC) assert isinstance(data[0].book.pageCount, int) assert data[0].book.genres == ["string"] assert isinstance(data[0].book.author.authorMetadataId, int) @@ -5818,7 +6047,7 @@ async def test_async_get_queue_details( assert data[0].book.author.sortName == "string" assert data[0].book.author.sortNameLastFirst == "string" assert isinstance(data[0].book.author.tags[0], int) - assert data[0].book.author.added == datetime(2021, 12, 6, 23, 38, 3) + assert data[0].book.author.added == datetime(2021, 12, 6, 23, 38, 3, tzinfo=UTC) assert isinstance(data[0].book.author.ratings.votes, int) assert isinstance(data[0].book.author.ratings.value, float) assert isinstance(data[0].book.author.ratings.popularity, float) @@ -5834,7 +6063,7 @@ async def test_async_get_queue_details( assert data[0].book.images[0].extension == "string" assert data[0].book.links[0].url == "string" assert data[0].book.links[0].name == "string" - assert data[0].book.added == datetime(2021, 12, 6, 23, 53, 58) + assert data[0].book.added == datetime(2021, 12, 6, 23, 53, 58, tzinfo=UTC) assert isinstance(data[0].book.editions[0].bookId, int) assert isinstance(data[0].book.editions[0].foreignEditionId, int) assert isinstance(data[0].book.editions[0].titleSlug, int) @@ -5847,7 +6076,9 @@ async def test_async_get_queue_details( assert data[0].book.editions[0].disambiguation == "string" assert data[0].book.editions[0].publisher == "string" assert isinstance(data[0].book.editions[0].pageCount, int) - assert data[0].book.editions[0].releaseDate == datetime(2021, 11, 25, 0, 0) + assert data[0].book.editions[0].releaseDate == datetime( + 2021, 11, 25, 0, 0, tzinfo=UTC + ) assert data[0].book.editions[0].images[0].url == "string" assert data[0].book.editions[0].images[0].coverType == ImageType.POSTER.value assert data[0].book.editions[0].images[0].extension == "string" @@ -5871,7 +6102,9 @@ async def test_async_get_queue_details( assert data[0].title == "string" assert data[0].sizeleft == 0 assert data[0].timeleft == "00:00:00" - assert data[0].estimatedCompletionTime == datetime(2020, 2, 7, 11, 27, 27) + assert data[0].estimatedCompletionTime == datetime( + 2020, 2, 7, 11, 27, 27, tzinfo=UTC + ) assert data[0].status == "string" assert data[0].trackedDownloadStatus == "string" assert data[0].trackedDownloadState == "string" @@ -5926,7 +6159,7 @@ async def test_async_get_release( assert data[0].rejected is True assert data[0].rejections[0].reason == "string" assert data[0].rejections[0].type == "permanent" - assert data[0].publishDate == datetime(2021, 11, 23, 5, 0) + assert data[0].publishDate == datetime(2021, 11, 23, 5, 0, tzinfo=UTC) assert data[0].commentUrl == "string" assert data[0].downloadUrl == "string" assert data[0].infoUrl == "string" @@ -6026,7 +6259,7 @@ async def test_async_get_manual_import( assert data[0].author.sortName == "string" assert data[0].author.sortNameLastFirst == "string" assert isinstance(data[0].author.tags[0], int) - assert data[0].author.added == datetime(2021, 12, 6, 23, 38, 3) + assert data[0].author.added == datetime(2021, 12, 6, 23, 38, 3, tzinfo=UTC) assert isinstance(data[0].author.ratings.votes, int) assert isinstance(data[0].author.ratings.value, float) assert isinstance(data[0].author.ratings.popularity, float) @@ -6050,7 +6283,7 @@ async def test_async_get_manual_import( assert isinstance(data[0].book.ratings.votes, int) assert isinstance(data[0].book.ratings.value, float) assert isinstance(data[0].book.ratings.popularity, float) - assert data[0].book.releaseDate == datetime(2020, 9, 21, 0, 0) + assert data[0].book.releaseDate == datetime(2020, 9, 21, 0, 0, tzinfo=UTC) assert isinstance(data[0].book.pageCount, int) assert data[0].book.genres == ["string"] assert isinstance(data[0].book.author.authorMetadataId, int) @@ -6076,7 +6309,7 @@ async def test_async_get_manual_import( assert data[0].book.author.sortName == "string" assert data[0].book.author.sortNameLastFirst == "string" assert isinstance(data[0].book.author.tags[0], int) - assert data[0].book.author.added == datetime(2021, 12, 6, 23, 38, 3) + assert data[0].book.author.added == datetime(2021, 12, 6, 23, 38, 3, tzinfo=UTC) assert isinstance(data[0].book.author.ratings.votes, int) assert isinstance(data[0].book.author.ratings.value, float) assert isinstance(data[0].book.author.ratings.popularity, float) @@ -6092,7 +6325,7 @@ async def test_async_get_manual_import( assert data[0].book.images[0].extension == "string" assert data[0].book.links[0].url == "string" assert data[0].book.links[0].name == "string" - assert data[0].book.added == datetime(2021, 12, 6, 23, 53, 58) + assert data[0].book.added == datetime(2021, 12, 6, 23, 53, 58, tzinfo=UTC) assert isinstance(data[0].book.editions[0].bookId, int) assert isinstance(data[0].book.editions[0].foreignEditionId, int) assert isinstance(data[0].book.editions[0].titleSlug, int) @@ -6105,7 +6338,9 @@ async def test_async_get_manual_import( assert data[0].book.editions[0].disambiguation == "string" assert data[0].book.editions[0].publisher == "string" assert isinstance(data[0].book.editions[0].pageCount, int) - assert data[0].book.editions[0].releaseDate == datetime(2020, 8, 27, 0, 0) + assert data[0].book.editions[0].releaseDate == datetime( + 2020, 8, 27, 0, 0, tzinfo=UTC + ) assert data[0].book.editions[0].images[0].url == "string" assert data[0].book.editions[0].images[0].coverType == ImageType.COVER.value assert data[0].book.editions[0].images[0].extension == "string" @@ -6237,7 +6472,7 @@ async def test_async_search(aresponses: Server, readarr_client: ReadarrClient) - assert data[0].author.sortName == "string" assert data[0].author.sortNameLastFirst == "string" assert isinstance(data[0].author.tags[0], int) - assert data[0].author.added == datetime(2021, 10, 6, 23, 38, 49) + assert data[0].author.added == datetime(2021, 10, 6, 23, 38, 49, tzinfo=UTC) assert isinstance(data[0].author.ratings.votes, int) assert isinstance(data[0].author.ratings.value, float) assert isinstance(data[0].author.ratings.popularity, float) @@ -6328,7 +6563,7 @@ async def test_readarr_bookshelf() -> None: assert _value.anyEditionOk is True assert isinstance(_value.ratings.votes, int) assert isinstance(_value.ratings.value, float) - assert _value.releaseDate == datetime(2021, 12, 10, 10, 0, 6, 987000) + assert _value.releaseDate == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) assert isinstance(_value.pageCount, int) assert _value.genres[0] == "string" _value = item.basedata.authors[0].books[0].author @@ -6347,7 +6582,9 @@ async def test_readarr_bookshelf() -> None: assert _value.nextBook.foreignBookId == "string" assert isinstance(_value.nextBook.titleSlug, int) assert _value.nextBook.title == "string" - assert _value.nextBook.releaseDate == datetime(2021, 12, 10, 10, 0, 6, 987000) + assert _value.nextBook.releaseDate == datetime( + 2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC + ) assert _value.nextBook.links[0].url == "string" assert _value.nextBook.links[0].name == "string" assert _value.nextBook.genres[0] == "string" @@ -6356,8 +6593,10 @@ async def test_readarr_bookshelf() -> None: assert _value.nextBook.cleanTitle == "string" assert _value.nextBook.monitored is True assert _value.nextBook.anyEditionOk is True - assert _value.nextBook.lastInfoSync == datetime(2021, 12, 10, 10, 0, 6, 987000) - assert _value.nextBook.added == datetime(2021, 12, 10, 10, 0, 6, 987000) + assert _value.nextBook.lastInfoSync == datetime( + 2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC + ) + assert _value.nextBook.added == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) assert _value.nextBook.addOptions.addType == AddTypes.AUTOMATIC.value assert _value.nextBook.addOptions.searchForNewBook is True _value = item.basedata.authors[0].books[0].author.nextBook.authorMetadata.value @@ -6371,8 +6610,8 @@ async def test_readarr_bookshelf() -> None: assert _value.overview == "string" assert _value.gender == "string" assert _value.hometown == "string" - assert _value.born == datetime(2021, 12, 10, 10, 0, 6, 987000) - assert _value.died == datetime(2021, 12, 10, 10, 0, 6, 987000) + assert _value.born == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) + assert _value.died == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) assert _value.status == "string" assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value @@ -6386,10 +6625,10 @@ async def test_readarr_bookshelf() -> None: assert isinstance(_value.authorMetadataId, int) assert _value.cleanName == "string" assert _value.monitored is True - assert _value.lastInfoSync == datetime(2021, 12, 10, 10, 0, 6, 987000) + assert _value.lastInfoSync == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) assert _value.path == "string" assert _value.rootFolderPath == "string" - assert _value.added == datetime(2021, 12, 10, 10, 0, 6, 987000) + assert _value.added == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) assert isinstance(_value.qualityProfileId, int) assert isinstance(_value.metadataProfileId, int) assert isinstance(_value.tags[0], int) @@ -6408,8 +6647,12 @@ async def test_readarr_bookshelf() -> None: assert _value.metadata.value.overview == "string" assert _value.metadata.value.gender == "string" assert _value.metadata.value.hometown == "string" - assert _value.metadata.value.born == datetime(2021, 12, 10, 10, 0, 6, 987000) - assert _value.metadata.value.died == datetime(2021, 12, 10, 10, 0, 6, 987000) + assert _value.metadata.value.born == datetime( + 2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC + ) + assert _value.metadata.value.died == datetime( + 2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC + ) assert _value.metadata.value.status == "string" assert _value.metadata.value.images[0].url == "string" assert _value.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -6451,7 +6694,7 @@ async def test_readarr_bookshelf() -> None: assert _book.foreignBookId == "string" assert isinstance(_book.titleSlug, int) assert _book.title == "string" - assert _book.releaseDate == datetime(2021, 12, 10, 10, 0, 6, 987000) + assert _book.releaseDate == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) assert _book.links[0].url == "string" assert _book.links[0].name == "string" assert _book.genres[0] == "string" @@ -6460,8 +6703,8 @@ async def test_readarr_bookshelf() -> None: assert _book.cleanTitle == "string" assert _book.monitored is True assert _book.anyEditionOk is True - assert _book.lastInfoSync == datetime(2021, 12, 10, 10, 0, 6, 987000) - assert _book.added == datetime(2021, 12, 10, 10, 0, 6, 987000) + assert _book.lastInfoSync == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) + assert _book.added == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) assert _book.addOptions.addType == AddTypes.AUTOMATIC.value assert _book.addOptions.searchForNewBook is True _value = item.basedata.authors[0].books[0].author.lastBook.authorMetadata.value @@ -6475,8 +6718,8 @@ async def test_readarr_bookshelf() -> None: assert _value.overview == "string" assert _value.gender == "string" assert _value.hometown == "string" - assert _value.born == datetime(2021, 12, 10, 10, 0, 6, 987000) - assert _value.died == datetime(2021, 12, 10, 10, 0, 6, 987000) + assert _value.born == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) + assert _value.died == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) assert _value.status == "string" assert _value.images[0].url == "string" assert _value.images[0].coverType == ImageType.POSTER.value @@ -6490,10 +6733,10 @@ async def test_readarr_bookshelf() -> None: assert isinstance(_value.authorMetadataId, int) assert _value.cleanName == "string" assert _value.monitored is True - assert _value.lastInfoSync == datetime(2021, 12, 10, 10, 0, 6, 987000) + assert _value.lastInfoSync == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) assert _value.path == "string" assert _value.rootFolderPath == "string" - assert _value.added == datetime(2021, 12, 10, 10, 0, 6, 987000) + assert _value.added == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) assert isinstance(_value.qualityProfileId, int) assert isinstance(_value.metadataProfileId, int) assert isinstance(_value.tags[0], int) @@ -6512,8 +6755,12 @@ async def test_readarr_bookshelf() -> None: assert _value.metadata.value.overview == "string" assert _value.metadata.value.gender == "string" assert _value.metadata.value.hometown == "string" - assert _value.metadata.value.born == datetime(2021, 12, 10, 10, 0, 6, 987000) - assert _value.metadata.value.died == datetime(2021, 12, 10, 10, 0, 6, 987000) + assert _value.metadata.value.born == datetime( + 2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC + ) + assert _value.metadata.value.died == datetime( + 2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC + ) assert _value.metadata.value.status == "string" assert _value.metadata.value.images[0].url == "string" assert _value.metadata.value.images[0].coverType == ImageType.POSTER.value @@ -6564,7 +6811,7 @@ async def test_readarr_bookshelf() -> None: assert _value.author.sortName == "string" assert _value.author.sortNameLastFirst == "string" assert isinstance(_value.author.tags[0], int) - assert _value.author.added == datetime(2021, 12, 10, 10, 0, 6, 987000) + assert _value.author.added == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) assert _value.author.addOptions.monitor == MonitoringOptionsType.ALL.value assert _value.author.addOptions.booksToMonitor[0] == "string" assert _value.author.addOptions.monitored is True @@ -6584,7 +6831,7 @@ async def test_readarr_bookshelf() -> None: assert isinstance(_value.statistics.bookCount, int) assert isinstance(_value.statistics.totalBookCount, int) assert isinstance(_value.statistics.sizeOnDisk, int) - assert _value.added == datetime(2021, 12, 10, 10, 0, 6, 987000) + assert _value.added == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) assert _value.addOptions.addType == AddTypes.AUTOMATIC.value assert _value.addOptions.searchForNewBook is True assert _value.remoteCover == "string" @@ -6602,7 +6849,7 @@ async def test_readarr_bookshelf() -> None: assert _editions.isEbook is True assert _editions.publisher == "string" assert isinstance(_editions.pageCount, int) - assert _editions.releaseDate == datetime(2021, 12, 10, 10, 0, 6, 987000) + assert _editions.releaseDate == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) assert _editions.images[0].url == "string" assert _editions.images[0].coverType == ImageType.POSTER.value assert _editions.links[0].url == "string" diff --git a/tests/test_request.py b/tests/test_request.py index 08e651d..e0659fb 100644 --- a/tests/test_request.py +++ b/tests/test_request.py @@ -3,6 +3,13 @@ # pylint:disable=line-too-long, too-many-lines, too-many-statements import asyncio from datetime import datetime + +try: + from datetime import UTC +except ImportError: + from datetime import timezone + + UTC = timezone.utc import json from aiohttp.client import ClientSession @@ -93,7 +100,7 @@ async def test_attributes(aresponses: Server, radarr_client: RadarrClient) -> No ) data = await radarr_client.async_get_movies(movieid=1) data = data.attributes - assert data["added"] == "2018-12-28T05:56:49Z" + assert data["added"] == "2018-12-28T05:56:49+00:00Z" assert data["alternateTitles"][0]["movieId"] == 1 assert data["monitored"] is True assert data["sizeOnDisk"] == 0 @@ -116,10 +123,10 @@ async def test_attributes(aresponses: Server, radarr_client: RadarrClient) -> No assert data["name"] == "MessagingCleanup" assert data["body"]["sendUpdatesToClient"] is False assert data["body"]["completionMessage"] == "Completed" - assert data["body"]["lastExecutionTime"] == "2021-11-29T19:57:46Z" + assert data["body"]["lastExecutionTime"] == "2021-11-29T19:57:46+00:00Z" assert data["body"]["trigger"] == CommandTriggerType.SCHEDULED.value assert data["priority"] == CommandPriorityType.LOW.value - assert data["queued"] == "2021-11-29T20:03:16Z" + assert data["queued"] == "2021-11-29T20:03:16+00:00Z" def test_get_no_enum_value() -> None: @@ -458,7 +465,7 @@ async def test_async_get_system_status( assert data.appData == "C:\\ProgramData\\Radarr" assert data.authentication == AuthenticationType.NONE.value assert data.branch == "nightly" - assert data.buildTime == datetime(2020, 9, 1, 23, 23, 23, 962197) + assert data.buildTime == datetime(2020, 9, 1, 23, 23, 23, 962197, tzinfo=UTC) assert data.isAdmin is False assert data.isDebug is True assert data.isDocker is False @@ -478,7 +485,7 @@ async def test_async_get_system_status( assert data.runtimeName == "netCore" assert data.runtimeVersion == "3.1.10" assert data.sqliteVersion == "3.32.1" - assert data.startTime == datetime(2020, 9, 1, 23, 50, 20, 241596) + assert data.startTime == datetime(2020, 9, 1, 23, 50, 20, 241596, tzinfo=UTC) assert data.startupPath == "C:\\ProgramData\\Radarr" assert data.urlBase == "" assert data.version == "10.0.0.34882" @@ -506,7 +513,7 @@ async def test_async_get_system_backup( assert data[0].name == "string" assert data[0].path == "string" assert data[0].type == "scheduled" - assert data[0].time == datetime(2021, 12, 9, 13, 22, 49, 441000) + assert data[0].time == datetime(2021, 12, 9, 13, 22, 49, 441000, tzinfo=UTC) @pytest.mark.asyncio @@ -550,7 +557,7 @@ async def test_async_get_logs(aresponses: Server, sonarr_client: SonarrClient) - assert data.sortKey == LogSortKeys.LOGGER.value assert data.sortDirection == SortDirection.DEFAULT.value assert isinstance(data.totalRecords, int) - assert data.records[0].time == datetime(2021, 11, 19, 9, 28, 26, 549994) + assert data.records[0].time == datetime(2021, 11, 19, 9, 28, 26, 549994, tzinfo=UTC) assert data.records[0].level == "info" assert data.records[0].logger == "BackupService" assert data.records[0].message == "Starting Backup" @@ -589,7 +596,7 @@ async def test_get_log_file(aresponses: Server, readarr_client: ReadarrClient) - ) data = await readarr_client.async_get_log_file() assert data[0].filename == "string" - assert data[0].lastWriteTime == datetime(2021, 12, 9, 23, 19, 21) + assert data[0].lastWriteTime == datetime(2021, 12, 9, 23, 19, 21, tzinfo=UTC) assert data[0].contentsUrl == "string" assert data[0].downloadUrl == "string" assert isinstance(data[0].id, int) @@ -632,7 +639,7 @@ async def test_get_log_file_update( ) data = await readarr_client.async_get_log_file_updates() assert data[0].filename == "string" - assert data[0].lastWriteTime == datetime(2021, 12, 9, 23, 19, 21) + assert data[0].lastWriteTime == datetime(2021, 12, 9, 23, 19, 21, tzinfo=UTC) assert data[0].contentsUrl == "string" assert data[0].downloadUrl == "string" assert isinstance(data[0].id, int) @@ -711,21 +718,23 @@ async def test_async_get_command( assert data[0].body.isNewMovie is False assert data[0].body.isTypeExclusive is False assert data[0].body.name == "MessagingCleanup" - assert data[0].body.lastExecutionTime == datetime(2021, 11, 29, 19, 57, 46) - assert data[0].body.lastStartTime == datetime(2021, 11, 29, 19, 57, 46) + assert data[0].body.lastExecutionTime == datetime( + 2021, 11, 29, 19, 57, 46, tzinfo=UTC + ) + assert data[0].body.lastStartTime == datetime(2021, 11, 29, 19, 57, 46, tzinfo=UTC) assert data[0].body.trigger == CommandTriggerType.SCHEDULED.value assert data[0].body.suppressMessages is False assert data[0].priority == CommandPriorityType.LOW.value assert data[0].status == CommandStatusType.COMPLETED.value - assert data[0].queued == datetime(2021, 11, 29, 20, 3, 16) - assert data[0].started == datetime(2021, 11, 29, 20, 3, 16) - assert data[0].ended == datetime(2021, 11, 29, 20, 3, 16) + assert data[0].queued == datetime(2021, 11, 29, 20, 3, 16, tzinfo=UTC) + assert data[0].started == datetime(2021, 11, 29, 20, 3, 16, tzinfo=UTC) + assert data[0].ended == datetime(2021, 11, 29, 20, 3, 16, tzinfo=UTC) assert data[0].duration == "00:00:00.0102456" assert data[0].trigger == CommandTriggerType.SCHEDULED.value - assert data[0].stateChangeTime == datetime(2021, 11, 29, 20, 3, 16) + assert data[0].stateChangeTime == datetime(2021, 11, 29, 20, 3, 16, tzinfo=UTC) assert data[0].sendUpdatesToClient is False assert data[0].updateScheduledTask is True - assert data[0].lastExecutionTime == datetime(2021, 11, 29, 19, 57, 46) + assert data[0].lastExecutionTime == datetime(2021, 11, 29, 19, 57, 46, tzinfo=UTC) assert isinstance(data[0].id, int) @@ -817,7 +826,9 @@ async def test_async_get_filesystem( assert data.directories[0].name == "app" assert data.directories[0].path == "/app/" assert isinstance(data.directories[0].size, int) - assert data.directories[0].lastModified == datetime(2020, 1, 4, 3, 2, 20) + assert data.directories[0].lastModified == datetime( + 2020, 1, 4, 3, 2, 20, tzinfo=UTC + ) assert data.files == [] @@ -2972,9 +2983,9 @@ async def test_async_get_system_tasks( assert data[0].name == "string" assert data[0].taskName == "string" assert isinstance(data[0].interval, int) - assert data[0].lastExecution == datetime(2020, 2, 8, 14, 24, 40, 993044) - assert data[0].lastStartTime == datetime(2020, 2, 8, 14, 24, 40, 993044) - assert data[0].nextExecution == datetime(2020, 2, 8, 20, 24, 40, 993044) + assert data[0].lastExecution == datetime(2020, 2, 8, 14, 24, 40, 993044, tzinfo=UTC) + assert data[0].lastStartTime == datetime(2020, 2, 8, 14, 24, 40, 993044, tzinfo=UTC) + assert data[0].nextExecution == datetime(2020, 2, 8, 20, 24, 40, 993044, tzinfo=UTC) assert data[0].lastDuration == "00:00:00.1976902" assert isinstance(data[0].id, int) @@ -2999,11 +3010,11 @@ async def test_async_get_software_update_info( assert data[0].version == "string" assert data[0].branch == "string" - assert data[0].releaseDate == datetime(2020, 9, 2, 5, 36, 13, 47313) + assert data[0].releaseDate == datetime(2020, 9, 2, 5, 36, 13, 47313, tzinfo=UTC) assert data[0].fileName == "string" assert data[0].url == "string" assert data[0].installed is False - assert data[0].installedOn == datetime(2020, 10, 1, 5, 1, 4, 521117) + assert data[0].installedOn == datetime(2020, 10, 1, 5, 1, 4, 521117, tzinfo=UTC) assert data[0].installable is False assert data[0].latest is False assert data[0].changes.new == ["string"] diff --git a/tests/test_sonarr.py b/tests/test_sonarr.py index a24a96c..8554524 100644 --- a/tests/test_sonarr.py +++ b/tests/test_sonarr.py @@ -1,7 +1,14 @@ """Tests for Sonarr object models.""" # pylint:disable=line-too-long, too-many-lines, too-many-statements -from datetime import datetime, timezone +from datetime import datetime + +try: + from datetime import UTC +except ImportError: + from datetime import timezone + + UTC = timezone.utc from aresponses.main import ResponsesMockServer as Server import pytest @@ -58,7 +65,7 @@ async def test_async_get_calendar( assert isinstance(data[0].episodeNumber, int) assert data[0].title == "string" assert data[0].airDate == datetime(2017, 1, 26, 0, 0) - assert data[0].airDateUtc == datetime(2017, 1, 27, 1, 30, tzinfo=timezone.utc) + assert data[0].airDateUtc == datetime(2017, 1, 27, 1, 30, tzinfo=UTC) assert data[0].overview == "string" assert data[0].hasFile is False assert data[0].monitored is True @@ -114,7 +121,7 @@ async def test_async_get_calendar_extended( assert isinstance(data[0].episodeNumber, int) assert data[0].title == "string" assert data[0].airDate == datetime(2017, 1, 26, 0, 0) - assert data[0].airDateUtc == datetime(2017, 1, 27, 1, 30, tzinfo=timezone.utc) + assert data[0].airDateUtc == datetime(2017, 1, 27, 1, 30, tzinfo=UTC) assert data[0].overview == "string" assert data[0].hasFile is True assert data[0].monitored is True @@ -130,7 +137,9 @@ async def test_async_get_calendar_extended( assert data[0].episodeFile.relativePath == "string" assert data[0].episodeFile.path == "string" assert isinstance(data[0].episodeFile.size, int) - assert data[0].episodeFile.dateAdded == datetime(2019, 6, 13, 9, 8, 3, 775081) + assert data[0].episodeFile.dateAdded == datetime( + 2019, 6, 13, 9, 8, 3, 775081, tzinfo=UTC + ) assert data[0].episodeFile.releaseGroup == "string" assert isinstance(data[0].episodeFile.language.id, int) assert data[0].episodeFile.language.name == "string" @@ -180,7 +189,7 @@ async def test_async_get_calendar_extended( assert isinstance(data[0].series.tvdbId, int) assert isinstance(data[0].series.tvRageId, int) assert isinstance(data[0].series.tvMazeId, int) - assert data[0].series.firstAired == datetime(2017, 4, 5, 0, 0) + assert data[0].series.firstAired == datetime(2017, 4, 5, 0, 0, tzinfo=UTC) assert data[0].series.seriesType == "string" assert data[0].series.cleanTitle == "string" assert data[0].series.imdbId == "string" @@ -188,7 +197,7 @@ async def test_async_get_calendar_extended( assert data[0].series.certification == "string" assert data[0].series.genres == ["string"] assert data[0].series.tags == [0] - assert data[0].series.added == datetime(2019, 5, 19, 5, 33, 42, 243920) + assert data[0].series.added == datetime(2019, 5, 19, 5, 33, 42, 243920, tzinfo=UTC) assert isinstance(data[0].series.ratings.votes, int) assert isinstance(data[0].series.ratings.value, float) assert isinstance(data[0].series.id, int) @@ -236,14 +245,16 @@ async def test_async_get_episodes( assert isinstance(data.episodeNumber, int) assert data.title == "string" assert data.airDate == datetime(2009, 9, 17, 0, 0) - assert data.airDateUtc == datetime(2009, 9, 18, 2, 0, tzinfo=timezone.utc) + assert data.airDateUtc == datetime(2009, 9, 18, 2, 0, tzinfo=UTC) assert data.overview == "string" assert isinstance(data.episodeFile.seriesId, int) assert isinstance(data.episodeFile.seasonNumber, int) assert data.episodeFile.relativePath == "string" assert data.episodeFile.path == "string" assert isinstance(data.episodeFile.size, int) - assert data.episodeFile.dateAdded == datetime(2019, 6, 13, 9, 8, 3, 775081) + assert data.episodeFile.dateAdded == datetime( + 2019, 6, 13, 9, 8, 3, 775081, tzinfo=UTC + ) assert data.episodeFile.releaseGroup == "string" assert isinstance(data.episodeFile.language.id, int) assert data.episodeFile.language.name == "string" @@ -296,7 +307,7 @@ async def test_async_get_episodes( assert isinstance(data.series.tvdbId, int) assert isinstance(data.series.tvRageId, int) assert isinstance(data.series.tvMazeId, int) - assert data.series.firstAired == datetime(2017, 4, 5, 0, 0) + assert data.series.firstAired == datetime(2017, 4, 5, 0, 0, tzinfo=UTC) assert data.series.seriesType == "string" assert data.series.cleanTitle == "string" assert data.series.imdbId == "string" @@ -304,7 +315,7 @@ async def test_async_get_episodes( assert data.series.certification == "string" assert data.series.genres == ["string"] assert data.series.tags == [0] - assert data.series.added == datetime(2019, 5, 19, 5, 33, 42, 243920) + assert data.series.added == datetime(2019, 5, 19, 5, 33, 42, 243920, tzinfo=UTC) assert isinstance(data.series.ratings.votes, int) assert isinstance(data.series.ratings.value, float) assert isinstance(data.series.id, int) @@ -347,7 +358,7 @@ async def test_async_get_episode_files( assert data.relativePath == "string" assert data.path == "string" assert isinstance(data.size, int) - assert data.dateAdded == datetime(2019, 5, 19, 5, 33, 25, 295709) + assert data.dateAdded == datetime(2019, 5, 19, 5, 33, 25, 295709, tzinfo=UTC) assert data.releaseGroup == "string" assert isinstance(data.language.id, int) assert data.language.name == "string" @@ -429,7 +440,7 @@ async def test_async_get_history( assert data.records[0].qualityCutoffNotMet is True assert data.records[0].languageCutoffNotMet is False assert data.records[0].languageCutoffNotMet is False - assert data.records[0].date == datetime(2019, 11, 1, 9, 9, 34, 288036) + assert data.records[0].date == datetime(2019, 11, 1, 9, 9, 34, 288036, tzinfo=UTC) assert data.records[0].downloadId == "string" assert data.records[0].eventType == SonarrEventType.GRABBED.name.lower() assert data.records[0].data.indexer == "string" @@ -438,7 +449,9 @@ async def test_async_get_history( assert isinstance(data.records[0].data.age, int) assert isinstance(data.records[0].data.ageHours, float) assert isinstance(data.records[0].data.ageMinutes, float) - assert data.records[0].data.publishedDate == datetime(2020, 2, 8, 13, 30, 37) + assert data.records[0].data.publishedDate == datetime( + 2020, 2, 8, 13, 30, 37, tzinfo=UTC + ) assert isinstance(data.records[0].data.fileId, int) assert data.records[0].data.droppedPath == "string" assert data.records[0].data.importedPath == "string" @@ -565,7 +578,7 @@ async def test_async_parse_title_or_path( assert isinstance(data.series.tvdbId, int) assert isinstance(data.series.tvRageId, int) assert isinstance(data.series.tvMazeId, int) - assert data.series.firstAired == datetime(2011, 9, 26, 0, 0) + assert data.series.firstAired == datetime(2011, 9, 26, 0, 0, tzinfo=UTC) assert data.series.seriesType == "string" assert data.series.cleanTitle == "string" assert data.series.imdbId == "string" @@ -573,7 +586,7 @@ async def test_async_parse_title_or_path( assert data.series.certification == "string" assert data.series.genres == ["string"] assert isinstance(data.series.tags[0], int) - assert data.series.added == datetime(2020, 5, 19, 5, 33, 31, 868402) + assert data.series.added == datetime(2020, 5, 19, 5, 33, 31, 868402, tzinfo=UTC) assert isinstance(data.series.ratings.votes, int) assert isinstance(data.series.ratings.value, float) assert isinstance(data.series.id, int) @@ -583,9 +596,7 @@ async def test_async_parse_title_or_path( assert isinstance(data.episodes[0].episodeNumber, int) assert data.episodes[0].title == "string" assert data.episodes[0].airDate == datetime(2010, 8, 26, 0, 0) - assert data.episodes[0].airDateUtc == datetime( - 2006, 9, 27, 0, 0, tzinfo=timezone.utc - ) + assert data.episodes[0].airDateUtc == datetime(2006, 9, 27, 0, 0, tzinfo=UTC) assert data.episodes[0].overview == "string" assert data.episodes[0].hasFile is True assert data.episodes[0].monitored is False @@ -636,7 +647,9 @@ async def test_async_get_queue(aresponses: Server, sonarr_client: SonarrClient) assert _value.title == "string" assert _value.sizeleft > 0 assert _value.timeleft == "00:00:00" - assert _value.estimatedCompletionTime == datetime(2020, 2, 9, 13, 14, 14, 379532) + assert _value.estimatedCompletionTime == datetime( + 2020, 2, 9, 13, 14, 14, 379532, tzinfo=UTC + ) assert _value.status == "string" assert _value.trackedDownloadStatus == "string" assert _value.trackedDownloadState == "stopped" @@ -757,7 +770,7 @@ async def test_async_get_release( assert isinstance(data[0].tvRageId, int) assert data[0].rejections[0].reason == "string" assert data[0].rejections[0].type == "permanent" - assert data[0].publishDate == datetime(2020, 1, 8, 15, 31, 3) + assert data[0].publishDate == datetime(2020, 1, 8, 15, 31, 3, tzinfo=UTC) assert data[0].commentUrl == "string" assert data[0].downloadUrl == "string" assert data[0].infoUrl == "string" @@ -820,7 +833,7 @@ async def test_async_lookup_series( assert isinstance(data[0].tvdbId, int) assert isinstance(data[0].tvRageId, int) assert isinstance(data[0].tvMazeId, int) - assert data[0].firstAired == datetime(2018, 10, 12, 0, 0) + assert data[0].firstAired == datetime(2018, 10, 12, 0, 0, tzinfo=UTC) assert data[0].seriesType == "string" assert data[0].cleanTitle == "string" assert data[0].imdbId == "string" @@ -829,7 +842,7 @@ async def test_async_lookup_series( assert data[0].certification == "string" assert data[0].genres == ["string"] assert isinstance(data[0].tags[0], int) - assert data[0].added == datetime(2018, 10, 31, 5, 49, 55, 357150) + assert data[0].added == datetime(2018, 10, 31, 5, 49, 55, 357150, tzinfo=UTC) assert isinstance(data[0].ratings.votes, int) assert isinstance(data[0].ratings.value, float) assert isinstance(data[0].statistics.seasonCount, int) @@ -925,7 +938,9 @@ async def test_async_get_series( assert data.images[0].remoteUrl == "string" assert isinstance(data.seasons[0].seasonNumber, int) assert data.seasons[0].monitored is True - assert data.seasons[0].statistics.previousAiring == datetime(2019, 7, 5, 7, 0) + assert data.seasons[0].statistics.previousAiring == datetime( + 2019, 7, 5, 7, 0, tzinfo=UTC + ) assert isinstance(data.seasons[0].statistics.episodeFileCount, int) assert isinstance(data.seasons[0].statistics.episodeCount, int) assert isinstance(data.seasons[0].statistics.totalEpisodeCount, int) @@ -942,7 +957,7 @@ async def test_async_get_series( assert isinstance(data.tvdbId, int) assert isinstance(data.tvRageId, int) assert isinstance(data.tvMazeId, int) - assert data.firstAired == datetime(2018, 5, 31, 0, 0) + assert data.firstAired == datetime(2018, 5, 31, 0, 0, tzinfo=UTC) assert data.seriesType == "string" assert data.cleanTitle == "string" assert data.imdbId == "string" @@ -951,7 +966,7 @@ async def test_async_get_series( assert data.certification == "string" assert data.genres == ["string"] assert isinstance(data.tags[0], int) - assert data.added == datetime(2018, 6, 19, 5, 33, 15, 994870) + assert data.added == datetime(2018, 6, 19, 5, 33, 15, 994870, tzinfo=UTC) assert isinstance(data.ratings.votes, int) assert isinstance(data.ratings.value, float) assert isinstance(data.statistics.seasonCount, int) @@ -992,7 +1007,7 @@ async def test_async_get_wanted( assert isinstance(data.records[0].episodeNumber, int) assert data.records[0].title == "string" assert data.records[0].airDate == datetime(2010, 3, 7, 0, 0) - assert data.records[0].airDateUtc == datetime(2010, 3, 7, 5, 0, tzinfo=timezone.utc) + assert data.records[0].airDateUtc == datetime(2010, 3, 7, 5, 0, tzinfo=UTC) assert data.records[0].overview == "string" assert data.records[0].hasFile is False assert data.records[0].monitored is True @@ -1030,7 +1045,7 @@ async def test_async_get_wanted_extended( assert isinstance(data.records[0].episodeNumber, int) assert data.records[0].title == "string" assert data.records[0].airDate == datetime(2010, 3, 7, 0, 0) - assert data.records[0].airDateUtc == datetime(2010, 3, 7, 5, 0, tzinfo=timezone.utc) + assert data.records[0].airDateUtc == datetime(2010, 3, 7, 5, 0, tzinfo=UTC) assert data.records[0].overview == "string" assert data.records[0].hasFile is False assert data.records[0].monitored is True @@ -1061,7 +1076,7 @@ async def test_async_get_wanted_extended( assert isinstance(data.records[0].series.tvdbId, int) assert isinstance(data.records[0].series.tvRageId, int) assert isinstance(data.records[0].series.tvMazeId, int) - assert data.records[0].series.firstAired == datetime(2017, 4, 5, 0, 0) + assert data.records[0].series.firstAired == datetime(2017, 4, 5, 0, 0, tzinfo=UTC) assert data.records[0].series.seriesType == "string" assert data.records[0].series.cleanTitle == "string" assert data.records[0].series.imdbId == "string" @@ -1069,7 +1084,9 @@ async def test_async_get_wanted_extended( assert data.records[0].series.certification == "string" assert data.records[0].series.genres == ["string"] assert data.records[0].series.tags == [0] - assert data.records[0].series.added == datetime(2019, 5, 19, 5, 33, 42, 243920) + assert data.records[0].series.added == datetime( + 2019, 5, 19, 5, 33, 42, 243920, tzinfo=UTC + ) assert isinstance(data.records[0].series.ratings.votes, int) assert isinstance(data.records[0].series.ratings.value, float) assert isinstance(data.records[0].series.id, int) @@ -1137,7 +1154,7 @@ async def test_async_get_blocklist( assert isinstance(data.records[0].quality.revision.version, int) assert isinstance(data.records[0].quality.revision.real, int) assert data.records[0].quality.revision.isRepack is False - assert data.records[0].date == datetime(2021, 9, 19, 8, 14, 33, 582863) + assert data.records[0].date == datetime(2021, 9, 19, 8, 14, 33, 582863, tzinfo=UTC) assert data.records[0].protocol is ProtocolType.UNKNOWN assert data.records[0].indexer == "string" assert data.records[0].message == "string" @@ -1259,9 +1276,7 @@ async def test_async_get_queue_details( assert isinstance(data[0].episode.episodeNumber, int) assert data[0].episode.title == "string" assert data[0].episode.airDate == datetime(2020, 7, 9, 0, 0) - assert data[0].episode.airDateUtc == datetime( - 2020, 7, 10, 2, 0, tzinfo=timezone.utc - ) + assert data[0].episode.airDateUtc == datetime(2020, 7, 10, 2, 0, tzinfo=UTC) assert data[0].episode.overview == "string" assert data[0].episode.hasFile is False assert data[0].episode.monitored is True @@ -1281,7 +1296,9 @@ async def test_async_get_queue_details( assert data[0].title == "string" assert data[0].sizeleft > 0 assert data[0].timeleft == "00:00:00" - assert data[0].estimatedCompletionTime == datetime(2022, 1, 7, 10, 40, 32, 560840) + assert data[0].estimatedCompletionTime == datetime( + 2022, 1, 7, 10, 40, 32, 560840, tzinfo=UTC + ) assert data[0].status == "string" assert data[0].trackedDownloadStatus == "string" assert data[0].trackedDownloadState == "stopped" @@ -1363,7 +1380,7 @@ async def test_async_get_manual_import( assert isinstance(data[0].series.tvdbId, int) assert isinstance(data[0].series.tvRageId, int) assert isinstance(data[0].series.tvMazeId, int) - assert data[0].series.firstAired == datetime(2020, 8, 29, 0, 0) + assert data[0].series.firstAired == datetime(2020, 8, 29, 0, 0, tzinfo=UTC) assert data[0].series.seriesType == "standard" assert data[0].series.cleanTitle == "string" assert data[0].series.imdbId == "string" @@ -1371,7 +1388,7 @@ async def test_async_get_manual_import( assert data[0].series.certification == "string" assert data[0].series.genres == ["string"] assert isinstance(data[0].series.tags[0], int) - assert data[0].series.added == datetime(2019, 5, 19, 5, 33, 56, 694250) + assert data[0].series.added == datetime(2019, 5, 19, 5, 33, 56, 694250, tzinfo=UTC) assert isinstance(data[0].series.ratings.votes, int) assert isinstance(data[0].series.ratings.value, float) assert isinstance(data[0].series.id, int) @@ -1382,9 +1399,7 @@ async def test_async_get_manual_import( assert isinstance(data[0].episodes[0].episodeNumber, int) assert data[0].episodes[0].title == "string" assert data[0].episodes[0].airDate == datetime(2020, 10, 5, 0, 0) - assert data[0].episodes[0].airDateUtc == datetime( - 2020, 10, 5, 7, 0, tzinfo=timezone.utc - ) + assert data[0].episodes[0].airDateUtc == datetime(2020, 10, 5, 7, 0, tzinfo=UTC) assert data[0].episodes[0].overview == "string" assert data[0].episodes[0].hasFile is True assert data[0].episodes[0].monitored is True @@ -1499,7 +1514,7 @@ async def test_async_episode_monitor( assert isinstance(data[0].episodeNumber, int) assert data[0].title == "string" assert data[0].airDate == datetime(2020, 10, 24, 0, 0) - assert data[0].airDateUtc == datetime(2020, 10, 24, 5, 0, tzinfo=timezone.utc) + assert data[0].airDateUtc == datetime(2020, 10, 24, 5, 0, tzinfo=UTC) assert data[0].overview == "string" assert data[0].hasFile is True assert data[0].monitored is False