From ca778e2cdb95b4b00283896ab208f5fa21c0c7ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Kierski?= Date: Mon, 11 Mar 2019 13:47:12 +0100 Subject: [PATCH] SDK-2647 Serializing local game state as integer --- README.md | 1 + galaxy/api/consts.py | 10 +++++----- tests/test_local_games.py | 15 ++++++++++----- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 4bd7533..011ba0a 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ pytest ### 0.16 * Do not log sensitive data. +* Return `LocalGameState` as int (possible combination of flags). ### 0.15 * `shutdown()` is called on socket disconnection. ### 0.14 diff --git a/galaxy/api/consts.py b/galaxy/api/consts.py index b1c7933..14cfa59 100644 --- a/galaxy/api/consts.py +++ b/galaxy/api/consts.py @@ -1,4 +1,4 @@ -from enum import Enum +from enum import Enum, Flag class Platform(Enum): Unknown = "unknown" @@ -30,10 +30,10 @@ class LicenseType(Enum): FreeToPlay = "FreeToPlay" OtherUserLicense = "OtherUserLicense" -class LocalGameState(Enum): - None_ = "None" - Installed = "Installed" - Running = "Running" +class LocalGameState(Flag): + None_ = 0 + Installed = 1 + Running = 2 class PresenceState(Enum): Unknown = "Unknown" diff --git a/tests/test_local_games.py b/tests/test_local_games.py index a243b33..c97e8d2 100644 --- a/tests/test_local_games.py +++ b/tests/test_local_games.py @@ -17,8 +17,9 @@ def test_success(plugin, readline, write): readline.side_effect = [json.dumps(request), ""] plugin.get_local_games.return_value = [ - LocalGame("1", "Running"), - LocalGame("2", "Installed") + LocalGame("1", LocalGameState.Running), + LocalGame("2", LocalGameState.Installed), + LocalGame("3", LocalGameState.Installed | LocalGameState.Running) ] asyncio.run(plugin.run()) plugin.get_local_games.assert_called_with() @@ -31,11 +32,15 @@ def test_success(plugin, readline, write): "local_games" : [ { "game_id": "1", - "local_game_state": "Running" + "local_game_state": LocalGameState.Running.value }, { "game_id": "2", - "local_game_state": "Installed" + "local_game_state": LocalGameState.Installed.value + }, + { + "game_id": "3", + "local_game_state": (LocalGameState.Installed | LocalGameState.Running).value } ] } @@ -85,7 +90,7 @@ def test_local_game_state_update(plugin, write): "params": { "local_game": { "game_id": "1", - "local_game_state": "Running" + "local_game_state": LocalGameState.Running.value } } }