def test_xml_schema(self): for (example, ExampleDataset) in examples.examples: schema = parseString( example.schema_xml.replace(' ', '').replace('\n', '')) dataset = ExampleDataset(Project(None)) gen_schema = parseString(get_xml_schema(dataset)) # TODO: test for XML content (not so easily comparable) self.assertEqual(len(schema.childNodes), len(gen_schema.childNodes)) self.assertEqual( len(schema.childNodes[0].childNodes), len(gen_schema.childNodes[0].childNodes), '%s != %s' % (', '.join(n.nodeName for n in schema.childNodes[0].childNodes), ', '.join(n.nodeName for n in gen_schema.childNodes[0].childNodes))) self.assertEqual( len(schema.childNodes[0].childNodes[1].childNodes), len(gen_schema.childNodes[0].childNodes[1].childNodes), '%s != %s (%s)' % (', '.join( n.nodeName for n in schema.childNodes[0].childNodes[1].childNodes), ', '.join(n.nodeName for n in gen_schema.childNodes[0]. childNodes[1].childNodes), example))
def test_create_and_delete_project(self): project = Project(self.connection).create(TEST_PROJECT_NAME) self.assert_(project is not None) self.assert_(project.id is not None) project.delete() self.assertRaises(ProjectNotOpenedError, project.delete) self.assertRaises(ProjectNotFoundError, project.load, name=TEST_PROJECT_NAME)
def test_dataset_maql(self): for (example, ExampleDataset) in examples.examples: dataset = ExampleDataset(Project(None)) maql_generated = dataset.get_maql() diff = '\n'.join( difflib.unified_diff(maql_generated.splitlines(), example.maql.splitlines(), lineterm='')) self.assertEquals(example.maql, maql_generated, diff)
def test_create_structure(self): project = Project(self.connection).create(TEST_PROJECT_NAME) self.assertRaises(MaqlExecutionFailed, project.execute_maql, 'CREATE DATASET {dat') for (example, ExampleDataset) in examples.examples: dataset = ExampleDataset(project) self.assertRaises(DataSetNotFoundError, dataset.get_metadata, name=dataset.schema_name) dataset.create() self.assert_(dataset.get_metadata(name=dataset.schema_name)) project.delete()
def handle(self, **options): '''GoodData upload command''' use_datasets = options.get('datasets').split(',') if options.get('datasets') else None gd_classes = discover_gooddata_modules() if use_datasets: for app_cls_name in gd_classes.keys(): if app_cls_name not in use_datasets: del gd_classes[app_cls_name] connection = Connection(settings.GOODDATA_USERNAME, settings.GOODDATA_PASSWORD) projects = {} for dataset_class in gd_classes.itervalues(): if not dataset_class.project_name: raise AttributeError('project_name not defined in %s' % dataset_class) if dataset_class.project_name not in projects: projects[dataset_class.project_name] = Project(connection).load(name=dataset_class.project_name) dataset = dataset_class(projects[dataset_class.project_name]) dataset.upload()
from gooddataclient.connection import Connection from gooddataclient.project import Project from datasets.quotes import Quotes connection = Connection('email', 'password') proj_name = 'quotesFinal9242012' print '\n\n\nLoading Project: ', proj_name project = Project(connection).create(name=proj_name) project = Project(connection).load(name=proj_name) dataset = Quotes(project) dataset.upload()