equal
deleted
inserted
replaced
50 # add some entities |
50 # add some entities |
51 self.ic1 = self.execute('INSERT Card X: X title "C1: An internal card", X wikiid "aaai"')[0][0] |
51 self.ic1 = self.execute('INSERT Card X: X title "C1: An internal card", X wikiid "aaai"')[0][0] |
52 self.ic2 = self.execute('INSERT Card X: X title "C2: Ze internal card", X wikiid "zzzi"')[0][0] |
52 self.ic2 = self.execute('INSERT Card X: X title "C2: Ze internal card", X wikiid "zzzi"')[0][0] |
53 self.commit() |
53 self.commit() |
54 do_monkey_patch() |
54 do_monkey_patch() |
55 print 'main repo', self.repo |
|
56 print 'external simple repo', repo2 |
|
57 print 'external multi repo', repo3 |
|
58 print 'ic1', self.ic1 |
|
59 print 'ic2', self.ic2 |
|
60 |
55 |
61 def tearDown(self): |
56 def tearDown(self): |
62 RepositoryBasedTC.tearDown(self) |
57 RepositoryBasedTC.tearDown(self) |
63 undo_monkey_patch() |
58 undo_monkey_patch() |
64 |
59 |
105 # grant read access |
100 # grant read access |
106 self.execute('SET X owned_by U WHERE X eid %(x)s, U login "anon"', {'x': aff1}, 'x') |
101 self.execute('SET X owned_by U WHERE X eid %(x)s, U login "anon"', {'x': aff1}, 'x') |
107 self.commit() |
102 self.commit() |
108 cnx = self.login('anon') |
103 cnx = self.login('anon') |
109 cu = cnx.cursor() |
104 cu = cnx.cursor() |
110 print '*'*80 |
|
111 rset = cu.execute('Any X WHERE X has_text "card"') |
105 rset = cu.execute('Any X WHERE X has_text "card"') |
112 self.assertEquals(len(rset), 5, zip(rset.rows, rset.description)) |
106 self.assertEquals(len(rset), 5, zip(rset.rows, rset.description)) |
113 |
107 |
114 def test_synchronization(self): |
108 def test_synchronization(self): |
115 cu = cnx2.cursor() |
109 cu = cnx2.cursor() |
119 try: |
113 try: |
120 # force sync |
114 # force sync |
121 self.repo.sources_by_uri['extern'].synchronize(MTIME) |
115 self.repo.sources_by_uri['extern'].synchronize(MTIME) |
122 self.failUnless(self.execute('Any X WHERE X has_text "blah"')) |
116 self.failUnless(self.execute('Any X WHERE X has_text "blah"')) |
123 self.failUnless(self.execute('Any X WHERE X has_text "affreux"')) |
117 self.failUnless(self.execute('Any X WHERE X has_text "affreux"')) |
124 print 'delete', aff2 |
|
125 cu.execute('DELETE Affaire X WHERE X eid %(x)s', {'x': aff2}) |
118 cu.execute('DELETE Affaire X WHERE X eid %(x)s', {'x': aff2}) |
126 cnx2.commit() |
119 cnx2.commit() |
127 print 'sync' |
|
128 self.repo.sources_by_uri['extern'].synchronize(MTIME) |
120 self.repo.sources_by_uri['extern'].synchronize(MTIME) |
129 print 'query' |
|
130 rset = self.execute('Any X WHERE X has_text "affreux"') |
121 rset = self.execute('Any X WHERE X has_text "affreux"') |
131 print zip(rset.rows, rset.description) |
|
132 self.failIf(rset) |
122 self.failIf(rset) |
133 finally: |
123 finally: |
134 # restore state |
124 # restore state |
135 cu.execute('SET X ref "AFFREF" WHERE X eid %(x)s', {'x': aff1}, 'x') |
125 cu.execute('SET X ref "AFFREF" WHERE X eid %(x)s', {'x': aff1}, 'x') |
136 cnx2.commit() |
126 cnx2.commit() |
156 |
146 |
157 def test_in_eid(self): |
147 def test_in_eid(self): |
158 iec1 = self.repo.extid2eid(self.repo.sources_by_uri['extern'], ec1, |
148 iec1 = self.repo.extid2eid(self.repo.sources_by_uri['extern'], ec1, |
159 'Card', self.session) |
149 'Card', self.session) |
160 rset = self.execute('Any X WHERE X eid IN (%s, %s)' % (iec1, self.ic1)) |
150 rset = self.execute('Any X WHERE X eid IN (%s, %s)' % (iec1, self.ic1)) |
161 print 'hop', iec1, self.ic1 |
|
162 self.assertEquals(sorted(r[0] for r in rset.rows), sorted([iec1, self.ic1])) |
151 self.assertEquals(sorted(r[0] for r in rset.rows), sorted([iec1, self.ic1])) |
163 |
152 |
164 def test_greater_eid(self): |
153 def test_greater_eid(self): |
165 rset = self.execute('Any X WHERE X eid > %s' % self.maxeid) |
154 rset = self.execute('Any X WHERE X eid > %s' % self.maxeid) |
166 self.assertEquals(len(rset.rows), 2) # self.ic1 and self.ic2 |
155 self.assertEquals(len(rset.rows), 2) # self.ic1 and self.ic2 |