Ejemplo n.º 1
0
    def testIndexOrLexical(self):
        well_known_values = ['x-a', 'x-b', 'x-c', 'x-d']
        art = 'this is a fake artifact'

        # Case 1: accessor generates no values.
        base_accessor = lambda art: None
        accessor = sorting._IndexOrLexical(well_known_values, base_accessor)
        self.assertEqual(sorting.MAX_STRING, accessor(art))
        neg_accessor = MakeDescending(accessor)
        self.assertEqual(sorting.DescendingValue(sorting.MAX_STRING),
                         neg_accessor(art))

        # Case 2: accessor generates a value, but it is an empty value.
        base_accessor = lambda art: ''
        accessor = sorting._IndexOrLexical(well_known_values, base_accessor)
        self.assertEqual(sorting.MAX_STRING, accessor(art))
        neg_accessor = MakeDescending(accessor)
        self.assertEqual(sorting.DescendingValue(sorting.MAX_STRING),
                         neg_accessor(art))

        # Case 3: A single well-known value
        base_accessor = lambda art: 'x-c'
        accessor = sorting._IndexOrLexical(well_known_values, base_accessor)
        self.assertEqual(2, accessor(art))
        neg_accessor = MakeDescending(accessor)
        self.assertEqual(-2, neg_accessor(art))

        # Case 4: A single odd-ball value
        base_accessor = lambda art: 'x-zzz'
        accessor = sorting._IndexOrLexical(well_known_values, base_accessor)
        self.assertEqual('x-zzz', accessor(art))
        neg_accessor = MakeDescending(accessor)
        self.assertEqual(sorting.DescendingValue('x-zzz'), neg_accessor(art))
Ejemplo n.º 2
0
    def testMakeSingleSortKeyAccessor_Status(self):
        """Sorting by status should create an accessor for that column."""
        self.mox.StubOutWithMock(sorting, '_IndexOrLexical')
        status_names = [wks.status for wks in self.config.well_known_statuses]
        sorting._IndexOrLexical(status_names, 'status accessor')
        self.mox.ReplayAll()

        sorting._MakeSingleSortKeyAccessor('status', self.config,
                                           {'status': 'status accessor'}, [],
                                           {}, [])
        self.mox.VerifyAll()