From e24334bbed45fc7cd05b856c620948c53922aace Mon Sep 17 00:00:00 2001 From: David Gnedt Date: Sun, 1 Aug 2021 00:25:59 +0200 Subject: [PATCH] Skip some incompatible tests on case-insenstive filesystems --- test/test_caching.py | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/test/test_caching.py b/test/test_caching.py index 628e00a..d694355 100644 --- a/test/test_caching.py +++ b/test/test_caching.py @@ -68,6 +68,10 @@ def mkfile(self, name, contents): f.write(contents) return name + def readfile(self, name): + with open(name, 'rt') as f: + return f.read() + class AbsPathKeyTest(AbsTestCase): def test_get_path_key(self): @@ -136,6 +140,12 @@ def test_nocase_findfile(self): self.mkfile('aAaA/Aaa2', '2') self.mkfile('aAaA/AAa2', '3') + a2_content = self.readfile('aAaA/Aaa2') + self.assertIn(a2_content, ('2', '3')) + fs_case_sensitive = a2_content == '2' + if not fs_case_sensitive: + print('Skipping some tests due to case-insensitive filesystem') + self.assertEquals(a1, cache.nocase_findfile(self.mkpath('aaAA/aaa1'))) with self.assertRaises(IOError) as cm: cache.nocase_findfile(self.mkpath('aaAb/aaa1')) @@ -145,18 +155,24 @@ def test_nocase_findfile(self): cache.nocase_findfile(self.mkpath('aaAA/aab1')) self.assertEquals(errno.ENOENT, cm.exception.errno) - with self.assertRaises(IOError) as cm: - cache.nocase_findfile(self.mkpath('aaAA/aaa2')) - self.assertEquals(errno.EEXIST, cm.exception.errno) + if fs_case_sensitive: + with self.assertRaises(IOError) as cm: + cache.nocase_findfile(self.mkpath('aaAA/aaa2')) + self.assertEquals(errno.EEXIST, cm.exception.errno) def test_nocase_findfile_parent(self): cache = FileInfoCache() self.mkfile('aaaA/aaA1', '1') + fs_case_sensitive = not os.path.exists('aAaA') self.mkfile('aAaA/aaa2', '2') + if not fs_case_sensitive: + print('Skipping some tests due to case-insensitive filesystem') + # right now we don't handle this case, though it would be possible # to generate all possible matches and see if the number is exactly # one. - with self.assertRaises(IOError) as cm: - cache.nocase_findfile(self.mkpath('aaAA/aaa2')) - self.assertEquals(errno.EEXIST, cm.exception.errno) + if fs_case_sensitive: + with self.assertRaises(IOError) as cm: + cache.nocase_findfile(self.mkpath('aaAA/aaa2')) + self.assertEquals(errno.EEXIST, cm.exception.errno)