1#!/usr/bin/env python 2# Copyright 2014 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 unittest 9 10from server_instance import ServerInstance 11from test_file_system import TestFileSystem 12from test_util import Server2Path 13 14 15def _ReadLocalFile(filename): 16 base_path = Server2Path('test_data', 'samples_data_source') 17 with open(os.path.join(base_path, filename), 'r') as f: 18 return f.read() 19 20 21class _FakeCache(object): 22 def __init__(self, obj): 23 self._cache = obj 24 25 def GetFromFileListing(self, _): 26 getter = lambda: 0 27 getter.Get = lambda: self._cache 28 return getter 29 30 31class SamplesModelSourceTest(unittest.TestCase): 32 def setUp(self): 33 server_instance = ServerInstance.ForTest(file_system=TestFileSystem({})) 34 self._samples_model = server_instance.platform_bundle.GetSamplesModel( 35 'apps') 36 self._samples_model._samples_cache = _FakeCache(json.loads(_ReadLocalFile( 37 'samples.json'))) 38 39 def testFilterSamples(self): 40 self.assertEquals(json.loads(_ReadLocalFile('expected.json')), 41 self._samples_model.FilterSamples('bobaloo')) 42 43if __name__ == '__main__': 44 unittest.main() 45