Ejemplo n.º 1
0
    def test_view_filter_same_attrib_two_element(self):
        """Test that choosing 2 att elems from same attribute should return matching view filter in body."""

        f = Filter(attributes=self.attributes,
                   metrics=self.metrics,
                   attr_elements=self.elements)
        f._select_attr_el(self.element_sel_same_list)
        vf = f._view_filter()

        self.assertIn("operator", vf)
        self.assertEqual(
            vf["operator"],
            "In")  # should be In because elems are for same parent attr
        self.assertIn("operands", vf)

        att, elems = vf["operands"]

        self.assertEqual(att["type"], "attribute")
        self.assertEqual(elems["type"], "elements")

        for obj_id in self.element_sel_same_list:
            self.assertEqual(att["id"],
                             f.attr_elems.get(obj_id)["attribute_id"])

        for elem, obj_id in zip(elems["elements"], self.element_sel_same_list):
            self.assertEqual(elem["id"], obj_id)
Ejemplo n.º 2
0
    def test_view_filter_none(self):
        """Test that adding no attributes elements yields None view filter."""

        f = Filter(attributes=self.attributes,
                   metrics=self.metrics,
                   attr_elements=self.elements)

        # should be none if none are obj_id
        vf = f._view_filter()
        self.assertIsNone(vf)
Ejemplo n.º 3
0
    def test_filter_body_attribute_element_list(self):
        """Test for presence of attribute element ids in the filter body."""

        f = Filter(attributes=self.attributes,
                   metrics=self.metrics,
                   attr_elements=self.elements)
        f._select_attr_el(self.element_sel_list)
        vf = f._view_filter()
        fb = f._filter_body()

        self.assertDictEqual(fb["viewFilter"], vf)
Ejemplo n.º 4
0
    def test_view_filter_not_none(self):
        """Test that adding no attributes elements yields None view filter."""

        f = Filter(attributes=self.attributes,
                   metrics=self.metrics,
                   attr_elements=self.elements)

        # should not be none if some are obj_id
        f._select_attr_el(self.element_sel)

        vf = f._view_filter()
        self.assertIsNotNone(vf)
Ejemplo n.º 5
0
    def test_view_filter_same_attrib_one_element(self):
        """Test that choosing 1 att elem should return matching view filter in body."""

        f = Filter(attributes=self.attributes,
                   metrics=self.metrics,
                   attr_elements=self.elements)
        f._select_attr_el(self.element_sel)
        vf = f._view_filter()

        self.assertIn("operator", vf)
        self.assertEqual(vf["operator"], "In")
        self.assertIn("operands", vf)

        att, elems = vf["operands"]

        self.assertEqual(att["type"], "attribute")
        self.assertEqual(att["id"],
                         f.attr_elems.get(self.element_sel)["attribute_id"])
        self.assertEqual(elems["type"], "elements")

        for elem, obj_id in zip(elems["elements"], self.element_sel):
            self.assertEqual(elem["id"], self.element_sel)
Ejemplo n.º 6
0
    def test_view_filter_multi_attrib_element(self):
        """Test that choosing att elem across attributes forms a correct view filter body."""

        f = Filter(attributes=self.attributes,
                   metrics=self.metrics,
                   attr_elements=self.elements)

        f._select_attr_el(self.element_sel_list)
        vf = f._view_filter()

        self.assertEqual(
            vf["operator"],
            "And")  # should be And because elements span parent attributes
        self.assertIn("operator", vf)
        self.assertIn("operands", vf)
        self.assertIsInstance(vf["operands"], list)

        for operand in vf["operands"]:

            self.assertIn("operator", operand)
            self.assertIn("operands", operand)
            self.assertEqual(
                operand["operator"],
                "In")  # should be In because elems are for same parent attr

            att, elems = operand["operands"]

            self.assertEqual(att["type"], "attribute")
            self.assertEqual(elems["type"], "elements")

            for obj_id in elems["elements"]:
                self.assertEqual(
                    att["id"],
                    f.attr_elems.get(obj_id["id"])["attribute_id"])

            for elem, obj_id in zip(elems["elements"], elems["elements"]):
                self.assertEqual(elem["id"], obj_id["id"])