web/test/unittest_facet.py
changeset 7629 58f11f7dad68
parent 7624 ce020f90fb8e
child 7768 bd44f506ca86
equal deleted inserted replaced
7628:56022cf13887 7629:58f11f7dad68
   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],