← Back to team overview

checkbox-dev team mailing list archive

[PATCH 05/13] plainbox:secure:providers: add Provider1.data_dir

 

This patch makes the per-provider 'data' directory available as a
property of Providrer1 objects. The default value is relative to the
base directory but it can be overridden to point at any directory.

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@xxxxxxxxxxxxx>
---
 plainbox/plainbox/impl/secure/providers/test_v1.py |  6 ++++++
 plainbox/plainbox/impl/secure/providers/v1.py      | 13 ++++++++++++-
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/plainbox/plainbox/impl/secure/providers/test_v1.py b/plainbox/plainbox/impl/secure/providers/test_v1.py
index d0f14bc..ce45665 100644
--- a/plainbox/plainbox/impl/secure/providers/test_v1.py
+++ b/plainbox/plainbox/impl/secure/providers/test_v1.py
@@ -540,6 +540,12 @@ class Provider1Tests(TestCase):
         """
         self.assertEqual(self.provider.bin_dir, "base-dir/bin")
 
+    def test_data_dir(self):
+        """
+        Verify that Provider1.data_dir attribute is set correctly
+        """
+        self.assertEqual(self.provider.data_dir, "base-dir/data")
+
     def test_whitelists_dir(self):
         """
         Verify that Provider1.whitelists_dir attribute is set correctly
diff --git a/plainbox/plainbox/impl/secure/providers/v1.py b/plainbox/plainbox/impl/secure/providers/v1.py
index 68ae238..db19bc3 100644
--- a/plainbox/plainbox/impl/secure/providers/v1.py
+++ b/plainbox/plainbox/impl/secure/providers/v1.py
@@ -135,7 +135,7 @@ class Provider1(IProvider1, IProviderBackend1):
     """
 
     def __init__(self, base_dir, name, version, description, secure,
-                 gettext_domain=None, locale_dir=None):
+                 gettext_domain=None, locale_dir=None, data_dir=None):
         """
         Initialize the provider with the associated base directory.
 
@@ -146,6 +146,7 @@ class Provider1(IProvider1, IProviderBackend1):
         """
         self._base_dir = base_dir
         self._locale_dir = locale_dir
+        self._data_dir = data_dir
         self._name = name
         self._version = version
         self._description = description
@@ -218,6 +219,16 @@ class Provider1(IProvider1, IProviderBackend1):
         return os.path.join(self._base_dir, "whitelists")
 
     @property
+    def data_dir(self):
+        """
+        absolute path of the data directory
+        """
+        if self._data_dir is not None:
+            return self._data_dir
+        else:
+            return os.path.join(self._base_dir, "data")
+
+    @property
     def locale_dir(self):
         """
         absolute path of the directory with locale data
-- 
1.9.0



References