def test_crud(self): service = client.connect(**self.opts.kwargs) appname = "sdk-test-app" testlib.delete_app(service, appname) self.assertFalse(appname in service.apps) kwargs = { 'author': "Me", 'description': "Test app description", 'label': "SDK Test", 'manageable': False, 'template': "barebones", 'visible': True, } service.apps.create(appname, **kwargs) self.assertTrue(appname in service.apps) app = service.apps[appname] self.assertEqual(app['author'], "Me") self.assertEqual(app['label'], "SDK Test") self.assertEqual(app['manageable'], "0") self.assertEqual(app['visible'], "1") kwargs = { 'author': "SDK", 'visible': False, } app = service.apps[appname] app.update(**kwargs) app.refresh() self.assertEqual(app['author'], "SDK") self.assertEqual(app['label'], "SDK Test") self.assertEqual(app['manageable'], "0") self.assertEqual(app['visible'], "0") testlib.delete_app(service, appname) self.assertFalse(appname in service.apps)
def test_crud(self): service = client.connect(**self.opts.kwargs) # There is no way to delete a conf file via the REST API, so we # create a test app to use as the context fo the conf test and then # we cleanup by deleting the app. app_name = "sdk-test-app" # Delete any lingering test app testlib.delete_app(service, app_name) self.assertFalse(app_name in service.apps) # Create a fresh test app service.apps.create(app_name) self.assertTrue(app_name in service.apps) # Connect using the test app context kwargs = self.opts.kwargs.copy() kwargs['app'] = app_name kwargs['owner'] = "nobody" kwargs['sharing'] = "app" service = client.connect(**kwargs) conf_name = "sdk-test-conf" confs = service.confs self.assertFalse(conf_name in confs) conf = confs.create(conf_name) self.assertTrue(conf_name in confs) self.assertEqual(conf.name, conf_name) stanzas = conf.list() self.assertEqual(len(stanzas), 0) conf.create("stanza1") self.assertEqual(len(conf.list()), 1) self.assertTrue("stanza1" in conf) self.assertFalse("stanza2" in conf) self.assertFalse("stanza3" in conf) conf.create("stanza2") self.assertEqual(len(conf.list()), 2) self.assertTrue("stanza1" in conf) self.assertTrue("stanza2" in conf) self.assertFalse("stanza3" in conf) conf.create("stanza3") self.assertEqual(len(conf.list()), 3) self.assertTrue("stanza1" in conf) self.assertTrue("stanza2" in conf) self.assertTrue("stanza3" in conf) stanza1 = conf['stanza1'] self.assertFalse('key1' in stanza1.content) self.assertFalse('key2' in stanza1.content) self.assertFalse('key3' in stanza1.content) stanza1.update(key1="value1") stanza1.refresh() self.assertTrue('key1' in stanza1.content) self.assertFalse('key2' in stanza1.content) self.assertFalse('key3' in stanza1.content) self.check_content(stanza1, key1="value1") stanza1.update(key2="value2") stanza1.refresh() self.assertTrue('key1' in stanza1.content) self.assertTrue('key2' in stanza1.content) self.assertFalse('key3' in stanza1.content) self.check_content(stanza1, key1="value1", key2="value2") stanza1.update(key3=42) stanza1.refresh() self.assertTrue('key1' in stanza1.content) self.assertTrue('key2' in stanza1.content) self.assertTrue('key3' in stanza1.content) self.check_content(stanza1, key1="value1", key2="value2", key3=42) conf.delete("stanza3") self.assertEqual(len(conf.list()), 2) self.assertTrue("stanza1" in conf) self.assertTrue("stanza2" in conf) self.assertFalse("stanza3" in conf) conf.delete("stanza2") self.assertEqual(len(conf.list()), 1) self.assertTrue("stanza1" in conf) self.assertFalse("stanza2" in conf) self.assertFalse("stanza3" in conf) conf.delete("stanza1") self.assertEqual(len(conf.list()), 0) self.assertFalse("stanza1" in conf) self.assertFalse("stanza2" in conf) self.assertFalse("stanza3" in conf) # Reconnect using original context so we can cleaup the test app service = client.connect(**self.opts.kwargs) testlib.delete_app(service, app_name) self.assertFalse(app_name in service.apps)
def test_namespaces(self): kwargs = self.opts.kwargs.copy() # Verify connect with no namespace service = client.connect(**kwargs) service.apps() # Verify namespace permutations using standard app & owner args kwargs.update({ 'app': "search", 'owner': None }) service_ns = client.connect(**kwargs) service_ns.apps() kwargs.update({ 'app': "search", 'owner': "-" }) service_ns = client.connect(**kwargs) service_ns.apps() kwargs.update({ 'app': None, 'owner': "admin" }) service_ns = client.connect(**kwargs) service_ns.apps() kwargs.update({ 'app': "-", 'owner': "admin" }) service_ns = client.connect(**kwargs) service_ns.apps() kwargs.update({ 'app': "search", 'owner': "admin" }) service_ns = client.connect(**kwargs) service_ns.apps() appname = "sdk-test-app" username = "******" testlib.delete_app(service, appname) if username in service.users: service.users.delete(username) self.assertFalse(service.apps.contains(appname)) self.assertFalse(service.users.contains(username)) # App & owner dont exist, verify that the following errors kwargs.update({ 'app': appname, 'owner': username }) with self.assertRaises(HTTPError): service_ns = client.connect(**kwargs) service_ns.apps() # Validate namespace permutations with new app & user service.apps.create(appname) service.users.create(username, password="******", roles="power") kwargs.update({ 'app': appname, 'owner': None }) service_ns = client.connect(**kwargs) service_ns.apps() kwargs.update({ 'app': appname, 'owner': "-" }) service_ns = client.connect(**kwargs) service_ns.apps() kwargs.update({ 'app': None, 'owner': username }) service_ns = client.connect(**kwargs) service_ns.apps() kwargs.update({ 'app': "-", 'owner': username }) service_ns = client.connect(**kwargs) service_ns.apps() kwargs.update({ 'app': appname, 'owner': username }) service_ns = client.connect(**kwargs) service_ns.apps() # Cleanup testlib.delete_app(service, appname) service.users.delete(username) self.assertFalse(service.apps.contains(appname)) self.assertFalse(service.users.contains(username))