Exemple #1
0
 def test_getOrderValuesFor__decorated_result_set(self):
     # getOrderValuesFor() knows how to retrieve SQL sort values
     # from DecoratedResultSets.
     resultset = self.makeDecoratedStormResultSet()
     range_factory = StormRangeFactory(resultset)
     self.assertEqual(
         [resultset[0].id], range_factory.getOrderValuesFor(resultset[0]))
Exemple #2
0
 def test_getOrderValuesFor__two_sort_columns(self):
     # Sorting by more than one column is supported.
     resultset = self.makeStormResultSet()
     resultset.order_by(Person.displayname, Person.name)
     range_factory = StormRangeFactory(resultset)
     order_values = range_factory.getOrderValuesFor(resultset[0])
     self.assertEqual(
         [resultset[0].displayname, resultset[0].name], order_values)
Exemple #3
0
 def test_getOrderValuesFor__descending_sort_order(self):
     # getOrderValuesFor() can retrieve values from reverse sorted
     # columns.
     resultset = self.makeStormResultSet()
     resultset = resultset.order_by(Desc(Person.id))
     range_factory = StormRangeFactory(resultset)
     self.assertEqual(
         [resultset[0].id], range_factory.getOrderValuesFor(resultset[0]))
Exemple #4
0
 def test_getOrderValuesFor__one_sort_column(self):
     # StormRangeFactory.getOrderValuesFor() returns the values
     # of the fields used in order_by expresssions for a given
     # result row.
     resultset = self.makeStormResultSet()
     resultset.order_by(Person.id)
     range_factory = StormRangeFactory(resultset)
     order_values = range_factory.getOrderValuesFor(resultset[0])
     self.assertEqual([resultset[0].id], order_values)
 def test_getOrderValuesFor__value_from_second_element_of_result_row(self):
     # getOrderValuesFor() can retrieve values from attributes
     # of any Storm table class instance which appear in a result row.
     resultset = self.makeDecoratedStormResultSet()
     resultset = resultset.order_by(LibraryFileAlias.id)
     plain_resultset = resultset.get_plain_result_set()
     range_factory = StormRangeFactory(resultset)
     self.assertEqual([plain_resultset[0][1].id],
                      range_factory.getOrderValuesFor(plain_resultset[0]))
 def test_getOrderValuesFor__value_from_second_element_of_result_row(self):
     # getOrderValuesFor() can retrieve values from attributes
     # of any Storm table class instance which appear in a result row.
     resultset = self.makeDecoratedStormResultSet()
     resultset = resultset.order_by(LibraryFileAlias.id)
     plain_resultset = resultset.get_plain_result_set()
     range_factory = StormRangeFactory(resultset)
     self.assertEqual(
         [plain_resultset[0][1].id],
         range_factory.getOrderValuesFor(plain_resultset[0]))
Exemple #7
0
 def test_getEndpointMemos(self):
     # getEndpointMemos() returns JSON representations of the
     # sort fields of the first and last element of a batch.
     resultset = self.makeStormResultSet()
     resultset.order_by(Person.name)
     range_factory = StormRangeFactory(resultset)
     memo_value = range_factory.getOrderValuesFor(resultset[0])
     request = LaunchpadTestRequest(
         QUERY_STRING='memo=%s' % simplejson.dumps(memo_value))
     batchnav = BatchNavigator(
         resultset, request, size=3, range_factory=range_factory)
     first, last = range_factory.getEndpointMemos(batchnav.batch)
     expected_first = simplejson.dumps(
         [resultset[1].name], cls=DateTimeJSONEncoder)
     expected_last = simplejson.dumps(
         [resultset[3].name], cls=DateTimeJSONEncoder)
     self.assertEqual(expected_first, first)
     self.assertEqual(expected_last, last)