コード例 #1
0
    def test_sortObjsByInt(self):

        dataObjs = self.dataObjs

        qlObjs = QueryableListObjs(self.dataObjs)

        sortedByA = qlObjs.sort_by('a')

        sortedByAList = list(sortedByA)

        expectedList = [dataObjs[0], dataObjs[3], dataObjs[2], dataObjs[1]]

        assert sortedByAList == expectedList, 'Sort by field "a" failed to return expected order.\nGot:      %s\nExpected: %s\n' % (
            repr(self._get_list_of_values(sortedByAList, 'a')),
            repr(self._get_list_of_values(expectedList, 'a')))

        assert dataObjs == self.dataObjsCopy, 'Expected sort_by to not modify original list'

        assert isinstance(
            sortedByA, QueryableListObjs
        ), 'Expected return to be a QueryableListObjs instance. Got: %s' % (
            sortedByA.__class__.__name__, )

        sortedByARev = qlObjs.sort_by('a', reverse=True)
        sortedByARevList = list(sortedByARev)

        expectedRevList = list(reversed(expectedList))

        assert sortedByARevList == expectedRevList, 'Reverse sort by field "a" failed to return expected order.\nGot:      %s\nExpected: %s\n' % (
            repr(self._get_list_of_values(sortedByARevList, 'a')),
            repr(self._get_list_of_values(expectedRevList, 'a')))

        assert dataObjs == self.dataObjsCopy, 'Expected sort_by to not modify original list'

        assert isinstance(
            sortedByARev, QueryableListObjs
        ), 'Expected return to be a QueryableListObjs instance. Got: %s' % (
            sortedByARev.__class__.__name__, )