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))
Esempio n. 2
0
 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
 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()
Esempio n. 5
0
    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()
Esempio n. 6
0
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()