subversion_file_system_test.py revision b2df76ea8fec9e32f6f3718986dba0d95315b29c
1#!/usr/bin/env python 2# Copyright (c) 2012 The Chromium Authors. All rights reserved. 3# Use of this source code is governed by a BSD-style license that can be 4# found in the LICENSE file. 5 6import json 7import os 8import sys 9import unittest 10 11from fake_url_fetcher import FakeUrlFetcher 12from file_system import StatInfo 13from subversion_file_system import SubversionFileSystem 14 15class SubversionFileSystemTest(unittest.TestCase): 16 def setUp(self): 17 self._base_path = os.path.join(sys.path[0], 'test_data', 'file_system') 18 19 def _CreateSubversionFileSystem(self): 20 fetcher = FakeUrlFetcher(self._base_path) 21 return SubversionFileSystem(fetcher, fetcher, self._base_path) 22 23 def _ReadLocalFile(self, filename): 24 with open(os.path.join(self._base_path, filename), 'r') as f: 25 return f.read() 26 27 def testReadFiles(self): 28 expected = { 29 'test1.txt': 'test1\n', 30 'test2.txt': 'test2\n', 31 'test3.txt': 'test3\n', 32 } 33 file_system = self._CreateSubversionFileSystem() 34 self.assertEqual( 35 expected, 36 file_system.Read(['test1.txt', 'test2.txt', 'test3.txt']).Get()) 37 38 def testListDir(self): 39 expected = ['dir/'] 40 for i in range(7): 41 expected.append('file%d.html' % i) 42 file_system = self._CreateSubversionFileSystem() 43 self.assertEqual(expected, sorted(file_system.ReadSingle('list/'))) 44 45 def testDirStat(self): 46 file_system = self._CreateSubversionFileSystem() 47 stat_info =file_system.Stat('stat/') 48 expected = StatInfo( 49 '151113', 50 child_versions=json.loads(self._ReadLocalFile('stat_result.json')) 51 ) 52 self.assertEquals(expected, stat_info) 53 54 def testFileStat(self): 55 file_system = self._CreateSubversionFileSystem() 56 stat_info = file_system.Stat('stat/extension_api.h') 57 self.assertEquals(StatInfo('146163'), stat_info) 58 59if __name__ == '__main__': 60 unittest.main() 61