コード例 #1
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)
コード例 #2
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)