def test_returns_objs_group_custom_group(self): """Test function.""" objs = [self._get_obj(name) for name in ['foo1', 'foo2']] groups = [('group1', ('foo1', 'foo2'))] res = munging.group_by(objs, groups=groups, attr='name') assert list(res.keys()) == ['group1', '__unlabeled'] assert len(res['group1']) == 2
def test_returns_objs_group_custom_group(self): """Test function.""" objs = [self._get_obj(name) for name in ['foo1', 'foo2']] groups = [('group1', ('foo1', 'foo2'))] res = munging.group_by(objs, groups=groups, attr='name') assert res.keys() == ['group1', '__unlabeled'] assert len(res['group1']) == 2
def test_returns_objs_group_custom_group_with_order_preserved(self): """Test function.""" names = ['foo{}'.format(i) for i in range(1, 10)] objs = [self._get_obj(name) for name in names] groups = [ ('group1', ('foo2', 'foo1', 'foo3')), ('group2', ('foo5', 'foo4', 'foo6')), ('group3', ('foo7', 'foo9', 'foo8')), ] res = munging.group_by(objs, groups=groups, attr='name') for key in res.keys(): assert key in ['group1', 'group2', 'group3', '__unlabeled'] for group in groups: label, items = group for i, item in enumerate(items): obj_label = getattr(res[label][i], 'name') assert item == obj_label
def test_returns_objs_group_custom_group_with_one_unlabeled_complex(self): """Test function.""" names = ['foo{}'.format(i) for i in range(1, 11)] objs = [self._get_obj(name) for name in names] groups = [ ('group1', ('foo1', 'foo2', 'foo3')), ('group2', ('foo4', 'foo5', 'foo6')), ('group3', ('foo7', 'foo8', 'foo9')), ] res = munging.group_by(objs, groups=groups, attr='name') for key in res.keys(): assert key in ['group1', 'group2', 'group3', '__unlabeled'] assert len(res.keys()) == 4 assert len(res['group1']) == 3 assert len(res['group2']) == 3 assert len(res['group3']) == 3 assert len(res['__unlabeled']) == 1
def test_returns_objs_group_custom_group_with_order_preserved(self): """Test function.""" names = ['foo{}'.format(i) for i in range(1, 10)] objs = [self._get_obj(name) for name in names] groups = [ ('group1', ('foo2', 'foo1', 'foo3')), ('group2', ('foo5', 'foo4', 'foo6')), ('group3', ('foo7', 'foo9', 'foo8')), ] res = munging.group_by(objs, groups=groups, attr='name') for key in list(res.keys()): assert key in ['group1', 'group2', 'group3', '__unlabeled'] for group in groups: label, items = group for i, item in enumerate(items): obj_label = getattr(res[label][i], 'name') assert item == obj_label
def test_returns_objs_group_custom_group_with_one_unlabeled_complex(self): """Test function.""" names = ['foo{}'.format(i) for i in range(1, 11)] objs = [self._get_obj(name) for name in names] groups = [ ('group1', ('foo1', 'foo2', 'foo3')), ('group2', ('foo4', 'foo5', 'foo6')), ('group3', ('foo7', 'foo8', 'foo9')), ] res = munging.group_by(objs, groups=groups, attr='name') for key in list(res.keys()): assert key in ['group1', 'group2', 'group3', '__unlabeled'] assert len(list(res.keys())) == 4 assert len(res['group1']) == 3 assert len(res['group2']) == 3 assert len(res['group3']) == 3 assert len(res['__unlabeled']) == 1
def test_returns_objs_nogroup(self): """Test function.""" objs = [self._get_obj(None)] res = munging.group_by(objs, attr='name') assert res.keys() == ['__unlabeled'] assert len(res['__unlabeled']) == 1
def test_returns_objs_nogroup_fallback(self): """Test function.""" objs = [self._get_obj(name) for name in ['foo1']] res = munging.group_by(objs, attr=None, fallback='somegroup') assert res.keys() == ['somegroup'] assert len(res['somegroup']) == 1
def test_returns_objs_nogroup_noname(self): """Test function.""" objs = [self._get_obj(name) for name in ['foo1']] res = munging.group_by(objs, attr=None) assert res.keys() == ['__unlabeled'] assert len(res['__unlabeled']) == 1
def test_returns_no_objs_with_name(self): """Test function.""" objs = [None for _ in range(4)] res = munging.group_by(objs, attr='invalid-attr') assert res.keys() == ['__unlabeled'] assert len(res['__unlabeled']) == 4
def test_returns_objs_nogroup(self): """Test function.""" objs = [self._get_obj(None)] res = munging.group_by(objs, attr='name') assert list(res.keys()) == ['__unlabeled'] assert len(res['__unlabeled']) == 1
def test_returns_objs_nogroup_fallback(self): """Test function.""" objs = [self._get_obj(name) for name in ['foo1']] res = munging.group_by(objs, attr=None, fallback='somegroup') assert list(res.keys()) == ['somegroup'] assert len(res['somegroup']) == 1
def test_returns_objs_nogroup_noname(self): """Test function.""" objs = [self._get_obj(name) for name in ['foo1']] res = munging.group_by(objs, attr=None) assert list(res.keys()) == ['__unlabeled'] assert len(res['__unlabeled']) == 1
def test_returns_no_objs_with_name(self): """Test function.""" objs = [None for _ in range(4)] res = munging.group_by(objs, attr='invalid-attr') assert list(res.keys()) == ['__unlabeled'] assert len(res['__unlabeled']) == 4
def test_returns_no_objs_noname(self): """Test function.""" objs = [None for _ in range(4)] res = munging.group_by(objs, attr=None) assert res.keys() == ['__unlabeled'] assert len(res['__unlabeled']) == 4