From f20ea707de2241388b6cd5a6bdab2a17a2203a9d Mon Sep 17 00:00:00 2001 From: Robert Hillis Date: Sat, 7 Sep 2024 10:39:31 -0400 Subject: [PATCH 1/4] Parse datetime strings to timezone aware objects --- aiopyarr/models/base.py | 25 +- aiopyarr/models/const.py | 3 +- aiopyarr/models/radarr_common.py | 10 +- tests/test_lidarr.py | 74 ++-- tests/test_radarr.py | 72 ++-- tests/test_readarr.py | 650 +++++++++++++++---------------- tests/test_request.py | 46 +-- tests/test_sonarr.py | 72 ++-- 8 files changed, 464 insertions(+), 488 deletions(-) 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..11a7ea3 100644 --- a/aiopyarr/models/radarr_common.py +++ b/aiopyarr/models/radarr_common.py @@ -4,10 +4,10 @@ from __future__ import annotations from dataclasses import dataclass, field -from datetime import date, timedelta +from datetime import UTC, date, datetime, timedelta from .base import BaseModel -from .const import CONVERT_TO_DATE +from .const import RELEASE_TYPES from .request_common import ( _Common3, _Common5, @@ -141,10 +141,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..1cb7798 100644 --- a/tests/test_lidarr.py +++ b/tests/test_lidarr.py @@ -1,7 +1,7 @@ """Tests for Lidarr object models.""" # pylint:disable=line-too-long, too-many-lines, too-many-statements -from datetime import datetime +from datetime import datetime, UTC import json from aresponses.main import ResponsesMockServer as Server @@ -74,7 +74,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 +117,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 +289,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 +305,8 @@ 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 +318,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 +334,8 @@ 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 +353,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 +501,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 +544,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 +592,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 +618,7 @@ 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 +665,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 +708,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 +854,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 +897,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 +1185,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 +1194,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, 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 +1218,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 +1262,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 +1299,7 @@ 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 +1475,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 +1493,7 @@ 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 +1592,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 +1617,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 +1660,7 @@ 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 +1684,7 @@ 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 +1752,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 +1902,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 +1927,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 +1970,7 @@ 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 +2118,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 +2248,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 +2286,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 +2317,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..b5f23c9 100644 --- a/tests/test_radarr.py +++ b/tests/test_radarr.py @@ -1,13 +1,12 @@ """Tests for Radarr object models.""" # pylint:disable=line-too-long, too-many-lines, too-many-statements -from datetime import date, datetime +from datetime import date, datetime, 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 +55,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 +135,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 +169,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 +195,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 +212,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 +327,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 +445,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 +682,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 +711,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 +728,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 +830,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 +979,7 @@ 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 +1106,7 @@ 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 +1204,10 @@ 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 +1229,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 +1246,7 @@ 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 +1338,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 +1434,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 +1456,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 +2027,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..1500edb 100644 --- a/tests/test_readarr.py +++ b/tests/test_readarr.py @@ -1,7 +1,7 @@ """Tests for Readarr object models.""" # pylint:disable=line-too-long, too-many-lines, too-many-statements -from datetime import datetime +from datetime import datetime, UTC import json from aresponses.main import ResponsesMockServer as Server @@ -86,7 +86,7 @@ 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 +96,8 @@ 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 +113,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 +131,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 +154,8 @@ 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 +186,8 @@ 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 +252,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 +268,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 +289,10 @@ 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 +313,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 +379,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 +400,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 +422,8 @@ 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 +500,7 @@ 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 +510,8 @@ 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 +527,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 +545,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 +568,8 @@ 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 +600,8 @@ 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 +668,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 +684,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 +705,10 @@ 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 +729,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 +794,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 +814,10 @@ 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 +837,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 +923,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 +981,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 +1027,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 +1048,7 @@ 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 +1058,8 @@ 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 +1074,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 +1092,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 +1114,8 @@ 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 +1145,8 @@ 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 +1209,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 +1225,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 +1246,10 @@ 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 +1270,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 +1335,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 +1355,10 @@ 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 +1377,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 +1455,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 +1465,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 +1481,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 +1499,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 +1521,8 @@ 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 +1552,8 @@ 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 +1616,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 +1632,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 +1653,10 @@ 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 +1676,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 +1741,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 +1761,10 @@ 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 +1783,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 +1869,7 @@ 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 +1916,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 +1937,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 +1947,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 +1964,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 +1982,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 +2005,8 @@ 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 +2071,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 +2087,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 +2109,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 +2132,8 @@ 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 +2212,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 +2222,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 +2239,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 +2257,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 +2280,8 @@ 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 +2346,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 +2362,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 +2383,10 @@ 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 +2407,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 +2495,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 +2519,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 +2537,7 @@ 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 +2575,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 +2675,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 +2699,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 +2714,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 +2726,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 +2774,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 +2794,7 @@ 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 +2803,8 @@ 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 +2819,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 +2835,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 +2858,8 @@ 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 +2922,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 +2938,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 +2959,10 @@ 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 +2983,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 +3041,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 +3063,10 @@ 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 +3087,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 +3165,7 @@ 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 +3174,8 @@ 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 +3190,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 +3206,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 +3229,8 @@ 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 +3293,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 +3309,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 +3330,10 @@ 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 +3354,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 +3412,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 +3434,10 @@ 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 +3458,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 +3544,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 +3568,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 +3586,7 @@ 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 +3637,7 @@ 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 +3663,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 +3684,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 +3697,7 @@ 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 +3778,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 +3787,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 +4043,7 @@ 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 +4067,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 +4077,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 +4092,8 @@ 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 +4109,10 @@ 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 +4131,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 +4196,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 +4211,8 @@ 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 +4233,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 +4255,8 @@ 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 +4314,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 +4336,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 +4358,8 @@ 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 +4435,7 @@ 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 +4445,8 @@ 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 +4461,8 @@ 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 +4478,10 @@ 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 +4500,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 +4565,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 +4581,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 +4602,10 @@ 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 +4626,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 +4685,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 +4707,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 +4729,8 @@ 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 +4815,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 +4842,7 @@ 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 +4862,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 +4872,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 +4886,8 @@ 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 +4903,10 @@ 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 +4926,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 +4991,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 +5007,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 +5028,10 @@ 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 +5051,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 +5109,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 +5130,10 @@ 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 +5153,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 +5230,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 +5240,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 +5254,8 @@ 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 +5271,10 @@ 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 +5294,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 +5359,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 +5374,8 @@ 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 +5396,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 +5418,8 @@ 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 +5476,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 +5497,10 @@ 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 +5520,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 +5605,7 @@ 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 +5629,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 +5648,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 +5699,7 @@ 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 +5792,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 +5818,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 +5834,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 +5847,7 @@ 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 +5871,7 @@ 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 +5926,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 +6026,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 +6050,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 +6076,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 +6092,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 +6105,7 @@ 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 +6237,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 +6328,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 +6347,7 @@ 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 +6356,8 @@ 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 +6371,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 +6386,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 +6408,8 @@ 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 +6451,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 +6460,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 +6475,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 +6490,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 +6512,8 @@ 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 +6564,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 +6584,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 +6602,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..97ce8a1 100644 --- a/tests/test_request.py +++ b/tests/test_request.py @@ -2,7 +2,7 @@ # pylint:disable=line-too-long, too-many-lines, too-many-statements import asyncio -from datetime import datetime +from datetime import datetime, UTC import json from aiohttp.client import ClientSession @@ -93,7 +93,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 +116,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 +458,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 +478,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 +506,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 +550,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 +589,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 +632,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 +711,21 @@ 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 +817,7 @@ 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 +2972,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 +2999,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..3c59818 100644 --- a/tests/test_sonarr.py +++ b/tests/test_sonarr.py @@ -1,7 +1,7 @@ """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, UTC from aresponses.main import ResponsesMockServer as Server import pytest @@ -58,7 +58,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 +114,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 +130,7 @@ 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 +180,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 +188,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 +236,14 @@ 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 +296,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 +304,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 +347,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 +429,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 +438,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, 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 +565,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 +573,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) @@ -584,7 +584,7 @@ async def test_async_parse_title_or_path( 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 + 2006, 9, 27, 0, 0, tzinfo=UTC ) assert data.episodes[0].overview == "string" assert data.episodes[0].hasFile is True @@ -636,7 +636,7 @@ 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 +757,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 +820,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 +829,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 +925,7 @@ 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 +942,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 +951,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 +992,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 +1030,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 +1061,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 +1069,7 @@ 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 +1137,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 +1259,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 +1279,7 @@ 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 +1361,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 +1369,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 +1380,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 +1495,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 From 13e762509ea045226f3f0a006e27bb041be83eb2 Mon Sep 17 00:00:00 2001 From: Robert Hillis Date: Sat, 7 Sep 2024 10:47:51 -0400 Subject: [PATCH 2/4] lint --- tests/test_lidarr.py | 38 +++- tests/test_radarr.py | 19 +- tests/test_readarr.py | 482 +++++++++++++++++++++++++++++++----------- tests/test_request.py | 10 +- tests/test_sonarr.py | 34 ++- 5 files changed, 433 insertions(+), 150 deletions(-) diff --git a/tests/test_lidarr.py b/tests/test_lidarr.py index 1cb7798..a2bb92b 100644 --- a/tests/test_lidarr.py +++ b/tests/test_lidarr.py @@ -1,7 +1,7 @@ """Tests for Lidarr object models.""" # pylint:disable=line-too-long, too-many-lines, too-many-statements -from datetime import datetime, UTC +from datetime import UTC, datetime import json from aresponses.main import ResponsesMockServer as Server @@ -305,7 +305,9 @@ 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, tzinfo=UTC) + 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 @@ -334,7 +336,9 @@ 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, tzinfo=UTC) + 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 @@ -618,7 +622,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, tzinfo=UTC) + 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) @@ -1194,7 +1200,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, tzinfo=UTC) + 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" @@ -1299,7 +1307,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, tzinfo=UTC) + 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) @@ -1493,7 +1503,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, tzinfo=UTC) + 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" @@ -1660,7 +1672,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, tzinfo=UTC) + 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 +1698,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, tzinfo=UTC) + 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" @@ -1970,7 +1986,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, tzinfo=UTC) + 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) diff --git a/tests/test_radarr.py b/tests/test_radarr.py index b5f23c9..2fe168e 100644 --- a/tests/test_radarr.py +++ b/tests/test_radarr.py @@ -1,7 +1,7 @@ """Tests for Radarr object models.""" # pylint:disable=line-too-long, too-many-lines, too-many-statements -from datetime import date, datetime, UTC +from datetime import UTC, date, datetime from aresponses.main import ResponsesMockServer as Server import pytest @@ -979,7 +979,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, tzinfo=UTC) + 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" @@ -1106,7 +1108,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, tzinfo=UTC) + 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" @@ -1207,7 +1211,10 @@ async def test_async_parse(aresponses: Server, radarr_client: RadarrClient) -> N 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.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" @@ -1246,7 +1253,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, tzinfo=UTC) + 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" diff --git a/tests/test_readarr.py b/tests/test_readarr.py index 1500edb..5bfbd71 100644 --- a/tests/test_readarr.py +++ b/tests/test_readarr.py @@ -1,7 +1,7 @@ """Tests for Readarr object models.""" # pylint:disable=line-too-long, too-many-lines, too-many-statements -from datetime import datetime, UTC +from datetime import UTC, datetime import json from aresponses.main import ResponsesMockServer as Server @@ -86,7 +86,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, tzinfo=UTC) + 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,7 +98,9 @@ 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, tzinfo=UTC) + 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 @@ -154,8 +158,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, tzinfo=UTC) - assert _value.metadata.value.died == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) + 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 +194,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, tzinfo=UTC) - assert _value.metadata.value.died == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) + 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 @@ -289,10 +301,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -422,8 +438,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, tzinfo=UTC) - assert _value.metadata.value.died == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) + 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 +520,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, tzinfo=UTC) + 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,7 +532,9 @@ 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, tzinfo=UTC) + 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 @@ -568,8 +592,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, tzinfo=UTC) - assert _value.metadata.value.died == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) + 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 +628,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, tzinfo=UTC) - assert _value.metadata.value.died == datetime(2021, 12, 6, 22, 12, 47, 67000, tzinfo=UTC) + 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 @@ -705,10 +737,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -814,10 +850,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -1048,7 +1088,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, tzinfo=UTC) + 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 +1100,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, tzinfo=UTC) - assert _author.nextBook.added == datetime(2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC) + 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 @@ -1114,8 +1160,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, tzinfo=UTC) - assert _value.metadata.value.died == datetime(2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC) + 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 +1195,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, tzinfo=UTC) - assert _value.metadata.value.died == datetime(2021, 12, 7, 8, 55, 41, 226000, tzinfo=UTC) + 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 @@ -1246,10 +1300,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -1355,10 +1413,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -1521,8 +1583,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, tzinfo=UTC) - assert _value.metadata.value.died == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) + 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 +1618,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, tzinfo=UTC) - assert _value.metadata.value.died == datetime(2021, 12, 7, 8, 55, 41, 227000, tzinfo=UTC) + 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 @@ -1653,10 +1723,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -1761,10 +1835,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -1869,7 +1947,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, tzinfo=UTC) + 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 @@ -2005,8 +2085,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, tzinfo=UTC) - assert _value.metadata.value.died == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) + 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 @@ -2132,8 +2216,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, tzinfo=UTC) - assert _val.metadata.value.died == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) + 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 @@ -2280,8 +2368,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, tzinfo=UTC) - assert _value.metadata.value.died == datetime(2021, 12, 7, 9, 7, 35, 509000, tzinfo=UTC) + 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 @@ -2383,10 +2475,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -2537,7 +2633,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, tzinfo=UTC) + 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" @@ -2794,7 +2892,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, tzinfo=UTC) + 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 +2903,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, tzinfo=UTC) - assert _value.nextBook.added == datetime(2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC) + 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 @@ -2858,8 +2962,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, tzinfo=UTC) - assert _value.metadata.value.died == datetime(2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC) + 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 @@ -2959,10 +3067,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -3063,7 +3175,9 @@ 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, tzinfo=UTC) + 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, tzinfo=UTC) @@ -3165,7 +3279,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, tzinfo=UTC) + 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 +3290,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, tzinfo=UTC) - assert _value.nextBook.added == datetime(2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC) + 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 @@ -3229,8 +3349,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, tzinfo=UTC) - assert _value.metadata.value.died == datetime(2021, 12, 11, 9, 30, 28, 338000, tzinfo=UTC) + 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 @@ -3330,10 +3454,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -3434,7 +3562,9 @@ 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, tzinfo=UTC) + 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, tzinfo=UTC) @@ -3586,7 +3716,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, tzinfo=UTC) + 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 +3769,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, tzinfo=UTC) + 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) @@ -3697,7 +3831,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, tzinfo=UTC) + 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" @@ -4043,7 +4179,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, tzinfo=UTC) + 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) @@ -4092,8 +4230,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, tzinfo=UTC) - assert _value.authorMetadata.value.died == datetime(2020, 1, 6, 12, 49, 48, 602000, tzinfo=UTC) + 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 +4251,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -4211,8 +4357,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, tzinfo=UTC) - assert _val.bookFiles.value[0].dateAdded == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) + 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) @@ -4255,8 +4405,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, tzinfo=UTC) - assert _valu.metadata.value.died == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) + 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 @@ -4358,8 +4512,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, tzinfo=UTC) - assert _valu.metadata.value.died == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) + 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 +4593,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, tzinfo=UTC) + 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 +4605,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, tzinfo=UTC) - assert data.author.lastBook.added == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) + 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 +4625,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, tzinfo=UTC) - assert _value.authorMetadata.value.died == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) + 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 +4646,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -4602,10 +4774,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -4729,8 +4905,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, tzinfo=UTC) - assert _val.metadata.value.died == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) + 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 @@ -4842,7 +5022,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, tzinfo=UTC) + 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) @@ -4886,8 +5068,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, tzinfo=UTC) - assert _book.authorMetadata.value.died == datetime(2020, 1, 6, 12, 49, 48, 603000, tzinfo=UTC) + 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 +5089,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -5028,10 +5218,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -5130,10 +5324,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -5254,8 +5452,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, tzinfo=UTC) - assert _valu.authorMetadata.value.died == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) + 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 +5473,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -5374,8 +5580,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, tzinfo=UTC) - assert _val.bookFiles.value[0].dateAdded == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) + 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) @@ -5418,8 +5628,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, tzinfo=UTC) - assert _va.metadata.value.died == datetime(2020, 1, 6, 12, 49, 48, 604000, tzinfo=UTC) + 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 @@ -5497,10 +5711,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, tzinfo=UTC) + 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, tzinfo=UTC) + 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) @@ -5605,7 +5823,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, tzinfo=UTC) + 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 @@ -5699,7 +5919,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, tzinfo=UTC) + 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" @@ -5847,7 +6069,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, tzinfo=UTC) + 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 +6095,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, tzinfo=UTC) + 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" @@ -6105,7 +6331,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, tzinfo=UTC) + 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" @@ -6347,7 +6575,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, tzinfo=UTC) + 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,7 +6586,9 @@ 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, tzinfo=UTC) + 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 @@ -6408,8 +6640,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, tzinfo=UTC) - assert _value.metadata.value.died == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) + 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 @@ -6512,8 +6748,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, tzinfo=UTC) - assert _value.metadata.value.died == datetime(2021, 12, 10, 10, 0, 6, 987000, tzinfo=UTC) + 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 diff --git a/tests/test_request.py b/tests/test_request.py index 97ce8a1..0a06d6a 100644 --- a/tests/test_request.py +++ b/tests/test_request.py @@ -2,7 +2,7 @@ # pylint:disable=line-too-long, too-many-lines, too-many-statements import asyncio -from datetime import datetime, UTC +from datetime import UTC, datetime import json from aiohttp.client import ClientSession @@ -711,7 +711,9 @@ 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, tzinfo=UTC) + 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 @@ -817,7 +819,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, tzinfo=UTC) + assert data.directories[0].lastModified == datetime( + 2020, 1, 4, 3, 2, 20, tzinfo=UTC + ) assert data.files == [] diff --git a/tests/test_sonarr.py b/tests/test_sonarr.py index 3c59818..7dd2277 100644 --- a/tests/test_sonarr.py +++ b/tests/test_sonarr.py @@ -1,7 +1,7 @@ """Tests for Sonarr object models.""" # pylint:disable=line-too-long, too-many-lines, too-many-statements -from datetime import datetime, UTC +from datetime import UTC, datetime from aresponses.main import ResponsesMockServer as Server import pytest @@ -130,7 +130,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, tzinfo=UTC) + 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" @@ -243,7 +245,9 @@ async def test_async_get_episodes( 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, tzinfo=UTC) + 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" @@ -438,7 +442,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, tzinfo=UTC) + 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" @@ -583,9 +589,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=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 +640,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, tzinfo=UTC) + 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" @@ -925,7 +931,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, tzinfo=UTC) + 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) @@ -1069,7 +1077,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, tzinfo=UTC) + 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) @@ -1279,7 +1289,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, tzinfo=UTC) + 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" From b6b82b8749ecbe365e7e934b8a5072d8881e1a76 Mon Sep 17 00:00:00 2001 From: Robert Hillis Date: Sat, 7 Sep 2024 11:12:50 -0400 Subject: [PATCH 3/4] fix utc import --- aiopyarr/models/radarr_common.py | 9 ++++++++- tests/test_lidarr.py | 9 ++++++++- tests/test_radarr.py | 9 ++++++++- tests/test_readarr.py | 9 ++++++++- tests/test_request.py | 9 ++++++++- tests/test_sonarr.py | 9 ++++++++- 6 files changed, 48 insertions(+), 6 deletions(-) diff --git a/aiopyarr/models/radarr_common.py b/aiopyarr/models/radarr_common.py index 11a7ea3..e1cdaba 100644 --- a/aiopyarr/models/radarr_common.py +++ b/aiopyarr/models/radarr_common.py @@ -4,7 +4,14 @@ from __future__ import annotations from dataclasses import dataclass, field -from datetime import UTC, date, datetime, 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 RELEASE_TYPES diff --git a/tests/test_lidarr.py b/tests/test_lidarr.py index a2bb92b..943f3c3 100644 --- a/tests/test_lidarr.py +++ b/tests/test_lidarr.py @@ -1,9 +1,16 @@ """Tests for Lidarr object models.""" # pylint:disable=line-too-long, too-many-lines, too-many-statements -from datetime import UTC, datetime +from datetime import datetime import json +try: + from datetime import UTC +except ImportError: + from datetime import timezone + + UTC = timezone.utc + from aresponses.main import ResponsesMockServer as Server import pytest diff --git a/tests/test_radarr.py b/tests/test_radarr.py index 2fe168e..78066e7 100644 --- a/tests/test_radarr.py +++ b/tests/test_radarr.py @@ -1,7 +1,14 @@ """Tests for Radarr object models.""" # pylint:disable=line-too-long, too-many-lines, too-many-statements -from datetime import UTC, date, datetime +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 diff --git a/tests/test_readarr.py b/tests/test_readarr.py index 5bfbd71..e086b1a 100644 --- a/tests/test_readarr.py +++ b/tests/test_readarr.py @@ -1,7 +1,14 @@ """Tests for Readarr object models.""" # pylint:disable=line-too-long, too-many-lines, too-many-statements -from datetime import UTC, datetime +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 diff --git a/tests/test_request.py b/tests/test_request.py index 0a06d6a..e0659fb 100644 --- a/tests/test_request.py +++ b/tests/test_request.py @@ -2,7 +2,14 @@ # pylint:disable=line-too-long, too-many-lines, too-many-statements import asyncio -from datetime import UTC, datetime +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 diff --git a/tests/test_sonarr.py b/tests/test_sonarr.py index 7dd2277..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 UTC, datetime +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 From cb7e6cc778c4b763b5294f8a84f1a102c9a1630d Mon Sep 17 00:00:00 2001 From: Robert Hillis Date: Sat, 7 Sep 2024 11:17:44 -0400 Subject: [PATCH 4/4] pylint --- tests/test_lidarr.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_lidarr.py b/tests/test_lidarr.py index 943f3c3..ffaa4e5 100644 --- a/tests/test_lidarr.py +++ b/tests/test_lidarr.py @@ -5,7 +5,7 @@ import json try: - from datetime import UTC + from datetime import UTC # pylint:disable=ungrouped-imports except ImportError: from datetime import timezone