diff --git a/multiseek/logic.py b/multiseek/logic.py index 30aa914..a54e7f3 100644 --- a/multiseek/logic.py +++ b/multiseek/logic.py @@ -670,10 +670,9 @@ def get_query_for_model(self, data, removed_manually=None): if 'form_data' in data: query = self.get_query(data['form_data']) + retval = self.model.objects.all() if query is not None: retval = self.model.objects.filter(query) - else: - retval = self.model.objects.all() if removed_manually: retval = retval.exclude(pk__in=removed_manually) diff --git a/multiseek/tests/test_logic.py b/multiseek/tests/test_logic.py index e043ac5..bd5706f 100755 --- a/multiseek/tests/test_logic.py +++ b/multiseek/tests/test_logic.py @@ -19,6 +19,8 @@ test_json = json.dumps({'form_data': [None, dict(field='foo', operator=text(EQUALITY_OPS_ALL[0]), value='foo', prev_op=None)]}) +test_buggy_json = json.dumps({'form_data': [None]}) + def py3k_test_string(s): if six.PY3: return s.replace("u'", "'").replace('u"', '"').replace(", u'", ", '") @@ -95,6 +97,7 @@ def test_value_to_web_bug(self): q = AutocompleteQueryObject('fo', model=SearchForm) self.assertEquals(q.value_to_web(1), '[null, ""]') + class TestRangeQueryObject(TestCase): def test_value_from_web(self): r = RangeQueryObject('foo') @@ -217,6 +220,10 @@ def test_get_query_for_model(self): self.registry.get_query_for_model(json.loads(test_json)) self.registry.get_query_for_model(None) + def test_get_query_for_model_bug(self): + self.registry.model = MagicMock() + self.registry.get_query_for_model(json.loads(test_buggy_json)) + def test_recreate_form(self): op = text(EQUALITY_OPS_ALL[0]) fld_noop = dict(field='foo', operator=op, value=u'foo', prev_op=None)