def testNonemptySuccess(self):
fs = TestFileSystem(deepcopy(_TEST_DATA))
self.assertEqual('404.html contents', fs.ReadSingle('404.html').Get())
- self.assertEqual('404.html contents', fs.ReadSingle('/404.html').Get())
self.assertEqual('a11y.html contents',
fs.ReadSingle('apps/a11y.html').Get())
self.assertEqual(['404.html', 'apps/', 'extensions/'],
- sorted(fs.ReadSingle('/').Get()))
+ sorted(fs.ReadSingle('').Get()))
self.assertEqual(['a11y.html', 'about_apps.html', 'fakedir/'],
sorted(fs.ReadSingle('apps/').Get()))
- self.assertEqual(['a11y.html', 'about_apps.html', 'fakedir/'],
- sorted(fs.ReadSingle('/apps/').Get()))
def testReadFiles(self):
fs = TestFileSystem(deepcopy(_TEST_DATA))
self.assertEqual('404.html contents',
fs.ReadSingle('404.html').Get())
- self.assertEqual('404.html contents',
- fs.ReadSingle('/404.html').Get())
self.assertEqual('a11y.html contents',
fs.ReadSingle('apps/a11y.html').Get())
- self.assertEqual('a11y.html contents',
- fs.ReadSingle('/apps/a11y.html').Get())
self.assertEqual('file.html contents',
fs.ReadSingle('apps/fakedir/file.html').Get())
- self.assertEqual('file.html contents',
- fs.ReadSingle('/apps/fakedir/file.html').Get())
def testReadDirs(self):
fs = TestFileSystem(deepcopy(_TEST_DATA))
self.assertEqual(['404.html', 'apps/', 'extensions/'],
- sorted(fs.ReadSingle('/').Get()))
- self.assertEqual(['a11y.html', 'about_apps.html', 'fakedir/'],
- sorted(fs.ReadSingle('/apps/').Get()))
+ sorted(fs.ReadSingle('').Get()))
self.assertEqual(['a11y.html', 'about_apps.html', 'fakedir/'],
sorted(fs.ReadSingle('apps/').Get()))
- self.assertEqual(['file.html'], fs.ReadSingle('/apps/fakedir/').Get())
self.assertEqual(['file.html'], fs.ReadSingle('apps/fakedir/').Get())
def testStat(self):
fs = TestFileSystem(deepcopy(_TEST_DATA))
self.assertRaises(FileNotFoundError, fs.Stat, 'foo')
self.assertRaises(FileNotFoundError, fs.Stat, '404.html/')
+ self.assertEquals(StatInfo('0', child_versions={
+ '404.html': '0',
+ 'apps/': '0',
+ 'extensions/': '0',
+ }), fs.Stat(''))
self.assertEquals(StatInfo('0'), fs.Stat('404.html'))
self.assertEquals(StatInfo('0', child_versions={
'activeTab.html': '0',
}), fs.Stat('extensions/'))
fs.IncrementStat()
+ self.assertEquals(StatInfo('1', child_versions={
+ '404.html': '1',
+ 'apps/': '1',
+ 'extensions/': '1',
+ }), fs.Stat(''))
self.assertEquals(StatInfo('1'), fs.Stat('404.html'))
self.assertEquals(StatInfo('1', child_versions={
'activeTab.html': '1',
}), fs.Stat('extensions/'))
fs.IncrementStat(path='404.html')
+ self.assertEquals(StatInfo('2', child_versions={
+ '404.html': '2',
+ 'apps/': '1',
+ 'extensions/': '1',
+ }), fs.Stat(''))
self.assertEquals(StatInfo('2'), fs.Stat('404.html'))
self.assertEquals(StatInfo('1', child_versions={
'activeTab.html': '1',
}), fs.Stat('extensions/'))
fs.IncrementStat()
+ self.assertEquals(StatInfo('3', child_versions={
+ '404.html': '3',
+ 'apps/': '2',
+ 'extensions/': '2',
+ }), fs.Stat(''))
self.assertEquals(StatInfo('3'), fs.Stat('404.html'))
self.assertEquals(StatInfo('2', child_versions={
'activeTab.html': '2',
'alarms.html': '2',
}), fs.Stat('extensions/'))
- fs.IncrementStat(path='extensions/')
- self.assertEquals(StatInfo('3'), fs.Stat('404.html'))
+ # It doesn't make sense to increment the version of directories. Directory
+ # versions are derived from the version of files within them.
+ self.assertRaises(ValueError, fs.IncrementStat, path='')
+ self.assertRaises(ValueError, fs.IncrementStat, path='extensions/')
self.assertEquals(StatInfo('3', child_versions={
+ '404.html': '3',
+ 'apps/': '2',
+ 'extensions/': '2',
+ }), fs.Stat(''))
+ self.assertEquals(StatInfo('3'), fs.Stat('404.html'))
+ self.assertEquals(StatInfo('2', child_versions={
'activeTab.html': '2',
'alarms.html': '2',
}), fs.Stat('extensions/'))
fs.IncrementStat(path='extensions/alarms.html')
+ self.assertEquals(StatInfo('3', child_versions={
+ '404.html': '3',
+ 'apps/': '2',
+ 'extensions/': '3',
+ }), fs.Stat(''))
self.assertEquals(StatInfo('3'), fs.Stat('404.html'))
self.assertEquals(StatInfo('3', child_versions={
'activeTab.html': '2',
'alarms.html': '3',
}), fs.Stat('extensions/'))
+ fs.IncrementStat(path='extensions/activeTab.html', by=3)
+ self.assertEquals(StatInfo('5', child_versions={
+ '404.html': '3',
+ 'apps/': '2',
+ 'extensions/': '5',
+ }), fs.Stat(''))
+ self.assertEquals(StatInfo('3'), fs.Stat('404.html'))
+ self.assertEquals(StatInfo('5', child_versions={
+ 'activeTab.html': '5',
+ 'alarms.html': '3',
+ }), fs.Stat('extensions/'))
+
def testMoveTo(self):
self.assertEqual({'foo': {'a': 'b', 'c': 'd'}},
- MoveTo('foo', {'a': 'b', 'c': 'd'}))
+ MoveTo('foo/', {'a': 'b', 'c': 'd'}))
self.assertEqual({'foo': {'bar': {'a': 'b', 'c': 'd'}}},
- MoveTo('foo/bar', {'a': 'b', 'c': 'd'}))
+ MoveTo('foo/bar/', {'a': 'b', 'c': 'd'}))
self.assertEqual({'foo': {'bar': {'baz': {'a': 'b'}}}},
- MoveTo('foo/bar/baz', {'a': 'b'}))
+ MoveTo('foo/bar/baz/', {'a': 'b'}))
if __name__ == '__main__':