diff options
Diffstat (limited to 'catapult/common/py_vulcanize/py_vulcanize/fake_fs_unittest.py')
-rw-r--r-- | catapult/common/py_vulcanize/py_vulcanize/fake_fs_unittest.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/catapult/common/py_vulcanize/py_vulcanize/fake_fs_unittest.py b/catapult/common/py_vulcanize/py_vulcanize/fake_fs_unittest.py new file mode 100644 index 00000000..08250138 --- /dev/null +++ b/catapult/common/py_vulcanize/py_vulcanize/fake_fs_unittest.py @@ -0,0 +1,52 @@ +# Copyright 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import os +import unittest + +from py_vulcanize import fake_fs + + +class FakeFSUnittest(unittest.TestCase): + + def testBasic(self): + fs = fake_fs.FakeFS() + fs.AddFile('/blah/x', 'foobar') + with fs: + assert os.path.exists(os.path.normpath('/blah/x')) + self.assertEquals( + 'foobar', + open(os.path.normpath('/blah/x'), 'r').read()) + + def testWithableOpen(self): + fs = fake_fs.FakeFS() + fs.AddFile('/blah/x', 'foobar') + with fs: + with open(os.path.normpath('/blah/x'), 'r') as f: + self.assertEquals('foobar', f.read()) + + def testWalk(self): + fs = fake_fs.FakeFS() + fs.AddFile('/x/w2/w3/z3.txt', '') + fs.AddFile('/x/w/z.txt', '') + fs.AddFile('/x/y.txt', '') + fs.AddFile('/a.txt', 'foobar') + with fs: + gen = os.walk(os.path.normpath('/')) + r = gen.next() + self.assertEquals((os.path.normpath('/'), ['x'], ['a.txt']), r) + + r = gen.next() + self.assertEquals((os.path.normpath('/x'), ['w', 'w2'], ['y.txt']), r) + + r = gen.next() + self.assertEquals((os.path.normpath('/x/w'), [], ['z.txt']), r) + + r = gen.next() + self.assertEquals((os.path.normpath('/x/w2'), ['w3'], []), r) + + r = gen.next() + self.assertEquals((os.path.normpath('/x/w2/w3'), [], ['z3.txt']), r) + + self.assertRaises(StopIteration, gen.next) |