github_file_system_test.py revision 4e180b6a0b4720a9b8e9e959a882386f690f08ff
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 appengine_blobstore import AppEngineBlobstore 12from appengine_url_fetcher import AppEngineUrlFetcher 13from appengine_wrappers import files 14from fake_fetchers import ConfigureFakeFetchers 15from github_file_system import GithubFileSystem 16from object_store_creator import ObjectStoreCreator 17import url_constants 18 19class GithubFileSystemTest(unittest.TestCase): 20 def setUp(self): 21 ConfigureFakeFetchers() 22 self._base_path = os.path.join(sys.path[0], 23 'test_data', 24 'github_file_system') 25 self._file_system = GithubFileSystem.Create(ObjectStoreCreator.ForTest()) 26 27 def _ReadLocalFile(self, filename): 28 with open(os.path.join(self._base_path, filename), 'r') as f: 29 return f.read() 30 31 def testList(self): 32 self.assertEqual(json.loads(self._ReadLocalFile('expected_list.json')), 33 self._file_system.Read(['/']).Get()) 34 35 def testRead(self): 36 self.assertEqual(self._ReadLocalFile('expected_read.txt'), 37 self._file_system.ReadSingle('/analytics/launch.js').Get()) 38 39 def testStat(self): 40 self.assertEqual(0, self._file_system.Stat('zipball').version) 41 42 def testKeyGeneration(self): 43 self.assertEqual(0, len(files.GetBlobKeys())) 44 self._file_system.ReadSingle('/analytics/launch.js').Get() 45 self.assertEqual(1, len(files.GetBlobKeys())) 46 self._file_system.ReadSingle('/analytics/main.css').Get() 47 self.assertEqual(1, len(files.GetBlobKeys())) 48 49if __name__ == '__main__': 50 unittest.main() 51