def test_and_filter_type(self): self.assertEqual(len(self.collection.results()), 3) result = get_filter_items(self.collection_uid, "Subject", cache_enabled=False) self.assertEqual(len(result), 4) self.assertEqual(get_data_by_val(result, "all")["count"], 3) self.assertEqual(get_data_by_val(result, "all")["selected"], True) self.assertEqual(get_data_by_val(result, u"Süper")["count"], 2) self.assertEqual(get_data_by_val(result, u"Evänt")["count"], 1) self.assertEqual(get_data_by_val(result, u"Dokumänt")["count"], 2) # Test url self.assertEqual(qs(result, u"Süper"), {"Subject": u"Süper"}) catalog_results = ICollection(self.collection).results( batch=False, brains=True, custom_query=make_query(qs(result, u"Süper"))) self.assertEqual(len(catalog_results), 2) result = get_filter_items( self.collection_uid, "Subject", request_params={"Subject": u"Süper"}, filter_type="and", cache_enabled=False, ) self.assertEqual(len(result), 4) self.assertEqual(get_data_by_val(result, "all")["count"], 3) # TODO: I'm not sure these counts are correct. It should represent how many results you will get if you click # so should be smaller than this but I guess you need to turn on narrow down for that? self.assertEqual(get_data_by_val(result, u"Süper")["count"], 2) self.assertEqual(get_data_by_val(result, u"Evänt")["count"], 1) self.assertEqual(get_data_by_val(result, u"Dokumänt")["count"], 2) self.assertEqual(get_data_by_val(result, u"Süper")["selected"], True) self.assertEqual(qs(result, u"Süper"), {}) self.assertEqual( qs(result, u"Dokumänt"), { "Subject_op": "and", "Subject": [u"Süper", u"Dokumänt"] }, ) self.assertEqual(qs(result, u"Evänt"), { "Subject_op": "and", "Subject": [u"Süper", u"Evänt"] }) # Narrow down by 2 catalog_results = ICollection(self.collection).results( batch=False, brains=True, custom_query=make_query(qs(result, u"Dokumänt"))) self.assertEqual(len(catalog_results), 1) result = get_filter_items( self.collection_uid, "Subject", request_params={"Subject": [u"Süper", u"Dokumänt"]}, filter_type="and", cache_enabled=False, ) self.assertEqual(len(result), 4) self.assertEqual(get_data_by_val(result, "all")["count"], 3) self.assertEqual(get_data_by_val(result, u"Süper")["count"], 2) self.assertEqual(get_data_by_val(result, u"Evänt")["count"], 1) self.assertEqual(get_data_by_val(result, u"Dokumänt")["count"], 2) self.assertEqual(get_data_by_val(result, u"Süper")["selected"], True) self.assertEqual( get_data_by_val(result, u"Dokumänt")["selected"], True) self.assertEqual(qs(result, u"Süper"), {"Subject": u"Dokumänt"}) self.assertEqual(qs(result, u"Dokumänt"), {"Subject": u"Süper"}) self.assertEqual( qs(result, u"Evänt"), { "Subject": [u"Süper", u"Dokumänt", u"Evänt"], "Subject_op": "and" }, ) # Clicking on Event we should get 0 results as none will be in common catalog_results = ICollection(self.collection).results( batch=False, brains=True, custom_query=make_query(qs(result, u"Evänt"))) self.assertEqual(len(catalog_results), 0)
def test_and_filter_type(self): self.assertEqual(len(self.collection.results()), 3) result = get_filter_items(self.collection_uid, 'Subject', cache_enabled=False) self.assertEqual(len(result), 4) self.assertEqual(get_data_by_val(result, 'all')['count'], 3) self.assertEqual(get_data_by_val(result, 'all')['selected'], True) self.assertEqual(get_data_by_val(result, u'Süper')['count'], 2) self.assertEqual(get_data_by_val(result, u'Evänt')['count'], 1) self.assertEqual(get_data_by_val(result, u'Dokumänt')['count'], 2) # Test url self.assertEqual(qs(result, u'Süper'), {'Subject': u'Süper'}) catalog_results = ICollection(self.collection).results( batch=False, brains=True, custom_query=make_query(qs(result, u'Süper'))) self.assertEqual(len(catalog_results), 2) result = get_filter_items(self.collection_uid, 'Subject', request_params={'Subject': u'Süper'}, filter_type="and", cache_enabled=False) self.assertEqual(len(result), 4) self.assertEqual(get_data_by_val(result, 'all')['count'], 3) # TODO: I'm not sure these counts are correct. It should represent how many results you will get if you click so should be smaller than this # but I guess you need to turn on narrow down for that? self.assertEqual(get_data_by_val(result, u'Süper')['count'], 2) self.assertEqual(get_data_by_val(result, u'Evänt')['count'], 1) self.assertEqual(get_data_by_val(result, u'Dokumänt')['count'], 2) self.assertEqual(get_data_by_val(result, u'Süper')['selected'], True) self.assertEqual(qs(result, u'Süper'), {}) self.assertEqual(qs(result, u'Dokumänt'), { 'Subject_op': 'and', 'Subject': [u'Süper', u'Dokumänt'] }) self.assertEqual(qs(result, u'Evänt'), { 'Subject_op': 'and', 'Subject': [u'Süper', u'Evänt'] }) # Narrow down by 2 catalog_results = ICollection(self.collection).results( batch=False, brains=True, custom_query=make_query(qs(result, u'Dokumänt'))) self.assertEqual(len(catalog_results), 1) result = get_filter_items( self.collection_uid, 'Subject', request_params={'Subject': [u'Süper', u'Dokumänt']}, filter_type="and", cache_enabled=False) self.assertEqual(len(result), 4) self.assertEqual(get_data_by_val(result, 'all')['count'], 3) self.assertEqual(get_data_by_val(result, u'Süper')['count'], 2) self.assertEqual(get_data_by_val(result, u'Evänt')['count'], 1) self.assertEqual(get_data_by_val(result, u'Dokumänt')['count'], 2) self.assertEqual(get_data_by_val(result, u'Süper')['selected'], True) self.assertEqual( get_data_by_val(result, u'Dokumänt')['selected'], True) self.assertEqual(qs(result, u'Süper'), {'Subject': u'Dokumänt'}) self.assertEqual(qs(result, u'Dokumänt'), {'Subject': u'Süper'}) self.assertEqual(qs(result, u'Evänt'), { 'Subject': [u'Süper', u'Dokumänt', u'Evänt'], 'Subject_op': 'and' }) # Clicking on Event we should get 0 results as none will be in common catalog_results = ICollection(self.collection).results( batch=False, brains=True, custom_query=make_query(qs(result, u'Evänt'))) self.assertEqual(len(catalog_results), 0)