Skip to content

Commit a6d8aec

Browse files
committed
Use util.unique for model
Signed-off-by: Philippe Ombredanne <[email protected]>
1 parent 67a6e3e commit a6d8aec

File tree

3 files changed

+30
-34
lines changed

3 files changed

+30
-34
lines changed

src/attributecode/model.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1434,18 +1434,6 @@ def by_name(abouts):
14341434
return OrderedDict(sorted(grouped.items()))
14351435

14361436

1437-
def unique(abouts):
1438-
"""
1439-
Return a list of unique About objects.
1440-
"""
1441-
uniques = []
1442-
for about in abouts:
1443-
if any(about == x for x in uniques):
1444-
continue
1445-
uniques.append(about)
1446-
return uniques
1447-
1448-
14491437
def by_license_content(abouts):
14501438
"""
14511439
Return an ordered dict sorted by key of About objects grouped by license

tests/test_model.py

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1265,27 +1265,6 @@ def test_collect_inventory_complex_from_directory(self):
12651265

12661266
class GroupingsTest(unittest.TestCase):
12671267

1268-
def test_unique(self):
1269-
base_dir = 'some_dir'
1270-
test = {'about_resource': u'.',
1271-
'author': u'',
1272-
'copyright': u'Copyright (c) 2013-2014 nexB Inc.',
1273-
u'custom1': u'some custom',
1274-
u'custom_empty': u'',
1275-
'description': u'AboutCode is a tool\nfor files.',
1276-
'license': u'apache-2.0',
1277-
'name': u'AboutCode',
1278-
'owner': u'nexB Inc.'}
1279-
1280-
a = model.About()
1281-
a.load_dict(test, base_dir)
1282-
1283-
b = model.About()
1284-
b.load_dict(test, base_dir)
1285-
abouts = [a, b]
1286-
results = model.unique(abouts)
1287-
assert [a] == results
1288-
12891268
def test_by_license(self):
12901269
base_dir = 'some_dir'
12911270
a = model.About()

tests/test_util.py

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -691,8 +691,37 @@ def test_ungroup_licenses(self):
691691
assert expected_lic_file == lic_file
692692
assert expected_lic_url == lic_url
693693

694-
def test_deduplicate(self):
694+
def test_unique_does_deduplicate_and_keep_ordering(self):
695695
items = ['a', 'b', 'd', 'b', 'c', 'a']
696696
expected = ['a', 'b', 'd', 'c']
697697
results = util.unique(items)
698698
assert expected == results
699+
700+
def test_unique_can_handle_About_object(self):
701+
base_dir = 'some_dir'
702+
test = {
703+
'about_resource': '.',
704+
'author': '',
705+
'copyright': 'Copyright (c) 2013-2014 nexB Inc.',
706+
'custom1': 'some custom',
707+
'custom_empty': '',
708+
'description': 'AboutCode is a tool\nfor files.',
709+
'license': 'apache-2.0',
710+
'name': 'AboutCode',
711+
'owner': 'nexB Inc.'
712+
}
713+
714+
a = model.About()
715+
a.load_dict(test, base_dir)
716+
717+
c = model.About()
718+
c.load_dict(test, base_dir)
719+
720+
b = model.About()
721+
test.update(dict(about_resource='asdasdasd'))
722+
b.load_dict(test, base_dir)
723+
724+
abouts = [a, b]
725+
results = util.unique(abouts)
726+
assert [a] == results
727+

0 commit comments

Comments
 (0)