diff options
Diffstat (limited to 'tests/QtCore/qabstractfileengine_test.py')
-rw-r--r-- | tests/QtCore/qabstractfileengine_test.py | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/tests/QtCore/qabstractfileengine_test.py b/tests/QtCore/qabstractfileengine_test.py new file mode 100644 index 000000000..457c5c530 --- /dev/null +++ b/tests/QtCore/qabstractfileengine_test.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import unittest +import os +from PySide.QtCore import QAbstractFileEngineIterator, QAbstractFileEngine, QAbstractFileEngineHandler, QDir + + +class TestFSIterator(QAbstractFileEngineIterator): + def __init__(self, parent, filters, filterNames): + QAbstractFileEngineIterator.__init__(self, filters, filterNames) + self.index = -1 + self._list = ['.', '..'] + if parent == '/bup': + self._list += ['A', 'B', 'C'] + + def next(self): + self.index += 1 + return self.currentFileName() + + def hasNext(self): + return (self.index + 1) < len(self._list) + + def currentFileName(self): + if self.index < len(self._list): + return self._list[self.index] + return None + + +class TestFS(QAbstractFileEngine): + def __init__(self, path): + QAbstractFileEngine.__init__(self) + self.path = path + + def beginEntryList(self, filters, filterNames): + return TestFSIterator(self.path, filters, filterNames) + + def fileFlags(self, _ = QAbstractFileEngine.FileInfoAll): + return QAbstractFileEngine.ExistsFlag\ + |QAbstractFileEngine.ReadOwnerPerm\ + |QAbstractFileEngine.ReadUserPerm\ + |QAbstractFileEngine.ReadGroupPerm\ + |QAbstractFileEngine.ReadOtherPerm\ + |QAbstractFileEngine.DirectoryType + + def fileName(self, path=QAbstractFileEngine.DefaultName): + if path == QAbstractFileEngine.DefaultName: + return self.path + return os.path.basename(self.path) + + def setFileName(self, path): + self.path = path + +class TestFSHandler(QAbstractFileEngineHandler): + def __init__(self): + QAbstractFileEngineHandler.__init__(self) + + def create(self, path): + if path.startswith('/bup'): + return TestFS(path) + return None + +class QAbstractFileEngineTest(unittest.TestCase): + + def testBeginEntryList(self): + obj = TestFSHandler() + qdir = QDir('/bup') + for n1, n2 in zip(qdir.entryList(), ['.', '..', 'A', 'B', 'C']): + self.assertEqual(n1, n2) + self.assertEqual(len(qdir.entryList()), 5) + + +if __name__ == '__main__': + unittest.main() + |