def test_populate_dictionary_with_basic_link_from_DB(self):
        # Create resources and Link
        src_id = "124816"
        tar_id = "112358"
        src_res = core_model.Resource(src_id, occi_sla.AGREEMENT, None)
        tar_res = core_model.Resource(tar_id, occi_sla.AGREEMENT, None)

        lnk_id = "/agreement/load-link-entity-from-DB"
        lnk = core_model.Link(lnk_id, None, None, src_res, tar_res)

        links = EntityDictionary(self.api.registry)
        links._persist_resource(src_id, src_res)
        links._persist_resource(tar_id, tar_res)
        links._persist_link(lnk_id, lnk)

        links.populate_from_db()

        self.assertEqual(len(links), 3)
        self.assertTrue(isinstance(links[lnk_id], core_model.Link))
        self.assertEqual(links[lnk_id].identifier, lnk_id)
        # Removing assistive field templates for comparison
        temp_src = links[lnk_id].source.__dict__
        temp_trgt = links[lnk_id].target.__dict__
        temp_src.pop('templates')
        temp_trgt.pop('templates')
        self.assertEqual(temp_src, src_res.__dict__)
        self.assertEqual(temp_trgt, tar_res.__dict__)
Ejemplo n.º 2
0
    def test_populate_dictionary_with_basic_link_from_DB(self):
        # Create resources and Link
        src_id = "124816"
        tar_id = "112358"
        src_res = core_model.Resource(src_id, occi_sla.AGREEMENT, None)
        tar_res = core_model.Resource(tar_id, occi_sla.AGREEMENT, None)

        lnk_id = "/agreement/load-link-entity-from-DB"
        lnk = core_model.Link(lnk_id, None, None, src_res, tar_res)

        links = EntityDictionary(self.api.registry)
        links._persist_resource(src_id, src_res)
        links._persist_resource(tar_id, tar_res)
        links._persist_link(lnk_id, lnk)

        links.populate_from_db()

        self.assertEqual(len(links), 3)
        self.assertTrue(isinstance(links[lnk_id], core_model.Link))
        self.assertEqual(links[lnk_id].identifier, lnk_id)
        # Removing assistive field templates for comparison
        temp_src = links[lnk_id].source.__dict__
        temp_trgt = links[lnk_id].target.__dict__
        temp_src.pop('templates')
        temp_trgt.pop('templates')
        self.assertEqual(temp_src, src_res.__dict__)
        self.assertEqual(temp_trgt, tar_res.__dict__)
Ejemplo n.º 3
0
    def test_populate_dictionary_with_resource_containing_links(self):
        # Test entities - creating a resource with two links
        res_tar_1_id = "/an-id/res_tar_1"
        res_src_1_id = "/an-id/res_src_1"
        lnk_1_id = "/an-id/lnk_1_id"
        res_tar_2_id = "/an-id/res_tar_2"
        res_src_2_id = "/an-id/res_src_2"
        lnk_2_id = "/an-id/lnk_2_id"
        res_m_id = "/an-id/res_m"

        res_src_1 = core_model.Resource(res_src_1_id, occi_sla.AGREEMENT, None)
        res_tar_1 = core_model.Resource(res_tar_1_id, occi_sla.AGREEMENT, None)
        lnk_1 = core_model.Link(lnk_1_id, occi_sla.AGREEMENT_LINK, None,
                                res_src_1, res_tar_1)
        res_src_2 = core_model.Resource(res_src_2_id, occi_sla.AGREEMENT, None)
        res_tar_2 = core_model.Resource(res_tar_2_id, occi_sla.AGREEMENT, None)
        lnk_2 = core_model.Link(lnk_2_id, occi_sla.AGREEMENT_LINK, None,
                                res_src_2, res_tar_2)
        res_m = core_model.Resource(res_m_id, occi_sla.AGREEMENT, None,
                                    [lnk_1, lnk_2])

        # Persist all to DB but not dict in memory
        entities = EntityDictionary(self.api.registry)
        entities._persist_link(lnk_1_id, lnk_1)
        entities._persist_link(lnk_2_id, lnk_2)
        entities._persist_resource(res_src_1_id, res_src_1)
        entities._persist_resource(res_tar_1_id, res_tar_1)
        entities._persist_resource(res_src_2_id, res_src_2)
        entities._persist_resource(res_tar_2_id, res_tar_2)
        entities._persist_resource(res_m_id, res_m)

        entities.populate_from_db()

        self.assertEqual(len(entities), 7)
        self.assertEqual(len(entities[res_m_id].links), 2)

        for link in entities[res_m_id].links:
            if link.identifier == lnk_1_id:
                # Removing assistive field templates for comparison
                temp_src = link.source.__dict__
                temp_trgt = link.target.__dict__
                temp_src.pop('templates')
                temp_trgt.pop('templates')
                self.assertEqual(temp_src, res_src_1.__dict__)
                self.assertEqual(temp_trgt, res_tar_1.__dict__)
            else:
                # Removing assistive field templates for comparison
                temp_src = link.source.__dict__
                temp_trgt = link.target.__dict__
                temp_src.pop('templates')
                temp_trgt.pop('templates')
                self.assertEqual(temp_src, res_src_2.__dict__)
                self.assertEqual(temp_trgt, res_tar_2.__dict__)
    def test_populate_dictionary_with_resource_containing_links(self):
        # Test entities - creating a resource with two links
        res_tar_1_id = "/an-id/res_tar_1"
        res_src_1_id = "/an-id/res_src_1"
        lnk_1_id = "/an-id/lnk_1_id"
        res_tar_2_id = "/an-id/res_tar_2"
        res_src_2_id = "/an-id/res_src_2"
        lnk_2_id = "/an-id/lnk_2_id"
        res_m_id = "/an-id/res_m"

        res_src_1 = core_model.Resource(res_src_1_id, occi_sla.AGREEMENT, None)
        res_tar_1 = core_model.Resource(res_tar_1_id, occi_sla.AGREEMENT, None)
        lnk_1 = core_model.Link(lnk_1_id, occi_sla.AGREEMENT_LINK, None, res_src_1, res_tar_1)
        res_src_2 = core_model.Resource(res_src_2_id, occi_sla.AGREEMENT, None)
        res_tar_2 = core_model.Resource(res_tar_2_id, occi_sla.AGREEMENT, None)
        lnk_2 = core_model.Link(lnk_2_id, occi_sla.AGREEMENT_LINK, None, res_src_2, res_tar_2)
        res_m = core_model.Resource(res_m_id, occi_sla.AGREEMENT, None, [lnk_1, lnk_2])

        # Persist all to DB but not dict in memory
        entities = EntityDictionary(self.api.registry)
        entities._persist_link(lnk_1_id, lnk_1)
        entities._persist_link(lnk_2_id, lnk_2)
        entities._persist_resource(res_src_1_id, res_src_1)
        entities._persist_resource(res_tar_1_id, res_tar_1)
        entities._persist_resource(res_src_2_id, res_src_2)
        entities._persist_resource(res_tar_2_id, res_tar_2)
        entities._persist_resource(res_m_id, res_m)

        entities.populate_from_db()

        self.assertEqual(len(entities), 7)
        self.assertEqual(len(entities[res_m_id].links), 2)

        for link in entities[res_m_id].links:
            if link.identifier == lnk_1_id:
                # Removing assistive field templates for comparison
                temp_src = link.source.__dict__
                temp_trgt = link.target.__dict__
                temp_src.pop('templates')
                temp_trgt.pop('templates')
                self.assertEqual(temp_src, res_src_1.__dict__)
                self.assertEqual(temp_trgt, res_tar_1.__dict__)
            else:
                # Removing assistive field templates for comparison
                temp_src = link.source.__dict__
                temp_trgt = link.target.__dict__
                temp_src.pop('templates')
                temp_trgt.pop('templates')
                self.assertEqual(temp_src, res_src_2.__dict__)
                self.assertEqual(temp_trgt, res_tar_2.__dict__)