File: settings-defaultpath.patch

package info (click to toggle)
alot 0.11-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,716 kB
  • sloc: python: 11,261; makefile: 125; sh: 8
file content (144 lines) | stat: -rw-r--r-- 5,160 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
From: Simon Chopin <schopin@ubuntu.com>
Date: Thu, 14 Aug 2025 11:34:07 +0200
Subject: tests: change the default setting path to work around pybuild

Sadly, pybuild doesn't preserve tree structure when copying directories,
so we work around this by changing the various DEFAULTSPATH constants in
the relevant tests to point to the right one.

This could be dropped in favour of https://salsa.debian.org/python-team/tools/dh-python/-/merge_requests/60
if that ever goes in.

Forwarded: not-needed
---
 alot/addressbook/abook.py       |  3 +--
 alot/settings/manager.py        |  4 ++++
 tests/addressbook/test_abook.py |  3 +++
 tests/commands/test_envelope.py |  1 +
 tests/db/test_manager.py        |  1 +
 tests/settings/test_manager.py  |  1 +
 tests/settings/test_theme.py    |  3 +++
 tests/utilities.py              | 10 ++++++++++
 8 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/alot/addressbook/abook.py b/alot/addressbook/abook.py
index 5cdfcf2..77bb65c 100644
--- a/alot/addressbook/abook.py
+++ b/alot/addressbook/abook.py
@@ -5,6 +5,7 @@ import os
 from . import AddressBook
 from ..settings.utils import read_config
 
+DEFAULTSPATH = os.path.join(os.path.dirname(__file__), '..', 'defaults')
 
 class AbookAddressBook(AddressBook):
     """:class:`AddressBook` that parses abook's config/database files"""
@@ -14,8 +15,6 @@ class AbookAddressBook(AddressBook):
         :type path: str
         """
         AddressBook.__init__(self, **kwargs)
-        DEFAULTSPATH = os.path.join(os.path.dirname(__file__), '..',
-                                    'defaults')
         self._spec = os.path.join(DEFAULTSPATH, 'abook_contacts.spec')
         path = os.path.expanduser(path)
         self._config = read_config(path, self._spec)
diff --git a/alot/settings/manager.py b/alot/settings/manager.py
index b903668..a7eb0f9 100644
--- a/alot/settings/manager.py
+++ b/alot/settings/manager.py
@@ -23,6 +23,10 @@ from .theme import Theme
 
 
 DEFAULTSPATH = os.path.join(os.path.dirname(__file__), '..', 'defaults')
+# Workaround for pybuild not copying data files properly
+if not os.path.exists(DEFAULTSPATH):
+    DEFAULTSPATH = os.path.join(os.path.dirname(__file__), '..', '..', 'defaults')
+
 DATA_DIRS = get_xdg_env('XDG_DATA_DIRS',
                         '/usr/local/share:/usr/share').split(':')
 
diff --git a/tests/addressbook/test_abook.py b/tests/addressbook/test_abook.py
index 13452fb..ce52d6c 100644
--- a/tests/addressbook/test_abook.py
+++ b/tests/addressbook/test_abook.py
@@ -8,6 +8,9 @@ import unittest
 from alot.addressbook import abook
 from alot.settings.errors import ConfigError
 
+from .. import utilities
+utilities.fix_default_paths()
+
 
 class TestAbookAddressBook(unittest.TestCase):
 
diff --git a/tests/commands/test_envelope.py b/tests/commands/test_envelope.py
index e15d1b4..3aaa2ac 100644
--- a/tests/commands/test_envelope.py
+++ b/tests/commands/test_envelope.py
@@ -31,6 +31,7 @@ from alot.settings.manager import SettingsManager
 from alot.account import Account
 
 from .. import utilities
+utilities.fix_default_paths()
 
 # When using an assert from a mock a TestCase method might not use self. That's
 # okay.
diff --git a/tests/db/test_manager.py b/tests/db/test_manager.py
index 554db6f..bf3a978 100644
--- a/tests/db/test_manager.py
+++ b/tests/db/test_manager.py
@@ -15,6 +15,7 @@ from alot.settings.const import settings
 from notmuch2 import Database
 
 from .. import utilities
+utilities.fix_default_paths()
 
 
 class TestDBManager(utilities.TestCaseClassCleanup):
diff --git a/tests/settings/test_manager.py b/tests/settings/test_manager.py
index 6548ee8..92a6b3c 100644
--- a/tests/settings/test_manager.py
+++ b/tests/settings/test_manager.py
@@ -15,6 +15,7 @@ from alot.settings.manager import SettingsManager
 from alot.settings.errors import ConfigError, NoMatchingAccount
 
 from .. import utilities
+utilities.fix_default_paths()
 
 
 class TestSettingsManager(unittest.TestCase):
diff --git a/tests/settings/test_theme.py b/tests/settings/test_theme.py
index 2513919..e0bcddd 100644
--- a/tests/settings/test_theme.py
+++ b/tests/settings/test_theme.py
@@ -6,6 +6,9 @@ import unittest
 
 from alot.settings import theme
 
+from .. import utilities
+utilities.fix_default_paths()
+
 
 DUMMY_THEME = """\
 [bufferlist]
diff --git a/tests/utilities.py b/tests/utilities.py
index 671fe57..22327f3 100644
--- a/tests/utilities.py
+++ b/tests/utilities.py
@@ -23,6 +23,16 @@ from unittest import mock
 
 import gpg
 
+import os.path
+def fix_default_paths():
+    from alot.settings import manager, theme
+    from alot.addressbook import abook
+    if not os.path.exists(manager.DEFAULTSPATH):
+        manager.DEFAULTSPATH = os.path.join(os.path.dirname(__file__), '..', 'defaults')
+    if not os.path.exists(theme.DEFAULTSPATH):
+        theme.DEFAULTSPATH = os.path.join(os.path.dirname(__file__), '..', 'defaults')
+    if not os.path.exists(abook.DEFAULTSPATH):
+        abook.DEFAULTSPATH = os.path.join(os.path.dirname(__file__), '..', 'defaults')
 
 def _tear_down_class_wrapper(original, cls):
     """Ensure that doClassCleanups is called after tearDownClass."""