From 20e6268fc98f58920c0d44c5afa6932c51106d06 Mon Sep 17 00:00:00 2001 From: "Karl O. Pinc" Date: Sat, 29 Aug 2020 18:19:20 -0500 Subject: [PATCH] Move common exceptions from pgwui_server --- src/pgwui_common/exceptions.py | 46 ++++++++++++++++++++++++++++++++++ tests/test_exceptions.py | 42 +++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 src/pgwui_common/exceptions.py create mode 100644 tests/test_exceptions.py diff --git a/src/pgwui_common/exceptions.py b/src/pgwui_common/exceptions.py new file mode 100644 index 0000000..be829a5 --- /dev/null +++ b/src/pgwui_common/exceptions.py @@ -0,0 +1,46 @@ +# Copyright (C) 2018, 2019 The Meme Factory, Inc. http://www.karlpinc.com/ + +# This file is part of PGWUI_Server. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU Affero General Public License +# as published by the Free Software Foundation, either version 3 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public +# License along with this program. If not, see +# . +# + +# Karl O. Pinc + +'''Exceptions for PGWUI_Common, shared by all PGWUI components +''' + + +class Error(Exception): + '''Base error class for module + ''' + pass + + +class UnknownSettingKeyError(Error): + def __init__(self, key): + super().__init__('Unknown PGWUI setting: {}'.format(key)) + + +class MissingSettingError(Error): + def __init__(self, key): + super().__init__('Missing PGWUI setting: {}'.format(key)) + + +class NotBooleanSettingError(Error): + def __init__(self, key, value): + super().__init__( + 'The "{}" PGWUI setting must be "True" or "False"' + .format(key)) diff --git a/tests/test_exceptions.py b/tests/test_exceptions.py new file mode 100644 index 0000000..d946e10 --- /dev/null +++ b/tests/test_exceptions.py @@ -0,0 +1,42 @@ +# Copyright (C) 2020 The Meme Factory, Inc. http://www.karlpinc.com/ + +# This file is part of PGWUI_Common. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU Affero General Public License +# as published by the Free Software Foundation, either version 3 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public +# License along with this program. If not, see +# . +# + +# Karl O. Pinc + +import pgwui_common.exceptions as common_ex + + +# Functional tests + +def test_unknownsettingkeyerror(): + '''Takes an argument''' + assert isinstance(common_ex.UnknownSettingKeyError('key'), + common_ex.Error) + + +def test_missingsettingerror(): + '''Takes an argument''' + assert isinstance(common_ex.MissingSettingError('key'), + common_ex.Error) + + +def test_notbooleansettingerror(): + '''Takes two arguments''' + assert isinstance(common_ex.NotBooleanSettingError('key', 'val'), + common_ex.Error) -- 2.34.1