1
2
3
4 """
5 Library for gateway tests
6
7 Copyright 2009 Glencoe Software, Inc. All rights reserved.
8 Use is subject to license terms supplied in LICENSE.txt
9
10 """
11
12 import os
13 import omero
14 from omero.rtypes import rstring
15
16 from omero.gateway.scripts import dbhelpers
17
18 dbhelpers.USERS = {
19 'user': dbhelpers.UserEntry('weblitz_test_user','foobar', 'User', 'Weblitz'),
20 'author': dbhelpers.UserEntry('weblitz_test_author','foobar', 'Author', 'Weblitz'),
21 }
22
23 dbhelpers.PROJECTS = {
24 'testpr1' : dbhelpers.ProjectEntry('weblitz_test_priv_project', 'author'),
25 'testpr2' : dbhelpers.ProjectEntry('weblitz_test_priv_project2', 'author'),
26 }
27
28 dbhelpers.DATASETS = {
29 'testds1' : dbhelpers.DatasetEntry('weblitz_test_priv_dataset', 'testpr1'),
30 'testds2' : dbhelpers.DatasetEntry('weblitz_test_priv_dataset2', 'testpr1'),
31 'testds3' : dbhelpers.DatasetEntry('weblitz_test_priv_dataset3', 'testpr2'),
32 }
33
34 dbhelpers.IMAGES = {
35 'testimg1' : dbhelpers.ImageEntry('weblitz_test_priv_image', 'imgs/CHOBI_d3d.dv', 'testds1'),
36 'testimg2' : dbhelpers.ImageEntry('weblitz_test_priv_image2', 'imgs/CHOBI_d3d.dv', 'testds1'),
37 'tinyimg' : dbhelpers.ImageEntry('weblitz_test_priv_image_tiny', 'imgs/tinyTest.d3d.dv', 'testds1'),
38 'badimg' : dbhelpers.ImageEntry('weblitz_test_priv_image_bad', False, 'testds1'),
39 'tinyimg2' : dbhelpers.ImageEntry('weblitz_test_priv_image_tiny2', 'imgs/tinyTest.d3d.dv', 'testds2'),
40 'tinyimg3' : dbhelpers.ImageEntry('weblitz_test_priv_image_tiny3', 'imgs/tinyTest.d3d.dv', 'testds3'),
41 'bigimg' : dbhelpers.ImageEntry('weblitz_test_priv_image_big', 'imgs/big.tiff', 'testds3'),
42 }
43
44
46
47 - def setUp(self, skipTestDB=False, skipTestImages=True):
65
73
82
83 - def doLogin (self, user=None, groupname=None):
94
97
100
103
106
108
109 try:
110 if self.gateway is not None:
111 self.gateway.seppuku()
112 finally:
113 failure = False
114 for tmpfile in self.tmpfiles:
115 try:
116 tmpfile.close()
117 except:
118 print "Error closing:"+tmpfile
119 if failure:
120 raise Exception("Exception on client.closeSession")
121
124
127
130
133
136
139
142
145
148
151
154
155 - def prepTestDB (self, onlyUsers=False, skipImages=True):
157
164
165
209
210 - def createTestImage(self, imageName="testImage", dataset=None, sizeX = 16, sizeY = 16, sizeZ = 1, sizeC = 1, sizeT = 1):
211 """
212 Creates a test image of the required dimensions, where each pixel value is set
213 to the average value of x & y. If dataset (obj or name) is specified, will be linked to image.
214 If project (obj or name) is specified, will be created/linked to dataset (if dataset not None)
215
216 @param dataset: omero.model.DatasetI OR DatasetWrapper OR dataset ID
217 """
218 from numpy import fromfunction, int16
219 from omero.util import script_utils
220 import random
221
222 def f(x,y):
223 return x
224
225 def planeGen():
226 for p in range(sizeZ * sizeC * sizeT):
227 yield fromfunction(f,(sizeY,sizeX),dtype=int16)
228
229 ds = None
230 if dataset is not None:
231 if hasattr(dataset, "_obj"):
232 dataset = dataset._obj
233 if isinstance(dataset, omero.model.DatasetI):
234 ds = dataset
235 else:
236 try:
237 dsId = long(dataset)
238 ds = omero.model.DatasetI(dsId, False)
239 except:
240 pass
241
242 image = self.gateway.createImageFromNumpySeq (planeGen(), imageName, sizeZ=sizeZ, sizeC=sizeC, sizeT=sizeT, dataset=ds)
243 return image
244