Skip to content

Commit

Permalink
Merge pull request #18 from jiak94/bug_fix_watchlist
Browse files Browse the repository at this point in the history
fix: 🐛 Fix single watchlist exception
  • Loading branch information
jiak94 authored May 16, 2024
2 parents 28addf4 + 3c9f430 commit 033b6ed
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 1 deletion.
6 changes: 5 additions & 1 deletion asynctradier/clients/watchlist_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,11 @@ async def get_watchlists(self) -> List[Watchlist]:
"""
url = "/v1/watchlists"
response = await self.session.get(url)
watchlists = response.get("watchlists", {}).get("watchlist", [])
watchlists = response.get("watchlists", {}).get("watchlist")
if watchlists is None:
return []
elif isinstance(watchlists, dict):
return [Watchlist(**watchlists)]
return [Watchlist(**watchlist) for watchlist in watchlists]

async def get_watchlist(self, watchlist_id: str) -> Watchlist:
Expand Down
25 changes: 25 additions & 0 deletions tests/test_tradier.py
Original file line number Diff line number Diff line change
Expand Up @@ -3316,6 +3316,31 @@ def mock_get(path: str, params: dict = None):
tradier_client.session.get.assert_called_once_with("/v1/watchlists")


@pytest.mark.asyncio()
async def test_get_watchlists_single_element(mocker, tradier_client):
def mock_get(path: str, params: dict = None):
return {
"watchlists": {
"watchlist": {
"name": "default",
"id": "default",
"public_id": "public-atea42pd",
}
}
}

mocker.patch.object(tradier_client.session, "get", side_effect=mock_get)

watchlists = await tradier_client.get_watchlists()

assert len(watchlists) == 1
assert watchlists[0].name == "default"
assert watchlists[0].id == "default"
assert watchlists[0].public_id == "public-atea42pd"

tradier_client.session.get.assert_called_once_with("/v1/watchlists")


@pytest.mark.asyncio()
async def test_get_watchlist(mocker, tradier_client):
def mock_get(path: str, params: dict = None):
Expand Down

0 comments on commit 033b6ed

Please sign in to comment.