summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2017-10-27 17:03:54 +0200
committerMichał Górny <mgorny@gentoo.org>2017-10-27 17:03:54 +0200
commit1f6b2d221f77e5721db3ef91406d4435810c447d (patch)
tree2adb337bec63be5e0b4698ba272c3c57babb680a /tests
parentc1916a5e10316ab69addadfc4f5d01f42e34018b (diff)
downloadgemato-1f6b2d221f77e5721db3ef91406d4435810c447d.tar.gz
verify: Introduce universal get_file_metadata() function
Diffstat (limited to 'tests')
-rw-r--r--tests/test_verify.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/test_verify.py b/tests/test_verify.py
index 2b656a8..5393b4c 100644
--- a/tests/test_verify.py
+++ b/tests/test_verify.py
@@ -6,6 +6,7 @@
import os
import os.path
import socket
+import stat
import tempfile
import unittest
@@ -21,6 +22,11 @@ class NonExistingFileVerificationTest(unittest.TestCase):
def tearDown(self):
os.rmdir(self.dir)
+ def test_get_file_metadata(self):
+ self.assertEqual(list(gemato.verify.get_file_metadata(
+ os.path.join(self.dir, 'test'), hashes=[])),
+ [False])
+
def testDATA(self):
e = gemato.manifest.ManifestEntryDATA.from_list(
('DATA', 'test', '0'))
@@ -51,6 +57,12 @@ class DirectoryVerificationTest(unittest.TestCase):
def tearDown(self):
os.rmdir(self.dir)
+ def test_get_file_metadata(self):
+ st = os.stat(self.dir)
+ self.assertEqual(list(gemato.verify.get_file_metadata(
+ self.dir, hashes=[])),
+ [True, st.st_dev, (stat.S_IFDIR, 'directory')])
+
def testDATA(self):
e = gemato.manifest.ManifestEntryDATA.from_list(
('DATA', os.path.basename(self.dir), '0'))
@@ -78,6 +90,12 @@ class CharacterDeviceVerificationTest(unittest.TestCase):
def setUp(self):
self.path = '/dev/null'
+ def test_get_file_metadata(self):
+ st = os.stat(self.path)
+ self.assertEqual(list(gemato.verify.get_file_metadata(
+ self.path, hashes=[])),
+ [True, st.st_dev, (stat.S_IFCHR, 'character device')])
+
def testDATA(self):
e = gemato.manifest.ManifestEntryDATA.from_list(
('DATA', os.path.basename(self.path), '0'))
@@ -111,6 +129,12 @@ class NamedPipeVerificationTest(unittest.TestCase):
os.unlink(self.path)
os.rmdir(self.dir)
+ def test_get_file_metadata(self):
+ st = os.stat(self.path)
+ self.assertEqual(list(gemato.verify.get_file_metadata(
+ self.path, hashes=[])),
+ [True, st.st_dev, (stat.S_IFIFO, 'named pipe')])
+
def testDATA(self):
e = gemato.manifest.ManifestEntryDATA.from_list(
('DATA', os.path.basename(self.path), '0'))
@@ -147,6 +171,12 @@ class UNIXSocketVerificationTest(unittest.TestCase):
os.unlink(self.path)
os.rmdir(self.dir)
+ def test_get_file_metadata(self):
+ st = os.stat(self.path)
+ self.assertEqual(list(gemato.verify.get_file_metadata(
+ self.path, hashes=[])),
+ [True, st.st_dev, (stat.S_IFSOCK, 'UNIX socket')])
+
def testDATA(self):
e = gemato.manifest.ManifestEntryDATA.from_list(
('DATA', os.path.basename(self.path), '0'))
@@ -178,6 +208,17 @@ class EmptyFileVerificationTest(unittest.TestCase):
def tearDown(self):
self.f.close()
+ def test_get_file_metadata(self):
+ st = os.stat(self.path)
+ self.assertEqual(list(gemato.verify.get_file_metadata(
+ self.path, hashes=['MD5', 'SHA1'])),
+ [True, st.st_dev, (stat.S_IFREG, 'regular file'),
+ 0, {
+ 'MD5': 'd41d8cd98f00b204e9800998ecf8427e',
+ 'SHA1': 'da39a3ee5e6b4b0d3255bfef95601890afd80709',
+ '__size__': 0,
+ }])
+
def testDATA(self):
e = gemato.manifest.ManifestEntryDATA.from_list(
('DATA', os.path.basename(self.path), '0'))
@@ -277,6 +318,17 @@ class NonEmptyFileVerificationTest(unittest.TestCase):
def tearDown(self):
self.f.close()
+ def test_get_file_metadata(self):
+ st = os.stat(self.path)
+ self.assertEqual(list(gemato.verify.get_file_metadata(
+ self.path, hashes=['MD5', 'SHA1'])),
+ [True, st.st_dev, (stat.S_IFREG, 'regular file'),
+ st.st_size, {
+ 'MD5': '9e107d9d372bb6826bd81d3542a419d6',
+ 'SHA1': '2fd4e1c67a2d28fced849ee1bb76e7391b93eb12',
+ '__size__': 43,
+ }])
+
def testDATA(self):
e = gemato.manifest.ManifestEntryDATA.from_list(
('DATA', os.path.basename(self.path), '43'))
@@ -412,6 +464,17 @@ class ProcFileVerificationTest(unittest.TestCase):
self.md5 = gemato.hash.hash_bytes(data, 'md5')
self.sha1 = gemato.hash.hash_bytes(data, 'sha1')
+ def test_get_file_metadata(self):
+ st = os.stat(self.path)
+ self.assertEqual(list(gemato.verify.get_file_metadata(
+ self.path, hashes=['MD5', 'SHA1'])),
+ [True, st.st_dev, (stat.S_IFREG, 'regular file'),
+ st.st_size, {
+ 'MD5': self.md5,
+ 'SHA1': self.sha1,
+ '__size__': self.size,
+ }])
+
def testDATA(self):
e = gemato.manifest.ManifestEntryDATA.from_list(
('DATA', os.path.basename(self.path), str(self.size)))
@@ -488,6 +551,11 @@ class UnreadableFileVerificationTest(unittest.TestCase):
os.unlink(self.path)
os.rmdir(self.dir)
+ def test_get_file_metadata(self):
+ with self.assertRaises(OSError):
+ list(gemato.verify.get_file_metadata(
+ os.path.join(self.dir, self.path), []))
+
def testDATA(self):
e = gemato.manifest.ManifestEntryDATA.from_list(
('DATA', 'test', '0'))