0
|
1 |
#
|
|
2 |
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
|
|
3 |
# All rights reserved.
|
|
4 |
# This component and the accompanying materials are made available
|
|
5 |
# under the terms of "Eclipse Public License v1.0"
|
|
6 |
# which accompanies this distribution, and is available
|
|
7 |
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
|
8 |
#
|
|
9 |
# Initial Contributors:
|
|
10 |
# Nokia Corporation - initial contribution.
|
|
11 |
#
|
|
12 |
# Contributors:
|
|
13 |
#
|
|
14 |
# Description:
|
|
15 |
#
|
|
16 |
|
|
17 |
|
|
18 |
"""
|
|
19 |
Test the CPF root file parsing routines
|
|
20 |
"""
|
|
21 |
|
|
22 |
import zipfile
|
|
23 |
import unittest
|
|
24 |
import string
|
|
25 |
import sys,os,shutil
|
|
26 |
ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
|
|
27 |
|
|
28 |
import __init__
|
|
29 |
from cone.public.exceptions import NotResource,StorageException
|
|
30 |
from cone.public import api
|
|
31 |
from cone.storage import filestorage
|
|
32 |
|
|
33 |
datafolder= ROOT_PATH
|
|
34 |
datazip = os.path.join(ROOT_PATH,"data.zip")
|
|
35 |
datafolder= os.path.join(ROOT_PATH,"data")
|
|
36 |
|
|
37 |
|
|
38 |
class TestFileStorageCreation(unittest.TestCase):
|
|
39 |
def setUp(self):
|
|
40 |
pass
|
|
41 |
|
|
42 |
def test_create_storage_on_non_existing_path_fails(self):
|
|
43 |
try:
|
|
44 |
storage = filestorage.FileStorage("dummydatafolder")
|
|
45 |
self.fail("opening on dummydatafolder succeeds?")
|
|
46 |
except StorageException,e:
|
|
47 |
self.assertTrue(True)
|
|
48 |
|
|
49 |
def test_create_storage_on_file_fails(self):
|
|
50 |
try:
|
|
51 |
storage = filestorage.FileStorage(datazip)
|
|
52 |
self.fail("opening on data file succeeds?")
|
|
53 |
except StorageException,e:
|
|
54 |
self.assertTrue(True)
|
|
55 |
|
|
56 |
def test_create_storage_on_new_directory(self):
|
|
57 |
storage = filestorage.FileStorage("dummytest/storage","w")
|
|
58 |
self.assertTrue(os.path.exists("dummytest/storage"))
|
|
59 |
shutil.rmtree("dummytest")
|
|
60 |
|
|
61 |
class TestFileStorage(unittest.TestCase):
|
|
62 |
def setUp(self):
|
|
63 |
self.storage = filestorage.FileStorage(datafolder)
|
|
64 |
|
|
65 |
def test_supported_storage(self):
|
|
66 |
self.assertTrue(filestorage.FileStorage.supported_storage("C:/GenerationRegressionTest/wc/genregtest_workdir/cone_vs_ct2/pf7132_020.006/config_project/"))
|
|
67 |
self.assertTrue(filestorage.FileStorage.supported_storage("C:/GenerationRegressionTest/wc/genregtest_workdir"))
|
|
68 |
self.assertFalse(filestorage.FileStorage.supported_storage("C:/GenerationRegressionTest/wc/genregtest_workdir.zip"))
|
|
69 |
|
|
70 |
def test_open_resource_existing_file_for_reading(self):
|
|
71 |
res = self.storage.open_resource("simple.confml")
|
|
72 |
self.assertTrue(res)
|
|
73 |
self.assertTrue(isinstance(res,api.Resource))
|
|
74 |
|
|
75 |
def test_open_resource_new_file(self):
|
|
76 |
res = self.storage.open_resource("newfile.txt","w")
|
|
77 |
self.assertTrue(res)
|
|
78 |
self.assertTrue(isinstance(res,api.Resource))
|
|
79 |
res.close()
|
|
80 |
self.assertTrue(os.path.exists(datafolder+"/newfile.txt"))
|
|
81 |
os.remove(datafolder+"/newfile.txt")
|
|
82 |
|
|
83 |
def test_list_resources(self):
|
|
84 |
self.assertEquals(self.storage.list_resources("."),
|
|
85 |
['.metadata', 'morestuff.confml', 'prodX.confml', 'simple.confml'])
|
|
86 |
|
|
87 |
def test_delete_resource(self):
|
|
88 |
tf = open(os.path.join(datafolder,"tempfile.txt"),"w")
|
|
89 |
tf.close()
|
|
90 |
res = self.storage.delete_resource("tempfile.txt")
|
|
91 |
self.assertFalse(os.path.exists(datafolder+"tempfile.txt"))
|
|
92 |
|
|
93 |
def test_open_resource_nonexisting(self):
|
|
94 |
try:
|
|
95 |
res = self.storage.open_resource("iamnothere.txt")
|
|
96 |
self.fail("Opening of a non existing file succeeds!??")
|
|
97 |
except NotResource:
|
|
98 |
self.assertTrue(True)
|
|
99 |
|
|
100 |
def test_list_resources_nonrecurse(self):
|
|
101 |
file_array = self.storage.list_resources("")
|
|
102 |
self.assertEquals(file_array[0],".metadata")
|
|
103 |
|
|
104 |
def test_list_resources_nonrecurse_from_root(self):
|
|
105 |
file_array = self.storage.list_resources("/")
|
|
106 |
self.assertTrue(file_array.index(".metadata")==0)
|
|
107 |
|
|
108 |
def test_list_resources_recurse_from_root(self):
|
|
109 |
file_array = self.storage.list_resources("",True)
|
|
110 |
self.assertEquals(file_array[0],".metadata")
|
|
111 |
|
|
112 |
def test_list_resources_from_subfolder(self):
|
|
113 |
file_array = self.storage.list_resources("familyX")
|
|
114 |
self.assertEquals(file_array[0],"familyX/root.confml")
|
|
115 |
|
|
116 |
def test_list_resources_recurse_from_subfolder(self):
|
|
117 |
file_array = self.storage.list_resources("familyX", True)
|
|
118 |
self.assertEquals(file_array[0],"familyX/root.confml")
|
|
119 |
# Count only non-SVN files
|
|
120 |
self.assertEquals(len(filter(lambda x: x.find('.svn') == -1, file_array)), 7)
|
|
121 |
|
|
122 |
def test_is_resource_true(self):
|
|
123 |
self.assertTrue(self.storage.is_resource("simple.confml"))
|
|
124 |
|
|
125 |
def test_is_resource_true_with_begin_slash(self):
|
|
126 |
self.assertTrue(self.storage.is_resource("/simple.confml"))
|
|
127 |
|
|
128 |
def test_is_resource_false(self):
|
|
129 |
self.assertFalse(self.storage.is_resource("data"))
|
|
130 |
|
|
131 |
def test_open_resource_existing_file_with_root(self):
|
|
132 |
res = self.storage.open_resource("/simple.confml")
|
|
133 |
self.assertTrue(res)
|
|
134 |
self.assertTrue(isinstance(res,api.Resource))
|
|
135 |
|
|
136 |
def test_metadata_writing(self):
|
|
137 |
fs = filestorage.FileStorage("testtemp","w")
|
|
138 |
fs.set_active_configuration('testing.confml')
|
|
139 |
fs.close()
|
|
140 |
fs = filestorage.FileStorage("testtemp","r")
|
|
141 |
self.assertEquals(fs.get_active_configuration(),'testing.confml')
|
|
142 |
fs.close()
|
|
143 |
shutil.rmtree("testtemp")
|
|
144 |
|
|
145 |
def test_create_folder(self):
|
|
146 |
store = filestorage.FileStorage("newtestfolder","w")
|
|
147 |
store.create_folder("subdir")
|
|
148 |
self.assertTrue(store.is_folder("subdir"))
|
|
149 |
self.assertTrue(os.path.exists("newtestfolder/subdir"))
|
|
150 |
store.create_folder('foo')
|
|
151 |
layer = api.Folder(store, "foo")
|
|
152 |
self.assertTrue(store.is_folder("foo"))
|
|
153 |
self.assertTrue(layer)
|
|
154 |
self.assertTrue(os.path.exists("newtestfolder/subdir"))
|
|
155 |
layer.create_folder("foosubdir")
|
|
156 |
self.assertTrue(store.is_folder("foo/foosubdir"))
|
|
157 |
self.assertTrue(os.path.exists("newtestfolder/foo/foosubdir"))
|
|
158 |
shutil.rmtree('newtestfolder')
|
|
159 |
|
|
160 |
if __name__ == '__main__':
|
|
161 |
unittest.main()
|