Esempio n. 1
0
 def test_key(self):
     """Test using a custom `key` function."""
     iterables = [xrange(5, 0, -1), xrange(4, 0, -1)]
     eq_(list(sorted(reduce(list.__add__,
                                     [list(it) for it in iterables]),
                     reverse=True)),
         list(merge(*iterables, key=lambda x: -x)))
Esempio n. 2
0
 def test_key(self):
     """Test using a custom `key` function."""
     iterables = [xrange(5, 0, -1), xrange(4, 0, -1)]
     eq_(
         list(
             sorted(reduce(list.__add__, [list(it) for it in iterables]),
                    reverse=True)), list(merge(*iterables,
                                               key=lambda x: -x)))
Esempio n. 3
0
    def _users_watching(self, **kwargs):
        # Get a sorted iterable of user-watch pairs:
        users_and_watches = merge(
            *[e._users_watching(**kwargs) for e in self.events],
            key=lambda (user, watch): user.email.lower(),
            reverse=True)

        # Pick the best User out of each cluster of identical email addresses:
        return _unique_by_email(users_and_watches)
Esempio n. 4
0
File: events.py Progetto: gerv/kuma
    def _users_watching(self, **kwargs):
        # Get a sorted iterable of user-watch pairs:
        users_and_watches = merge(*[e._users_watching(**kwargs)
                                    for e in self.events],
                                  key=lambda (user, watch): user.email.lower(),
                                  reverse=True)

        # Pick the best User out of each cluster of identical email addresses:
        return _unique_by_email(users_and_watches)
Esempio n. 5
0
 def test_reverse(self):
     """Test the `reverse` kwarg."""
     iterables = [xrange(4, 0, -1), xrange(7, 0, -1), xrange(3, 6, -1)]
     eq_(
         sorted(reduce(list.__add__, [list(it) for it in iterables]),
                reverse=True), list(merge(*iterables, reverse=True)))
Esempio n. 6
0
 def test_one(self):
     """Work when only 1 iterable is passed."""
     eq_([0, 1], list(merge(xrange(2))))
Esempio n. 7
0
 def test_empty(self):
     """Be nice if passed an empty list of iterables."""
     eq_([], list(merge()))
Esempio n. 8
0
 def test_default(self):
     """Test with the default `key` function."""
     iterables = [xrange(4), xrange(7), xrange(3, 6)]
     eq_(sorted(reduce(list.__add__, [list(it) for it in iterables])),
         list(merge(*iterables)))
Esempio n. 9
0
 def test_reverse(self):
     """Test the `reverse` kwarg."""
     iterables = [xrange(4, 0, -1), xrange(7, 0, -1), xrange(3, 6, -1)]
     eq_(sorted(reduce(list.__add__, [list(it) for it in iterables]),
                reverse=True),
         list(merge(*iterables, reverse=True)))
Esempio n. 10
0
 def test_one(self):
     """Work when only 1 iterable is passed."""
     eq_([0, 1], list(merge(xrange(2))))
Esempio n. 11
0
 def test_empty(self):
     """Be nice if passed an empty list of iterables."""
     eq_([], list(merge()))
Esempio n. 12
0
 def test_default(self):
     """Test with the default `key` function."""
     iterables = [xrange(4), xrange(7), xrange(3, 6)]
     eq_(sorted(reduce(list.__add__, [list(it) for it in iterables])),
         list(merge(*iterables)))