Coverage for tests/test_posixParentSearch.py : 20%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
# # LSST Data Management System # Copyright 2016 LSST Corporation. # # This product includes software developed by the # LSST Project (http://www.lsst.org/). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the LSST License Statement and # the GNU General Public License along with this program. If not, # see <http://www.lsstcorp.org/LegalNotices/>. #
lsst.utils.tests.init()
"""A test case for parentSearch in PosixStorage."""
self.testDir = tempfile.mkdtemp(dir=ROOT, prefix='PosixParentSearch-')
if os.path.exists(self.testDir): shutil.rmtree(self.testDir)
"""Test that a file can be found; when root is part of the path then root is returned with the path result. When root is not part of the path then root is not returned with the path result.""" with open(os.path.join(self.testDir, 'foo.txt'), 'w') as f: f.write('abc') storage = dafPersist.PosixStorage(uri=self.testDir, create=True) foundName = storage.search(storage.root, 'foo.txt', searchParents=True) self.assertEqual(foundName, ['foo.txt'])
searchFor = os.path.join(self.testDir, 'foo.txt') foundName = storage.search(storage.root, searchFor, searchParents=True) self.assertEqual(foundName, [searchFor])
"""Find a file with a search string that includes a FITS-style header extension.""" with open(os.path.join(self.testDir, 'foo.txt'), 'w') as f: f.write('abc') storage = dafPersist.PosixStorage(uri=self.testDir, create=True) foundName = storage.search(storage.root, 'foo.txt[0]', searchParents=True) self.assertEqual(foundName, ['foo.txt[0]'])
searchFor = os.path.join(self.testDir, 'foo.txt[0]') foundName = storage.search(storage.root, searchFor, searchParents=True) self.assertEqual(foundName, [searchFor])
"""Find a file in a repo that is a grandchild of the repo that has the file""" parentDir = os.path.join(self.testDir, 'a') childDir = os.path.join(self.testDir, 'b') for d in (parentDir, childDir): os.makedirs(d) with open(os.path.join(parentDir, 'foo.txt'), 'w') as f: f.write('abc') os.symlink('../a', os.path.join(childDir, '_parent')) storage = dafPersist.PosixStorage(uri=childDir, create=True)
foundName = storage.search(storage.root, 'foo.txt', searchParents=True) self.assertEqual(storage.root, childDir) self.assertEqual(foundName, ['_parent/foo.txt'])
searchFor = os.path.join(childDir, 'foo.txt') foundName = storage.search(storage.root, searchFor, searchParents=True) self.assertEqual(storage.root, childDir) self.assertEqual(foundName, [os.path.join(childDir, '_parent/foo.txt')])
"""Find a file in a repo that is the parent of a parent of the root repo.""" grandParentDir = os.path.join(self.testDir, 'a') parentDir = os.path.join(self.testDir, 'b') childDir = os.path.join(self.testDir, 'c') for d in (grandParentDir, parentDir, childDir): os.makedirs(d) for name in ('foo.txt', 'bar.txt'): with open(os.path.join(grandParentDir, name), 'w') as f: f.write('abc') os.symlink('../a', os.path.join(parentDir, '_parent')) os.symlink('../b', os.path.join(childDir, '_parent')) storage = dafPersist.PosixStorage(uri=childDir, create=True)
for name in ('foo.txt', 'bar.txt[0]'): foundName = storage.search(storage.root, name, searchParents=True) self.assertEqual(storage.root, childDir) self.assertEqual(foundName, [os.path.join('_parent/_parent/', name)])
for name in ('foo.txt', 'bar.txt[0]'): searchFor = os.path.join(childDir, name) foundName = storage.search(storage.root, searchFor, searchParents=True) self.assertEqual(storage.root, childDir) self.assertEqual(foundName, [os.path.join(childDir, '_parent/_parent/', name)])
"""Test that parent search can be told to follow _parent symlink (or not) when searching.""" parentDir = os.path.join(self.testDir, 'a') childDir = os.path.join(self.testDir, 'b') for d in (parentDir, childDir): os.makedirs(d) with open(os.path.join(parentDir, 'foo.txt'), 'w') as f: f.write('abc') os.symlink('../a', os.path.join(childDir, '_parent')) storage = dafPersist.PosixStorage(uri=childDir, create=True) self.assertEqual(storage.search(storage.root, 'foo.txt', searchParents=True), ['_parent/foo.txt']) self.assertEqual(storage.search(storage.root, 'foo.txt', searchParents=False), None)
storage = dafPersist.PosixStorage(uri=self.testDir, create=True) self.assertIsNone(storage.search(storage.root, 'fileThatDoesNotExist.txt', searchParents=True))
lsst.utils.tests.init() unittest.main() |