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