Move common exceptions from pgwui_server
authorKarl O. Pinc <kop@karlpinc.com>
Sat, 29 Aug 2020 23:19:20 +0000 (18:19 -0500)
committerKarl O. Pinc <kop@karlpinc.com>
Sat, 29 Aug 2020 23:19:20 +0000 (18:19 -0500)
src/pgwui_common/exceptions.py [new file with mode: 0644]
tests/test_exceptions.py [new file with mode: 0644]

diff --git a/src/pgwui_common/exceptions.py b/src/pgwui_common/exceptions.py
new file mode 100644 (file)
index 0000000..be829a5
--- /dev/null
@@ -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
+# <http://www.gnu.org/licenses/>.
+#
+
+# Karl O. Pinc <kop@karlpinc.com>
+
+'''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 (file)
index 0000000..d946e10
--- /dev/null
@@ -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
+# <http://www.gnu.org/licenses/>.
+#
+
+# Karl O. Pinc <kop@karlpinc.com>
+
+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)