Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / test / ispy / common / mock_cloud_bucket.py
1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 """Subclass of CloudBucket used for testing."""
6
7 import os
8 import sys
9
10 sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir))
11 import cloud_bucket
12
13
14 class MockCloudBucket(cloud_bucket.BaseCloudBucket):
15   """Subclass of CloudBucket used for testing."""
16
17   def __init__(self):
18     """Initializes the MockCloudBucket with its datastore.
19
20     Returns:
21       An instance of MockCloudBucket.
22     """
23     self.datastore = {}
24
25   def Reset(self):
26     """Clears the MockCloudBucket's datastore."""
27     self.datastore = {}
28
29   # override
30   def UploadFile(self, path, contents, content_type):
31     self.datastore[path] = contents
32
33   # override
34   def DownloadFile(self, path):
35     if self.datastore.has_key(path):
36       return self.datastore[path]
37     else:
38       raise cloud_bucket.FileNotFoundError
39
40   # override
41   def UpdateFile(self, path, contents):
42     if not self.FileExists(path):
43       raise cloud_bucket.FileNotFoundError
44     self.UploadFile(path, contents, '')
45
46   # override
47   def RemoveFile(self, path):
48     if self.datastore.has_key(path):
49       self.datastore.pop(path)
50
51   # override
52   def FileExists(self, path):
53     return self.datastore.has_key(path)
54
55   # override
56   def GetImageURL(self, path):
57     if self.datastore.has_key(path):
58       return path
59     else:
60       raise cloud_bucket.FileNotFoundError
61
62   # override
63   def GetAllPaths(self, prefix):
64     return (item[0] for item in self.datastore.items()
65             if item[0].startswith(prefix))