Exemplo n.º 1
0
    def test_foreign_key_back_and_forth_odd(self):
        orm = self.make_coreapi()
        site = orm.Site(name="mysite")
        site.save()
        self.assertTrue(site.id > 0)
        user = orm.User(email="fake_" + ''.join(
            random.choice(string.ascii_uppercase + string.digits)
            for _ in range(10)),
                        site_id=site.id)
        user.save()
        self.assertTrue(user.id > 0)
        slice = orm.Slice(name="mysite_foo", site=site, creator_id=user.id)
        slice.save()
        self.assertTrue(slice.id > 0)
        self.assertNotEqual(slice.site, None)
        self.assertEqual(slice.site.id, site.id)
        if not USE_FAKE_STUB:
            self.assertTrue(slice.id in site.slices_ids)
            self.assertTrue(slice.id in slice.site.slices_ids)

        site2 = orm.Site(name="mysite2")
        site2.save()
        slice.name = "mysite2_foo"
        slice.site = site2
        slice.site = site
        slice.site = site2
        slice.site = site
        slice.site = site2
        slice.save()
        self.assertNotEqual(slice.site, None)
        self.assertEqual(slice.site.id, site2.id)
        if not USE_FAKE_STUB:
            self.assertTrue(slice.id not in site.slices_ids)
            self.assertTrue(slice.id in site2.slices_ids)
            self.assertTrue(slice.id in slice.site.slices_ids)
Exemplo n.º 2
0
 def test_objects_all(self):
     orm = self.make_coreapi()
     orig_len_sites = len(orm.Site.objects.all())
     site = orm.Site(name="mysite")
     site.save()
     sites = orm.Site.objects.all()
     self.assertEqual(len(sites), orig_len_sites + 1)
Exemplo n.º 3
0
    def test_ORMWrapper_existing_diff(self):
        orm = self.make_coreapi()
        site = orm.Site(name="mysite", login_base="foo")
        site.save()
        site = orm.Site.objects.first()

        self.assertEqual(site.is_new, False)
        self.assertEqual(site._dict, {
            "id": 1,
            "name": "mysite",
            "login_base": "foo"
        })
        self.assertEqual(site.diff, {})
        self.assertEqual(site.changed_fields, [])
        self.assertEqual(site.has_field_changed("name"), False)
        self.assertEqual(site.has_field_changed("login_base"), False)

        site.login_base = "bar"

        self.assertEqual(site._dict, {
            "id": 1,
            "login_base": "bar",
            "name": "mysite"
        })
        self.assertEqual(site.diff, {"login_base": ("foo", "bar")})
        self.assertIn("login_base", site.changed_fields)
        self.assertEqual(site.has_field_changed("name"), False)
        self.assertEqual(site.has_field_changed("login_base"), True)
Exemplo n.º 4
0
 def test_foreign_key_set_null(self):
     orm = self.make_coreapi()
     site = orm.Site(name="mysite")
     site.save()
     self.assertTrue(site.id > 0)
     user = orm.User(email="fake_" + ''.join(
         random.choice(string.ascii_uppercase + string.digits)
         for _ in range(10)),
                     site_id=site.id)
     user.save()
     self.assertTrue(user.id > 0)
     service = orm.Service(name="myservice")
     service.save()
     self.assertTrue(service.id > 0)
     # start out slice.service is non-None
     slice = orm.Slice(name="mysite_foo",
                       site=site,
                       service=service,
                       creator_id=user.id)
     slice.save()
     slice.invalidate_cache()
     self.assertTrue(slice.id > 0)
     self.assertNotEqual(slice.service, None)
     self.assertEqual(slice.service.id, service.id)
     # now set it to None
     slice.service = None
     slice.save()
     slice.invalidate_cache()
     self.assertEqual(slice.service, None)
Exemplo n.º 5
0
    def test_save_existing(self):
        orm = self.make_coreapi()
        orig_len_sites = len(orm.Site.objects.all())
        site = orm.Site(name="mysite")
        site.save()
        self.assertTrue(site.id > 0)

        # there should be one new site
        self.assertEqual(len(orm.Site.objects.all()), orig_len_sites + 1)

        # retrieve the site, and update it
        created_site_id = site.id
        site = orm.Site.objects.get(id=created_site_id)
        site.name = "mysitetwo"
        site.save()

        # the site_id should not have changed
        self.assertEqual(site.id, created_site_id)

        # there should still be only one new site
        self.assertEqual(len(orm.Site.objects.all()), orig_len_sites + 1)

        # the name should have changed
        self.assertEqual(
            orm.Site.objects.get(id=created_site_id).name, "mysitetwo")
Exemplo n.º 6
0
 def test_get(self):
     orm = self.make_coreapi()
     site = orm.Site(name="mysite")
     site.save()
     self.assertTrue(site.id > 0)
     got_site = orm.Site.objects.get(id=site.id)
     self.assertNotEqual(got_site, None)
     self.assertEqual(got_site.id, site.id)
Exemplo n.º 7
0
    def test_service_get_composable_networks(self):
        orm = self.make_coreapi()
        deployment = orm.Deployment(name="test_deployment")
        deployment.save()
        controller = orm.Controller(name="test_controller",
                                    deployment_id=deployment.id)
        controller.save()
        site = orm.Site(name="testsite")
        site.save()
        user = orm.User(
            email="fake_" + "".join(
                random.choice(string.ascii_uppercase + string.digits)
                for _ in range(10)),
            site_id=site.id,
        )
        user.save()
        vsg_access_template = orm.NetworkTemplate(name="vsg_access",
                                                  vtn_kind="VSG")
        vsg_access_template.save()
        service_one = orm.Service(name="service_one")
        service_one.save()
        slice_one = orm.Slice(
            name="testsite_sliceone",
            service_id=service_one.id,
            site_id=site.id,
            creator_id=user.id,
            network="noauto",
        )
        slice_one.save()
        network_one = orm.Network(
            name="testsite_sliceone_access",
            owner_id=slice_one.id,
            template_id=vsg_access_template.id,
        )
        network_one.save()
        ns = orm.NetworkSlice(slice_id=slice_one.id, network_id=network_one.id)
        ns.save()
        cn_one = orm.ControllerNetwork(network_id=network_one.id,
                                       controller_id=controller.id)
        cn_one.save()

        if USE_FAKE_STUB:
            # fake_Stub doesn't handle reverse foreign keys
            service_one.slices_ids = [slice_one.id]
            slice_one.networks_ids = [network_one.id]
            network_one.controllernetworks_ids = [cn_one.id]

        # make sure we're using a fresh copy of the object, with all its foreign keys filled in
        service_one = orm.Service.objects.get(id=service_one.id)

        cns = service_one.get_composable_networks()
        self.assertEqual(len(cns), 1)
        self.assertEqual(cns[0].id, network_one.id)
Exemplo n.º 8
0
    def test_foreign_key_reset(self):
        orm = self.make_coreapi()
        site = orm.Site(name="mysite")
        site.save()
        self.assertTrue(site.id > 0)
        user = orm.User(
            email="fake_" + "".join(
                random.choice(string.ascii_uppercase + string.digits)
                for _ in range(10)),
            site_id=site.id,
        )
        user.save()
        self.assertTrue(user.id > 0)
        slice = orm.Slice(name="mysite_foo", site=site, creator_id=user.id)
        slice.save()
        self.assertTrue(slice.id > 0)
        self.assertNotEqual(slice.site, None)
        self.assertEqual(slice.site.id, site.id)
        if not USE_FAKE_STUB:
            self.assertTrue(slice.id in site.slices_ids)
            self.assertTrue(slice.id in slice.site.slices_ids)

        site2 = orm.Site(name="mysite2")
        site2.save()
        slice.name = "mysite2_foo"
        slice.site = site2
        slice.save()
        self.assertNotEqual(slice.site, None)
        self.assertEqual(slice.site.id, site2.id)
        if not USE_FAKE_STUB:
            self.assertTrue(slice.id not in site.slices_ids)
            self.assertTrue(slice.id in site2.slices_ids)
            self.assertTrue(slice.id in slice.site.slices_ids)
            ids_from_models1 = [x.id for x in site.slices.all()]
            self.assertTrue(slice.id not in ids_from_models1)
            ids_from_models2 = [x.id for x in site2.slices.all()]
            self.assertTrue(slice.id in ids_from_models2)
Exemplo n.º 9
0
    def test_ORMWrapper_diff_after_save(self):
        orm = self.make_coreapi()
        site = orm.Site(name="mysite", login_base="foo")
        site.save()
        site = orm.Site.objects.first()

        self.assertEqual(site.diff, {})

        site.login_base = "bar"

        self.assertEqual(site.diff, {"login_base": ("foo", "bar")})

        site.save()

        self.assertEqual(site.diff, {})
Exemplo n.º 10
0
 def test_generic_foreign_key_set(self):
     orm = self.make_coreapi()
     service = orm.Service(name="myservice")
     service.save()
     site = orm.Site(name="mysite")
     site.save()
     self.assertTrue(site.id > 0)
     tag = orm.Tag(service=service, name="mytag", value="somevalue")
     tag.content_object = site
     tag.invalidate_cache()
     self.assertEqual(tag.content_type, site.self_content_type_id)
     self.assertEqual(tag.object_id, site.id)
     tag.save()
     self.assertTrue(tag.id > 0)
     self.assertNotEqual(tag.content_object, None)
     self.assertEqual(tag.content_object.id, site.id)
Exemplo n.º 11
0
 def test_generic_foreign_key_get_decl(self):
     orm = self.make_coreapi()
     service = orm.Service(name="myservice")
     service.save()
     site = orm.Site(name="mysite")
     site.save()
     self.assertTrue(site.id > 0)
     tag = orm.Tag(
         service=service,
         name="mytag",
         value="somevalue",
         content_type=site.self_content_type_id + "_decl",
         object_id=site.id,
     )
     tag.save()
     self.assertTrue(tag.id > 0)
     self.assertNotEqual(tag.content_object, None)
     self.assertEqual(tag.content_object.id, site.id)
Exemplo n.º 12
0
 def test_foreign_key_get(self):
     orm = self.make_coreapi()
     site = orm.Site(name="mysite")
     site.save()
     self.assertTrue(site.id > 0)
     user = orm.User(email="fake_" + ''.join(
         random.choice(string.ascii_uppercase + string.digits)
         for _ in range(10)),
                     site_id=site.id)
     user.save()
     self.assertTrue(user.id > 0)
     slice = orm.Slice(name="mysite_foo",
                       site_id=site.id,
                       creator_id=user.id)
     slice.save()
     self.assertTrue(slice.id > 0)
     self.assertNotEqual(slice.site, None)
     self.assertEqual(slice.site.id, site.id)
Exemplo n.º 13
0
 def test_generic_foreign_key_get_bad_id(self):
     orm = self.make_coreapi()
     service = orm.Service(name="myservice")
     service.save()
     site = orm.Site(name="mysite")
     site.save()
     self.assertTrue(site.id > 0)
     tag = orm.Tag(
         service=service,
         name="mytag",
         value="somevalue",
         content_type=site.self_content_type_id,
         object_id=4567,
     )
     tag.save()
     self.assertTrue(tag.id > 0)
     with self.assertRaises(Exception) as e:
         self.assertEqual(e.exception.message,
                          "Object 4567 of model Site was not found")
Exemplo n.º 14
0
    def test_ORMWrapper_new_diff(self):
        orm = self.make_coreapi()
        site = orm.Site(name="mysite")

        self.assertEqual(site.is_new, True)
        self.assertEqual(site._dict, {"name": "mysite"})
        self.assertEqual(site.diff, {})
        self.assertEqual(site.changed_fields, ["name"])
        self.assertEqual(site.has_field_changed("name"), False)
        self.assertEqual(site.has_field_changed("login_base"), False)

        site.login_base = "bar"

        self.assertEqual(site._dict, {"login_base": "bar", "name": "mysite"})
        self.assertEqual(site.diff, {"login_base": (None, "bar")})
        self.assertIn("name", site.changed_fields)
        self.assertIn("login_base", site.changed_fields)
        self.assertEqual(site.has_field_changed("name"), False)
        self.assertEqual(site.has_field_changed("login_base"), True)
        self.assertEqual(site.get_field_diff("login_base"), (None, "bar"))
Exemplo n.º 15
0
 def test_foreign_key_set_with_invalidate(self):
     orm = self.make_coreapi()
     site = orm.Site(name="mysite")
     site.save()
     self.assertTrue(site.id > 0)
     user = orm.User(
         email="fake_" + "".join(
             random.choice(string.ascii_uppercase + string.digits)
             for _ in range(10)),
         site_id=site.id,
     )
     user.save()
     self.assertTrue(user.id > 0)
     slice = orm.Slice(name="mysite_foo", site=site, creator_id=user.id)
     slice.save()
     slice.invalidate_cache()
     self.assertTrue(slice.id > 0)
     self.assertNotEqual(slice.site, None)
     self.assertEqual(slice.site.id, site.id)
     if not USE_FAKE_STUB:
         self.assertTrue(slice.id in slice.site.slices_ids)
Exemplo n.º 16
0
    def test_service_get_service_instance_class(self):
        orm = self.make_coreapi()
        deployment = orm.Deployment(name="test_deployment")
        deployment.save()
        controller = orm.Controller(name="test_controller",
                                    deployment_id=deployment.id)
        controller.save()
        site = orm.Site(name="testsite")
        site.save()
        user = orm.User(email="fake_" + ''.join(
            random.choice(string.ascii_uppercase + string.digits)
            for _ in range(10)),
                        site_id=site.id)
        user.save()
        vsg_access_template = orm.NetworkTemplate(name="vsg_access",
                                                  vtn_kind="VSG")
        vsg_access_template.save()
        service_one = orm.Service(name="service_one")
        service_one.save()

        self.assertEqual(service_one.get_service_instance_class().model_name,
                         "ServiceInstance")
Exemplo n.º 17
0
    def test_generic_foreign_key_get_bad_contenttype(self):
        orm = self.make_coreapi()
        service = orm.Service(name="myservice")
        service.save()
        site = orm.Site(name="mysite")
        site.save()
        self.assertTrue(site.id > 0)
        tag = orm.Tag(
            service=service,
            name="mytag",
            value="somevalue",
            content_type="does_not_exist",
            object_id=site.id,
        )
        tag.save()
        self.assertTrue(tag.id > 0)
        with self.assertRaises(Exception) as e:

            self.assertEqual(
                e.exception.message,
                "Content_type does_not_exist not found in self.content_type_map",
            )
Exemplo n.º 18
0
 def test_create(self):
     orm = self.make_coreapi()
     site = orm.Site(name="mysite")
     site.save()
     self.assertTrue(site.id > 0)
Exemplo n.º 19
0
 def test_objects_first(self):
     orm = self.make_coreapi()
     site = orm.Site(name="mysite")
     site.save()
     site = orm.Site.objects.first()
     self.assertNotEqual(site, None)