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_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)
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)
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_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")
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)
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_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)
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, {})
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)
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)
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_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")
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"))
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)
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")
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", )
def test_create(self): orm = self.make_coreapi() site = orm.Site(name="mysite") site.save() self.assertTrue(site.id > 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)