summaryrefslogtreecommitdiff
path: root/tests/test_recursiveloader.py
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2017-12-12 15:58:22 +0100
committerMichał Górny <mgorny@gentoo.org>2017-12-12 15:58:22 +0100
commit21a1d34d683e09378e11a72fe356185a5a6b9bb1 (patch)
tree938f993ea2d86bc07411bdc38408c3fb9a8951d1 /tests/test_recursiveloader.py
parent8d7f61528289bf0e31d871b9361fe1d033590e94 (diff)
downloadgemato-21a1d34d683e09378e11a72fe356185a5a6b9bb1.tar.gz
Add tests for dealing with symlink loops
Diffstat (limited to 'tests/test_recursiveloader.py')
-rw-r--r--tests/test_recursiveloader.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/test_recursiveloader.py b/tests/test_recursiveloader.py
index 3ad2ca5..4a5662f 100644
--- a/tests/test_recursiveloader.py
+++ b/tests/test_recursiveloader.py
@@ -2708,3 +2708,44 @@ DATA sub/test 0 MD5 d41d8cd98f00b204e9800998ecf8427e
'r', encoding='utf8') as f:
self.assertNotEqual(f.read(), self.FILES['Manifest'])
m.assert_directory_verifies()
+
+
+class SymlinkLoopTest(TempDirTestCase):
+ """
+ Test dealing with a directory that contains a symlink to itself.
+ """
+
+ DIRS = ['sub']
+ FILES = {
+ 'Manifest': u'',
+ }
+
+ def setUp(self):
+ super(SymlinkLoopTest, self).setUp()
+ os.symlink('.', os.path.join(self.dir, 'sub/sub'))
+
+ def tearDown(self):
+ os.remove(os.path.join(self.dir, 'sub/sub'))
+ super(SymlinkLoopTest, self).tearDown()
+
+ def test_assert_directory_verifies(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'))
+ self.assertRaises(OSError,
+ m.assert_directory_verifies, '')
+
+ def test_cli_verifies(self):
+ self.assertRaises(OSError,
+ gemato.cli.main, ['gemato', 'verify', self.dir])
+
+ def test_update_entries_for_directory(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'),
+ hashes=['SHA256', 'SHA512'])
+ self.assertRaises(OSError,
+ m.update_entries_for_directory, '')
+
+ def test_cli_update(self):
+ self.assertRaises(OSError,
+ gemato.cli.main, ['gemato', 'update',
+ '--hashes=SHA256 SHA512', self.dir])