Example #1
0
 def setUp(self):
     self.dog = self.Creature(name='dog',
                              number_of_legs=4,
                              number_of_eyes=2)
     self.spider = self.Creature(name='spider',
                                 number_of_legs=8,
                                 number_of_eyes=9000)
     self.human = self.Creature(name='human',
                                number_of_legs=2,
                                number_of_eyes=2)
     self.creatures = Filterable([self.dog, self.human, self.spider])
Example #2
0
class TestOrdering(FilteratorTestCase):
    class Creature(namedtuple('Creature',
                              'name number_of_legs number_of_eyes')):
        def get_name(self):
            return self.name

    def setUp(self):
        self.dog = self.Creature(name='dog',
                                 number_of_legs=4,
                                 number_of_eyes=2)
        self.spider = self.Creature(name='spider',
                                    number_of_legs=8,
                                    number_of_eyes=9000)
        self.human = self.Creature(name='human',
                                   number_of_legs=2,
                                   number_of_eyes=2)
        self.creatures = Filterable([self.dog, self.human, self.spider])

    def test_order_by_int(self):
        self.assertItemsEqual([self.human, self.dog, self.spider],
                              self.creatures.order_by('number_of_legs'))

    def test_equal_items_remains_in_original_order(self):
        self.assertItemsEqual([self.dog, self.human, self.spider],
                              self.creatures.order_by('number_of_eyes'))

    def test_order_by_multiple_ints(self):
        self.assertItemsEqual([self.human, self.dog, self.spider],
                              self.creatures.order_by('number_of_eyes',
                                                      'number_of_legs'))

    def test_order_by_reversed_key(self):
        self.assertItemsEqual([self.spider, self.dog, self.human],
                              self.creatures.order_by('-number_of_legs'))

    def test_order_by_multiple_reversed_keys(self):
        self.assertItemsEqual([self.spider, self.dog, self.human],
                              self.creatures.order_by('-number_of_eyes',
                                                      '-number_of_legs'))

    def test_order_by_multiple_mixed_reversed_and_unreversed_keys(self):
        self.assertItemsEqual([self.spider, self.human, self.dog],
                              self.creatures.order_by('-number_of_eyes',
                                                      'number_of_legs'))

    def test_order_by_string(self):
        self.assertItemsEqual([self.dog, self.human, self.spider],
                              self.creatures.order_by('name'))

    def test_order_by_string_reversed(self):
        self.assertItemsEqual([self.spider, self.human, self.dog],
                              self.creatures.order_by('-name'))

    def test_order_by_method(self):
        self.assertEqual([self.dog, self.human, self.spider],
                         self.creatures.order_by('get_name'))
Example #3
0
class TestOrdering(FilteratorTestCase):
    class Creature(namedtuple('Creature', 'name number_of_legs number_of_eyes')):
        def get_name(self):
            return self.name

    def setUp(self):
        self.dog = self.Creature(name='dog', number_of_legs=4, number_of_eyes=2)
        self.spider = self.Creature(name='spider', number_of_legs=8, number_of_eyes=9000)
        self.human = self.Creature(name='human', number_of_legs=2, number_of_eyes=2)
        self.creatures = Filterable([self.dog, self.human, self.spider])

    def test_order_by_int(self):
        self.assertItemsEqual([self.human, self.dog, self.spider], self.creatures.order_by('number_of_legs'))

    def test_equal_items_remains_in_original_order(self):
        self.assertItemsEqual([self.dog, self.human, self.spider], self.creatures.order_by('number_of_eyes'))

    def test_order_by_multiple_ints(self):
        self.assertItemsEqual(
            [self.human, self.dog, self.spider],
            self.creatures.order_by('number_of_eyes', 'number_of_legs')
        )

    def test_order_by_reversed_key(self):
       self.assertItemsEqual([self.spider, self.dog, self.human], self.creatures.order_by('-number_of_legs'))

    def test_order_by_multiple_reversed_keys(self):
        self.assertItemsEqual(
            [self.spider, self.dog, self.human],
            self.creatures.order_by('-number_of_eyes', '-number_of_legs')
        )

    def test_order_by_multiple_mixed_reversed_and_unreversed_keys(self):
        self.assertItemsEqual(
            [self.spider, self.human, self.dog],
            self.creatures.order_by('-number_of_eyes', 'number_of_legs')
        )

    def test_order_by_string(self):
        self.assertItemsEqual([self.dog, self.human, self.spider], self.creatures.order_by('name'))

    def test_order_by_string_reversed(self):
        self.assertItemsEqual([self.spider, self.human, self.dog], self.creatures.order_by('-name'))

    def test_order_by_method(self):
        self.assertEqual([self.dog, self.human, self.spider], self.creatures.order_by('get_name'))
Example #4
0
 def setUp(self):
     self.car = Vehicle('car', 'ford')
     self.bicycle = Vehicle('bicycle', 'nsbikes')
     self.marta = Person('Marta', 2, 'F', [], None)
     self.joe = Person('Joe', 7, 'M', [], None)
     self.alice = Person('Alice', 23, 'F', [self.marta], self.bicycle)
     self.bob = Person('Bob', 31, 'M', [self.marta, self.joe], self.car)
     self.people = Filterable([
         self.marta,
         self.joe,
         self.alice,
         self.bob,
     ])
Example #5
0
 def setUp(self):
     self.dog = self.Creature(name='dog', number_of_legs=4, number_of_eyes=2)
     self.spider = self.Creature(name='spider', number_of_legs=8, number_of_eyes=9000)
     self.human = self.Creature(name='human', number_of_legs=2, number_of_eyes=2)
     self.creatures = Filterable([self.dog, self.human, self.spider])