158
162
self.assertEqual(
159
163
make_string_from_list(base, l),
160
164
"There was a problem posting this review to twister, factbook, identi.catz and baz (omg!)")
166
def test_capitalize_first_word(self):
167
from softwarecenter.utils import capitalize_first_word
168
test_synopsis = "feature-rich console based todo list manager"
169
capitalized = capitalize_first_word(test_synopsis)
171
capitalized == "Feature-rich console based todo list manager")
172
test_synopsis = "MPlayer's Movie Encoder"
173
capitalized = capitalize_first_word(test_synopsis)
175
capitalized == "MPlayer's Movie Encoder")
177
def test_ensure_file_writable_and_delete_if_not(self):
178
from softwarecenter.utils import ensure_file_writable_and_delete_if_not
179
from tempfile import NamedTemporaryFile
180
# first test that a non-writable file (0400) is deleted
181
test_file_not_writeable = NamedTemporaryFile()
182
os.chmod(test_file_not_writeable.name, stat.S_IRUSR)
183
self.assertFalse(os.access(test_file_not_writeable.name, os.W_OK))
184
ensure_file_writable_and_delete_if_not(test_file_not_writeable.name)
185
self.assertFalse(os.path.exists(test_file_not_writeable.name))
186
# then test that a writable file (0600) is not deleted
187
test_file_writeable = NamedTemporaryFile()
188
os.chmod(test_file_writeable.name, stat.S_IRUSR|stat.S_IWUSR)
189
self.assertTrue(os.access(test_file_writeable.name, os.W_OK))
190
ensure_file_writable_and_delete_if_not(test_file_writeable.name)
191
self.assertTrue(os.path.exists(test_file_writeable.name))
193
def test_safe_makedirs(self):
194
from softwarecenter.utils import safe_makedirs
195
from tempfile import mkdtemp
198
target = os.path.join(tmp, "foo", "bar")
199
safe_makedirs(target)
200
# we need the patch to ensure that the code is actually executed
201
with patch("os.path.exists") as mock_:
202
mock_.return_value = False
203
self.assertTrue(os.path.isdir(target))
204
# ensure that creating the base dir again does not crash
205
safe_makedirs(target)
206
self.assertTrue(os.path.isdir(target))
207
# ensure we still get regular errors like permission denied
209
os.chmod(os.path.join(tmp, "foo"), 0400)
210
self.assertRaises(OSError, safe_makedirs, target)
211
# set back to stat.(S_IRUSR|S_IWUSR|S_IXUSR) to make rmtree work
212
os.chmod(os.path.join(tmp, "foo"), 0700)
163
216
class TestExpungeCache(unittest.TestCase):