subversion_file_system_test.py revision 5821806d5e7f356e8fa4b058a389a808ea183019
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 subversion_file_system import SubversionFileSystem
13
14class SubversionFileSystemTest(unittest.TestCase):
15  def setUp(self):
16    self._base_path = os.path.join(sys.path[0], 'test_data', 'file_system')
17    fetcher = FakeUrlFetcher(self._base_path)
18    self._file_system = SubversionFileSystem(fetcher, fetcher)
19
20  def _ReadLocalFile(self, filename):
21    with open(os.path.join(self._base_path, filename), 'r') as f:
22      return f.read()
23
24  def testReadFiles(self):
25    expected = {
26      'test1.txt': 'test1\n',
27      'test2.txt': 'test2\n',
28      'test3.txt': 'test3\n',
29    }
30    self.assertEqual(
31        expected,
32        self._file_system.Read(['test1.txt', 'test2.txt', 'test3.txt']).Get())
33
34  def testListDir(self):
35    expected = ['dir/']
36    for i in range(7):
37      expected.append('file%d.html' % i)
38    self.assertEqual(expected,
39                     sorted(self._file_system.ReadSingle('list/')))
40
41  def testStat(self):
42    stat_info = self._file_system.Stat('stat/')
43    self.assertEquals('151113', stat_info.version)
44    self.assertEquals(json.loads(self._ReadLocalFile('stat_result.json')),
45                      stat_info.child_versions)
46
47if __name__ == '__main__':
48  unittest.main()
49