From 1744e8706c78bd284f020f310d87021276ef2392 Mon Sep 17 00:00:00 2001
From: Lance Edgar <lance@edbob.org>
Date: Tue, 20 Aug 2024 22:13:33 -0500
Subject: [PATCH 1/2] fix: add app handler methods: `get_node_title()`,
 `get_node_type()`

---
 src/wuttjamaican/app.py | 39 +++++++++++++++++++++++++++++++++++++++
 tests/test_app.py       | 22 ++++++++++++++++++++++
 2 files changed, 61 insertions(+)

diff --git a/src/wuttjamaican/app.py b/src/wuttjamaican/app.py
index 9b38960..0d1eb77 100644
--- a/src/wuttjamaican/app.py
+++ b/src/wuttjamaican/app.py
@@ -152,6 +152,45 @@ class AppHandler:
         return self.config.get(f'{self.appname}.app_title',
                                default=default or self.default_app_title)
 
+    def get_node_title(self, default=None):
+        """
+        Returns the configured title for the local app node.
+
+        If none is configured, and no default provided, will return
+        the value from :meth:`get_title()`.
+
+        :param default: Value to use if the node title is not
+           configured.
+
+        :returns: Title for the local app node.
+        """
+        title = self.config.get(f'{self.appname}.node_title')
+        if title:
+            return title
+        return self.get_title(default=default)
+
+    def get_node_type(self, default=None):
+        """
+        Returns the "type" of current app node.
+
+        The framework itself does not (yet?) have any notion of what a
+        node type means.  This abstraction is here for convenience, in
+        case it is needed by a particular app ecosystem.
+
+        :returns: String name for the node type, or ``None``.
+
+        The node type must be configured via file; this cannot be done
+        with a DB setting.  Depending on :attr:`appname` that is like
+        so:
+
+        .. code-block:: ini
+
+           [wutta]
+           node_type = warehouse
+        """
+        return self.config.get(f'{self.appname}.node_type', default=default,
+                               usedb=False)
+
     def get_distribution(self, obj=None):
         """
         Returns the appropriate Python distribution name.
diff --git a/tests/test_app.py b/tests/test_app.py
index d57b756..35ec466 100644
--- a/tests/test_app.py
+++ b/tests/test_app.py
@@ -179,6 +179,28 @@ class TestAppHandler(TestCase):
     def test_get_title(self):
         self.assertEqual(self.app.get_title(), 'WuttJamaican')
 
+    def test_get_node_title(self):
+
+        # default
+        self.assertEqual(self.app.get_node_title(), 'WuttJamaican')
+
+        # will fallback to app title
+        self.config.setdefault('wuttatest.app_title', "WuttaTest")
+        self.assertEqual(self.app.get_node_title(), 'WuttaTest')
+
+        # will read from config
+        self.config.setdefault('wuttatest.node_title', "WuttaNode")
+        self.assertEqual(self.app.get_node_title(), 'WuttaNode')
+
+    def test_get_node_type(self):
+
+        # default
+        self.assertIsNone(self.app.get_node_type())
+
+        # will read from config
+        self.config.setdefault('wuttatest.node_type', 'warehouse')
+        self.assertEqual(self.app.get_node_type(), 'warehouse')
+
     def test_get_distribution(self):
 
         try:

From 14a150b2ef0345415774b6140f48559b62801dd6 Mon Sep 17 00:00:00 2001
From: Lance Edgar <lance@edbob.org>
Date: Thu, 22 Aug 2024 14:50:06 -0500
Subject: [PATCH 2/2] =?UTF-8?q?bump:=20version=200.12.0=20=E2=86=92=200.12?=
 =?UTF-8?q?.1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 CHANGELOG.md   | 6 ++++++
 pyproject.toml | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0c5de9d..7126fd7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,12 @@ All notable changes to WuttJamaican will be documented in this file.
 The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
 and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
 
+## v0.12.1 (2024-08-22)
+
+### Fix
+
+- add app handler methods: `get_node_title()`, `get_node_type()`
+
 ## v0.12.0 (2024-08-15)
 
 ### Feat
diff --git a/pyproject.toml b/pyproject.toml
index b48b385..dab36b5 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
 
 [project]
 name = "WuttJamaican"
-version = "0.12.0"
+version = "0.12.1"
 description = "Base package for Wutta Framework"
 readme = "README.md"
 authors = [{name = "Lance Edgar", email = "lance@edbob.org"}]