From 9f3df6aee3a0ffb0484f0617126762b4e90d16c4 Mon Sep 17 00:00:00 2001 From: Romuald Juchnowicz-Bierbasz Date: Fri, 15 Feb 2019 10:16:26 +0100 Subject: [PATCH] SDK-2525: Add AuthenticationRequired error, change codes --- galaxy/api/errors.py | 40 +++++++++++++++++++++----------------- tests/test_authenticate.py | 18 ++++++++--------- tests/test_chat.py | 17 +++++++++++++++- 3 files changed, 47 insertions(+), 28 deletions(-) diff --git a/galaxy/api/errors.py b/galaxy/api/errors.py index d918fc7..24800c8 100644 --- a/galaxy/api/errors.py +++ b/galaxy/api/errors.py @@ -4,6 +4,22 @@ class UnknownError(ApplicationError): def __init__(self, data=None): super().__init__(0, "Unknown error", data) +class AuthenticationRequired(ApplicationError): + def __init__(self, data=None): + super().__init__(1, "Authentication required", data) + +class BackendNotAvailable(ApplicationError): + def __init__(self, data=None): + super().__init__(2, "Backend not available", data) + +class BackendTimeout(ApplicationError): + def __init__(self, data=None): + super().__init__(3, "Backend timed out", data) + +class BackendError(ApplicationError): + def __init__(self, data=None): + super().__init__(4, "Backend error", data) + class InvalidCredentials(ApplicationError): def __init__(self, data=None): super().__init__(100, "Invalid credentials", data) @@ -20,41 +36,29 @@ class ProtocolError(ApplicationError): def __init__(self, data=None): super().__init__(103, "Protocol error", data) -class BackendNotAvailable(ApplicationError): - def __init__(self, data=None): - super().__init__(104, "Backend not available", data) - -class BackendTimeout(ApplicationError): - def __init__(self, data=None): - super().__init__(105, "Backend timed out", data) - -class BackendError(ApplicationError): - def __init__(self, data=None): - super().__init__(106, "Backend error", data) - class TemporaryBlocked(ApplicationError): def __init__(self, data=None): - super().__init__(107, "Temporary blocked", data) + super().__init__(104, "Temporary blocked", data) class Banned(ApplicationError): def __init__(self, data=None): - super().__init__(108, "Banned", data) + super().__init__(105, "Banned", data) class AccessDenied(ApplicationError): def __init__(self, data=None): - super().__init__(109, "Access denied", data) + super().__init__(106, "Access denied", data) class ParentalControlBlock(ApplicationError): def __init__(self, data=None): - super().__init__(110, "Parental control block", data) + super().__init__(107, "Parental control block", data) class DeviceBlocked(ApplicationError): def __init__(self, data=None): - super().__init__(111, "Device blocked", data) + super().__init__(108, "Device blocked", data) class RegionBlocked(ApplicationError): def __init__(self, data=None): - super().__init__(112, "Region blocked", data) + super().__init__(109, "Region blocked", data) class FailedParsingManifest(ApplicationError): def __init__(self, data=None): diff --git a/tests/test_authenticate.py b/tests/test_authenticate.py index 6a8ca26..c11abf2 100644 --- a/tests/test_authenticate.py +++ b/tests/test_authenticate.py @@ -34,19 +34,19 @@ def test_success(plugin, readline, write): @pytest.mark.parametrize("error,code,message", [ pytest.param(UnknownError, 0, "Unknown error", id="unknown_error"), + pytest.param(BackendNotAvailable, 2, "Backend not available", id="backend_not_available"), + pytest.param(BackendTimeout, 3, "Backend timed out", id="backend_timeout"), + pytest.param(BackendError, 4, "Backend error", id="backend_error"), pytest.param(InvalidCredentials, 100, "Invalid credentials", id="invalid_credentials"), pytest.param(NetworkError, 101, "Network error", id="network_error"), pytest.param(LoggedInElsewhere, 102, "Logged in elsewhere", id="logged_elsewhere"), pytest.param(ProtocolError, 103, "Protocol error", id="protocol_error"), - pytest.param(BackendNotAvailable, 104, "Backend not available", id="backend_not_available"), - pytest.param(BackendTimeout, 105, "Backend timed out", id="backend_timeout"), - pytest.param(BackendError, 106, "Backend error", id="backend_error"), - pytest.param(TemporaryBlocked, 107, "Temporary blocked", id="temporary_blocked"), - pytest.param(Banned, 108, "Banned", id="banned"), - pytest.param(AccessDenied, 109, "Access denied", id="access_denied"), - pytest.param(ParentalControlBlock, 110, "Parental control block", id="parental_control_clock"), - pytest.param(DeviceBlocked, 111, "Device blocked", id="device_blocked"), - pytest.param(RegionBlocked, 112, "Region blocked", id="region_blocked") + pytest.param(TemporaryBlocked, 104, "Temporary blocked", id="temporary_blocked"), + pytest.param(Banned, 105, "Banned", id="banned"), + pytest.param(AccessDenied, 106, "Access denied", id="access_denied"), + pytest.param(ParentalControlBlock, 107, "Parental control block", id="parental_control_clock"), + pytest.param(DeviceBlocked, 108, "Device blocked", id="device_blocked"), + pytest.param(RegionBlocked, 109, "Region blocked", id="region_blocked") ]) def test_failure(plugin, readline, write, error, code, message): request = { diff --git a/tests/test_chat.py b/tests/test_chat.py index 9493458..a9fbd13 100644 --- a/tests/test_chat.py +++ b/tests/test_chat.py @@ -4,7 +4,10 @@ import json import pytest from galaxy.api.types import Room, Message -from galaxy.api.errors import UnknownError, TooManyMessagesSent, IncoherentLastMessage, MessageNotFound +from galaxy.api.errors import ( + UnknownError, AuthenticationRequired, BackendNotAvailable, BackendTimeout, BackendError, + TooManyMessagesSent, IncoherentLastMessage, MessageNotFound +) def test_send_message_success(plugin, readline, write): request = { @@ -31,6 +34,10 @@ def test_send_message_success(plugin, readline, write): @pytest.mark.parametrize("error,code,message", [ pytest.param(UnknownError, 0, "Unknown error", id="unknown_error"), + pytest.param(AuthenticationRequired, 1, "Authentication required", id="not_authenticated"), + pytest.param(BackendNotAvailable, 2, "Backend not available", id="backend_not_available"), + pytest.param(BackendTimeout, 3, "Backend timed out", id="backend_timeout"), + pytest.param(BackendError, 4, "Backend error", id="backend_error"), pytest.param(TooManyMessagesSent, 300, "Too many messages sent", id="too_many_messages") ]) def test_send_message_failure(plugin, readline, write, error, code, message): @@ -84,6 +91,10 @@ def test_mark_as_read_success(plugin, readline, write): @pytest.mark.parametrize("error,code,message", [ pytest.param(UnknownError, 0, "Unknown error", id="unknown_error"), + pytest.param(AuthenticationRequired, 1, "Authentication required", id="not_authenticated"), + pytest.param(BackendNotAvailable, 2, "Backend not available", id="backend_not_available"), + pytest.param(BackendTimeout, 3, "Backend timed out", id="backend_timeout"), + pytest.param(BackendError, 4, "Backend error", id="backend_error"), pytest.param( IncoherentLastMessage, 400, @@ -216,6 +227,10 @@ def test_get_room_history_from_message_success(plugin, readline, write): @pytest.mark.parametrize("error,code,message", [ pytest.param(UnknownError, 0, "Unknown error", id="unknown_error"), + pytest.param(AuthenticationRequired, 1, "Authentication required", id="not_authenticated"), + pytest.param(BackendNotAvailable, 2, "Backend not available", id="backend_not_available"), + pytest.param(BackendTimeout, 3, "Backend timed out", id="backend_timeout"), + pytest.param(BackendError, 4, "Backend error", id="backend_error"), pytest.param(MessageNotFound, 500, "Message not found", id="message_not_found") ]) def test_get_room_history_from_message_failure(plugin, readline, write, error, code, message):