annotate commons/core/sql/test/Test_TableSetAdaptator.py @ 6:769e306b7933

Change the repository level.
author yufei-luo
date Fri, 18 Jan 2013 04:54:14 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1 # Copyright INRA (Institut National de la Recherche Agronomique)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
2 # http://www.inra.fr
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
3 # http://urgi.versailles.inra.fr
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
4 #
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
5 # This software is governed by the CeCILL license under French law and
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
6 # abiding by the rules of distribution of free software. You can use,
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
7 # modify and/ or redistribute the software under the terms of the CeCILL
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
8 # license as circulated by CEA, CNRS and INRIA at the following URL
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
9 # "http://www.cecill.info".
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
10 #
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
11 # As a counterpart to the access to the source code and rights to copy,
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
12 # modify and redistribute granted by the license, users are provided only
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
13 # with a limited warranty and the software's author, the holder of the
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
14 # economic rights, and the successive licensors have only limited
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
15 # liability.
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
16 #
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
17 # In this respect, the user's attention is drawn to the risks associated
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
18 # with loading, using, modifying and/or developing or reproducing the
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
19 # software by the user in light of its specific status of free software,
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
20 # that may mean that it is complicated to manipulate, and that also
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
21 # therefore means that it is reserved for developers and experienced
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
22 # professionals having in-depth computer knowledge. Users are therefore
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
23 # encouraged to load and test the software's suitability as regards their
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
24 # requirements in conditions enabling the security of their systems and/or
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
25 # data to be ensured and, more generally, to use and operate it in the
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
26 # same conditions as regards security.
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
27 #
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
28 # The fact that you are presently reading this means that you have had
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
29 # knowledge of the CeCILL license and that you accept its terms.
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
30
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
31
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
32 import unittest
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
33 import time
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
34 import os
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
35 from commons.core.sql.TableSetAdaptator import TableSetAdaptator
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
36 from commons.core.sql.DbMySql import DbMySql
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
37 from commons.core.coord.Set import Set
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
38
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
39
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
40 class Test_TableSetAdaptator( unittest.TestCase ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
41
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
42 def setUp( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
43 self._uniqId = "%s_%s" % ( time.strftime("%Y%m%d%H%M%S") , os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
44 self._configFileName = "dummyConfigFile_%s" % ( self._uniqId )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
45 configF = open(self._configFileName, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
46 configF.write( "[repet_env]\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
47 configF.write( "repet_host: %s\n" % ( os.environ["REPET_HOST"] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
48 configF.write( "repet_user: %s\n" % ( os.environ["REPET_USER"] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
49 configF.write( "repet_pw: %s\n" % ( os.environ["REPET_PW"] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
50 configF.write( "repet_db: %s\n" % ( os.environ["REPET_DB"] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
51 configF.write( "repet_port: %s\n" % ( os.environ["REPET_PORT"] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
52 configF.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
53 self._iDb = DbMySql( cfgFileName=self._configFileName )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
54 self._table = "dummySetTable_%s" % ( self._uniqId )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
55 self._tSetA = TableSetAdaptator( self._iDb, self._table )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
56
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
57 def tearDown( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
58 self._uniqId = None
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
59 self._iDb.dropTable( self._table )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
60 self._iDb.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
61 self._table = None
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
62 self._tSetA = None
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
63 os.remove( self._configFileName )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
64 self._configFileName = ""
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
65
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
66 def test_insert(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
67 set2Insert = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
68 set2Insert.id = 1
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
69 set2Insert.name = "name1"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
70 set2Insert.seqname = "name2"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
71 set2Insert.start = 1L
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
72 set2Insert.end = 50L
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
73 self._iDb.createTable( self._table, "set", "" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
74 self._tSetA.insert( set2Insert, False )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
75 sqlCmd = "SELECT * FROM %s" % ( self._table )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
76 self._iDb.execute( sqlCmd )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
77 expTsetTuple = ((1, "name1", "name2", 1L, 50L),)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
78 obsTsetTuples = self._iDb.cursor.fetchall()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
79 self.assertEquals(expTsetTuple, obsTsetTuples )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
80
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
81 def test_insertList ( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
82 self._iDb.createTable( self._table, "set", "" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
83 set1 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
84 set1.setFromString( "1\tname1\tdesc1\t1\t120\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
85 set2 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
86 set2.setFromString( "2\tname2\tdesc2\t1\t20\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
87 lset = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
88 self._tSetA.insertList( lset )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
89 sqlCmd = "SELECT * FROM %s" % ( self._table )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
90 self._iDb.execute( sqlCmd )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
91 expTsetTuple = ((1, "name1", "desc1", 1, 120), (2, "name2", "desc2", 1, 20))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
92 obsTsetTuples = self._iDb.cursor.fetchall()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
93 self.assertEqual( expTsetTuple, obsTsetTuples )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
94
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
95 def test_getIdList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
96 set2Insert = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
97 set2Insert.id = 1
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
98 set2Insert.name = "name1"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
99 set2Insert.seqname = "name2"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
100 set2Insert.start = 1
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
101 set2Insert.end = 50
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
102 self._iDb.createTable( self._table, "set", "" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
103 self._tSetA.insert( set2Insert )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
104 l = self._tSetA.getIdList()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
105 self.assertEquals( set2Insert.id, l[0] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
106
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
107 def test_getSeqNameList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
108 self._iDb.createTable( self._table, "set", "" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
109 set1 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
110 set1.setFromString( "1\tname1\tdesc1\t1\t120\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
111 set2 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
112 set2.setFromString( "2\tname2\tdesc2\t1\t20\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
113 set3 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
114 set3.setFromString( "2\tname2\tdesc2\t1\t50\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
115 for m in [ set1, set2, set3 ]: self._tSetA.insert( m )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
116 lExp = ["desc1", "desc2"]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
117 lObs = self._tSetA.getSeqNameList()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
118 self.assertEqual( lObs, lExp )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
119
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
120 def test_getSetListFromSeqName(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
121 self._iDb.createTable( self._table, "set", "" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
122 set1 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
123 set1.setFromString( "1\tname1\tdesc1\t1\t120\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
124 set2 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
125 set2.setFromString( "2\tname2\tdesc2\t1\t20\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
126 set3 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
127 set3.setFromString( "3\tname2\tdesc2\t1\t50\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
128 for m in [ set1, set2, set3 ]: self._tSetA.insert( m )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
129 explSet = [Set( 2,"name2", "desc2", 1, 20), Set( 3,"name2", "desc2", 1, 50)]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
130 obslSet = self._tSetA.getSetListFromSeqName("desc2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
131 self.assertEqual( explSet, obslSet )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
132
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
133 def test_getSetListFromId(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
134 self._iDb.createTable( self._table, "set", "" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
135 set1 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
136 set1.setFromString( "1\tname1\tdesc1\t1\t120\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
137 set2 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
138 set2.setFromString( "2\tname2\tdesc2\t1\t20\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
139 lset = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
140 self._tSetA.insertList( lset )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
141 explSet = [Set( 2,"name2", "desc2", 1, 20)]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
142 obslSet = self._tSetA.getSetListFromId(2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
143 self.assertEqual( explSet, obslSet )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
144
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
145 def test_getSetListFromIdList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
146 self._iDb.createTable( self._table, "set", "" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
147 set1 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
148 set1.setFromString( "1\tname1\tdesc1\t1\t120\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
149 set2 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
150 set2.setFromString( "2\tname2\tdesc2\t1\t20\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
151 lset = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
152 self._tSetA.insertList( lset )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
153 explSet = [Set( 1, "name1", "desc1", 1, 120), Set( 2,"name2", "desc2", 1, 20)]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
154 lId = [1, 2]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
155 obslSet = self._tSetA.getSetListFromIdList(lId)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
156 self.assertEqual( explSet, obslSet )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
157
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
158 def test_getSetListFromIdList_emptyList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
159 self._iDb.createTable( self._table, "set", "" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
160 set1 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
161 set1.setFromString( "1\tname1\tdesc1\t1\t120\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
162 set2 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
163 set2.setFromString( "2\tname2\tdesc2\t1\t20\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
164 lset = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
165 self._tSetA.insertList( lset )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
166 explSet = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
167 lId = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
168 obslSet = self._tSetA.getSetListFromIdList(lId)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
169 self.assertEqual( explSet, obslSet )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
170
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
171 def test_getSetListOverlappingCoord(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
172 self._iDb.createTable( self._table, "set", "" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
173 set1 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
174 set1.setFromString( "1\tname1\tdesc2\t1\t120\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
175 set2 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
176 set2.setFromString( "2\tname2\tdesc2\t1\t20\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
177 lset = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
178 self._tSetA.insertList( lset )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
179 explSet = [Set( 1,"name1", "desc2", 1, 120)]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
180 obslSet = self._tSetA.getSetListOverlappingCoord("desc2", 30, 70)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
181 self.assertEqual( explSet, obslSet )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
182
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
183 def test_deleteFromId(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
184 self._iDb.createTable( self._table, "set", "" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
185 set1 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
186 set1.setFromString( "1\tname1\tdesc1\t1\t120\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
187 set2 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
188 set2.setFromString( "2\tname2\tdesc2\t1\t20\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
189 set3 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
190 set3.setFromString( "3\tname2\tdesc3\t1\t50\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
191 for m in [ set1, set2, set3 ]: self._tSetA.insert( m )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
192 self._tSetA.deleteFromId(1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
193 expTSetTuples = (( 2,"name2", "desc2", 1, 20), ( 3,"name2", "desc3", 1, 50))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
194 sqlCmd = "SELECT * FROM %s" % ( self._table )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
195 self._iDb.execute( sqlCmd )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
196 obsTsetTuples = self._iDb.cursor.fetchall()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
197
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
198 self.assertEqual( expTSetTuples, obsTsetTuples )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
199
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
200 def test_deleteFromIdList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
201 self._iDb.createTable( self._table, "set", "" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
202 set1 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
203 set1.setFromString( "1\tname1\tdesc1\t1\t120\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
204 set2 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
205 set2.setFromString( "2\tname2\tdesc2\t1\t20\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
206 set3 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
207 set3.setFromString( "3\tname2\tdesc3\t1\t50\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
208 for m in [ set1, set2, set3 ]: self._tSetA.insert( m )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
209 lId2del = [1, 2]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
210 self._tSetA.deleteFromIdList(lId2del)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
211 expTSetTuples = (( 3,"name2", "desc3", 1, 50),)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
212 sqlCmd = "SELECT * FROM %s" % ( self._table )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
213 self._iDb.execute( sqlCmd )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
214 obsTsetTuples = self._iDb.cursor.fetchall()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
215
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
216 self.assertEqual( expTSetTuples, obsTsetTuples )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
217
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
218 def test_deleteFromIdListWithEmptyList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
219 self._iDb.createTable( self._table, "set", "" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
220 set1 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
221 set1.setFromString( "1\tname1\tdesc1\t1\t120\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
222 set2 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
223 set2.setFromString( "2\tname2\tdesc2\t1\t20\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
224 set3 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
225 set3.setFromString( "3\tname2\tdesc3\t1\t50\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
226 for m in [ set1, set2, set3 ]: self._tSetA.insert( m )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
227 lId2del = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
228 self._tSetA.deleteFromIdList(lId2del)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
229 expTSetTuples = ((1L, 'name1', 'desc1', 1L, 120L), (2L, 'name2', 'desc2', 1L, 20L), (3L, 'name2', 'desc3', 1L, 50L))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
230 sqlCmd = "SELECT * FROM %s" % ( self._table )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
231 self._iDb.execute( sqlCmd )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
232 obsTsetTuples = self._iDb.cursor.fetchall()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
233
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
234 self.assertEqual( expTSetTuples, obsTsetTuples )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
235
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
236 def test_joinTwoSets(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
237 self._iDb.createTable( self._table, "set", "" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
238 idSet1 = 5
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
239 set1 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
240 set1.setFromString( "5\tname1\tdesc1\t1\t120\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
241 idSet2 = 2
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
242 set2 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
243 set2.setFromString( "2\tname2\tdesc2\t1\t20\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
244 lset = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
245 self._tSetA.insertList( lset )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
246 self._tSetA.joinTwoSets(idSet1, idSet2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
247 sqlCmd = "SELECT * FROM %s" % ( self._table )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
248 self._iDb.execute( sqlCmd )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
249
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
250 expTSetTuples = ((2L, "name1", "desc1", 1L, 120L ), (2L, "name2", "desc2", 1L, 20L ))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
251 obsTSetTuples = self._iDb.cursor.fetchall()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
252
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
253 self.assertEqual( expTSetTuples, obsTSetTuples)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
254 self._iDb.dropTable(self._table)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
255
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
256 def test_joinTwoSetsWhereId1InfId2(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
257 self._iDb.createTable( self._table, "set", "" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
258 idSet1 = 2
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
259 set1 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
260 set1.setFromString( "5\tname1\tdesc1\t1\t120\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
261
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
262 idSet2 = 5
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
263 set2 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
264 set2.setFromString( "2\tname2\tdesc2\t1\t20\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
265
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
266 lset = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
267 self._tSetA.insertList( lset )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
268
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
269 self._tSetA.joinTwoSets(idSet1, idSet2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
270
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
271 sqlCmd = "SELECT * FROM %s" % ( self._table )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
272 self._iDb.execute( sqlCmd )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
273
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
274 expTSetTuples = ((2L, "name1", "desc1", 1L, 120L ), (2L, "name2", "desc2", 1L, 20L ))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
275 obsTSetTuples = self._iDb.cursor.fetchall()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
276
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
277 self.assertEqual( expTSetTuples, obsTSetTuples)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
278 self._iDb.dropTable(self._table)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
279
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
280 def test_getNewId(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
281 self._iDb.createTable( self._table, "set", "" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
282 set1 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
283 set1.setFromString( "1\tname1\tdesc1\t1\t120\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
284 set2 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
285 set2.setFromString( "2\tname2\tdesc2\t1\t20\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
286 set3 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
287 set3.setFromString( "5\tname1\tdesc1\t1\t120\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
288 set4 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
289 set4.setFromString( "8\tname2\tdesc2\t1\t20\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
290 lset = [ set1, set2, set3, set4 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
291 self._tSetA.insertList( lset )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
292 expId = 9
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
293 obsId = self._tSetA.getNewId()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
294 self.assertEqual( expId, obsId)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
295 self._iDb.dropTable(self._table)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
296
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
297 def test_getNewId_set_null(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
298 self._iDb.createTable( self._table, "set", "" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
299 set1 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
300 lset = [ set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
301 self._tSetA.insertList( lset )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
302 expId = 1
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
303 obsId = self._tSetA.getNewId()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
304 self.assertEqual( expId, obsId)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
305 self._iDb.dropTable(self._table)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
306
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
307 def test_getListOfAllSets( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
308 self._iDb.createTable( self._table, "set" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
309 s1 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
310 s1.setFromString( "1\tchr1\tTE3\t1\t10\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
311 s2a = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
312 s2a.setFromString( "2\tchr1\tTE2\t2\t9\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
313 s2b = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
314 s2b.setFromString( "2\tchr1\tTE2\t12\t19\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
315 lSets = [ s1, s2a, s2b ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
316 self._tSetA.insertList( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
317 expLSets = [ s1, s2a, s2b ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
318 obsLSets = self._tSetA.getListOfAllSets()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
319 self.assertEqual( expLSets, obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
320
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
321 def test_getListOfAllSets_empty_table( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
322 self._iDb.createTable( self._table, "set" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
323 expList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
324 obsList = self._tSetA.getListOfAllSets()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
325 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
326
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
327 test_suite = unittest.TestSuite()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
328 test_suite.addTest( unittest.makeSuite( Test_TableSetAdaptator ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
329 if __name__ == "__main__":
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
330 unittest.TextTestRunner(verbosity=2).run( test_suite )