diff --git a/core/app.py b/core/app.py index 70833e31..4229d860 100644 --- a/core/app.py +++ b/core/app.py @@ -183,9 +183,9 @@ class DupeGuru(RegistrableApplication, Broadcaster): return self.results.is_marked(dupe) if key == 'percentage': m = get_group().get_match_of(dupe) - result = m.percentage + return m.percentage elif key == 'dupe_count': - result = 0 + return 0 else: result = cmp_value(dupe, key) if delta: diff --git a/core/tests/app_test.py b/core/tests/app_test.py index df989860..ee90ba15 100644 --- a/core/tests/app_test.py +++ b/core/tests/app_test.py @@ -399,6 +399,19 @@ class TestCaseDupeGuruWithResults: app.remove_marked() eq_(len(self.rtable), 0) eq_(app.selected_dupes, []) + + def test_dont_crash_on_delta_powermarker_dupecount_sort(self, do_setup): + # Don't crash when sorting by dupe count or percentage while delta+powermarker are enabled. + # Ref #238 + app = self.app + objects = self.objects + self.rtable.delta_values = True + self.rtable.power_marker = True + self.rtable.sort('dupe_count', False) + # don't crash + self.rtable.sort('percentage', False) + # don't crash + class TestCaseDupeGuru_renameSelected: def pytest_funcarg__do_setup(self, request):