def setUp(self): self.connection = Connection(username, password, debug=0) #drop all the test projects: delete_projects_by_name(self.connection, TEST_PROJECT_NAME) # you can delete here multiple directories from webdav for dir_name in (): self.connection.delete_webdav_dir(dir_name)
class TestProject(unittest.TestCase): def setUp(self): self.connection = Connection(username, password, debug=0) #drop all the test projects: delete_projects_by_name(self.connection, TEST_PROJECT_NAME) # you can delete here multiple directories from webdav for dir_name in (): self.connection.delete_webdav_dir(dir_name) 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_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 test_login(self): if username == '' or password == '': raise AttributeError, 'Please provide your username and password to your GoodData account (into creadentials.py)' self.assertRaises(AuthenticationError, Connection, '', '') connection = Connection(username, password) self.assertEquals('', connection.request('/gdc/account/token').read()) self.assert_(connection.webdav.request('/uploads')) # you can delete here multiple directories from webdav for dir_name in (): connection.webdav.delete(dir_name)
def test_upload(self): example = examples.examples[0][0] connection = Connection(username, password, debug=0) dir_name = connection.webdav.upload(example.data_csv, example.sli_manifest) self.assert_(len(dir_name) > 0) self.assert_(connection.webdav.request('/uploads/%s' % dir_name)) uploaded_file = connection.webdav.request('/uploads/%s/upload.zip' % dir_name) tmp_file = write_tmp_file(uploaded_file.read()) zip_file = ZipFile(tmp_file, "r") self.assertEquals(None, zip_file.testzip()) self.assertEquals(zip_file.namelist(), ['data.csv', 'upload_info.json']) zip_file.close() os.remove(tmp_file)
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()