smartfileut.py

来自「Boost provides free peer-reviewed portab」· Python 代码 · 共 85 行

PY
85
字号
# Copyright Bruno da Silva de Oliveira 2003. Use, modification and # distribution is subject to the Boost Software License, Version 1.0.# (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt)import syssys.path.append('../src')from SmartFile import *import unittestimport tempfileimport osimport timeclass SmartFileTest(unittest.TestCase):    FILENAME = tempfile.mktemp()        def setUp(self):        self._Clean()            def tearDown(self):        self._Clean()    def _Clean(self):        try:            os.remove(self.FILENAME)        except OSError: pass            def testNonExistant(self):        "Must override the file, as there's no file in the disk yet"        self.assert_(not os.path.isfile(self.FILENAME))        f = SmartFile(self.FILENAME, 'w')        f.write('Testing 123\nTesting again.')        f.close()        self.assert_(os.path.isfile(self.FILENAME))    def testOverride(self):        "Must override the file, because the contents are different"        contents = 'Contents!\nContents!'        # create the file normally first        f = file(self.FILENAME, 'w')        f.write(contents)        f.close()        file_time = os.path.getmtime(self.FILENAME)        self.assert_(os.path.isfile(self.FILENAME))        time.sleep(2)        f = SmartFile(self.FILENAME, 'w')        f.write(contents + '_')        f.close()        new_file_time = os.path.getmtime(self.FILENAME)        self.assert_(new_file_time != file_time)    def testNoOverride(self):        "Must not override the file, because the contents are the same"        contents = 'Contents!\nContents!'        # create the file normally first        f = file(self.FILENAME, 'w')        f.write(contents)        f.close()        file_time = os.path.getmtime(self.FILENAME)        self.assert_(os.path.isfile(self.FILENAME))        time.sleep(2)        f = SmartFile(self.FILENAME, 'w')        f.write(contents)        f.close()        new_file_time = os.path.getmtime(self.FILENAME)        self.assert_(new_file_time == file_time)     def testAutoClose(self):        "Must be closed when garbage-collected"        def foo():            f = SmartFile(self.FILENAME)            f.write('testing')              self.assert_(not os.path.isfile(self.FILENAME))        foo()        self.assert_(os.path.isfile(self.FILENAME))        if __name__ == '__main__':    unittest.main()

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?