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)
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)
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)
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)
def test_foreign_key_set_without_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() 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) ids_from_models = [x.id for x in slice.site.slices.all()] self.assertTrue(slice.id in ids_from_models)
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")