133 req, rset, rqlst, filtered_variable = self.prepare_rqlst() |
133 req, rset, rqlst, filtered_variable = self.prepare_rqlst() |
134 f = facet.DateRangeFacet(req, rset=rset, |
134 f = facet.DateRangeFacet(req, rset=rset, |
135 select=rqlst.children[0], |
135 select=rqlst.children[0], |
136 filtered_variable=filtered_variable) |
136 filtered_variable=filtered_variable) |
137 f.rtype = 'creation_date' |
137 f.rtype = 'creation_date' |
138 dates = self.execute('Any CD ORDERBY CD WHERE X is CWUser, X creation_date CD') |
138 mind, maxd = self.execute('Any MIN(CD), MAX(CD) WHERE X is CWUser, X creation_date CD')[0] |
139 self.assertEqual(f.vocabulary(), |
139 self.assertEqual(f.vocabulary(), |
140 [(str(dates[0][0]), dates[0][0]), |
140 [(str(mind), mind), |
141 (str(dates[1][0]), dates[1][0])]) |
141 (str(maxd), maxd)]) |
142 # ensure rqlst is left unmodified |
142 # ensure rqlst is left unmodified |
143 self.assertEqual(rqlst.as_string(), 'DISTINCT Any WHERE X is CWUser') |
143 self.assertEqual(rqlst.as_string(), 'DISTINCT Any WHERE X is CWUser') |
144 #rqlst = rset.syntax_tree() |
144 #rqlst = rset.syntax_tree() |
145 self.assertEqual(f.possible_values(), |
145 self.assertEqual(f.possible_values(), |
146 [str(dates[0][0]), str(dates[1][0])]) |
146 [str(mind), str(maxd)]) |
147 # ensure rqlst is left unmodified |
147 # ensure rqlst is left unmodified |
148 self.assertEqual(rqlst.as_string(), 'DISTINCT Any WHERE X is CWUser') |
148 self.assertEqual(rqlst.as_string(), 'DISTINCT Any WHERE X is CWUser') |
149 req.form['%s_inf' % f.__regid__] = str(datetime2ticks(dates[0][0])) |
149 req.form['%s_inf' % f.__regid__] = str(datetime2ticks(mind)) |
150 req.form['%s_sup' % f.__regid__] = str(datetime2ticks(dates[0][0])) |
150 req.form['%s_sup' % f.__regid__] = str(datetime2ticks(mind)) |
151 f.add_rql_restrictions() |
151 f.add_rql_restrictions() |
152 # selection is cluttered because rqlst has been prepared for facet (it |
152 # selection is cluttered because rqlst has been prepared for facet (it |
153 # is not in real life) |
153 # is not in real life) |
154 self.assertEqual(f.select.as_string(), |
154 self.assertEqual(f.select.as_string(), |
155 'DISTINCT Any WHERE X is CWUser, X creation_date >= "%s", ' |
155 'DISTINCT Any WHERE X is CWUser, X creation_date >= "%s", ' |
156 'X creation_date <= "%s"' |
156 'X creation_date <= "%s"' |
157 % (dates[0][0].strftime('%Y/%m/%d'), |
157 % (mind.strftime('%Y/%m/%d'), |
158 dates[0][0].strftime('%Y/%m/%d'))) |
158 mind.strftime('%Y/%m/%d'))) |
159 |
159 |
160 def test_attribute(self): |
160 def test_attribute(self): |
161 req, rset, rqlst, filtered_variable = self.prepare_rqlst() |
161 req, rset, rqlst, filtered_variable = self.prepare_rqlst() |
162 f = facet.AttributeFacet(req, rset=rset, |
162 f = facet.AttributeFacet(req, rset=rset, |
163 select=rqlst.children[0], |
163 select=rqlst.children[0], |