def setUp(self): super(TestGetRunHistory, self).setUp() self.count = 5 self.datastore = factories.DatastoreFactory(workspace=self.workspace) self.global_id = helpers.to_global_id('DatastoreType', self.datastore.pk) self.runs = self.factory.create_batch(self.count, datastore=self.datastore) self.other_datastore = factories.DatastoreFactory(workspace=self.workspace) self.other_run = self.factory(datastore=self.other_datastore)
def test_valid_for_datastore(self): """It should update the custom properties. """ resource = factories.DatastoreFactory(workspace=self.workspace) globalid = helpers.to_global_id('DatastoreType', resource.pk) self.execute_success_test_case(resource, globalid)
def test_valid_with_object_permission_as_owner(self): """It should update the datastore. """ resource = factories.DatastoreFactory(workspace=self.workspace, object_permissions_enabled=True) globalid = helpers.to_global_id('DatastoreType', resource.pk) self.execute_success_test_case(resource, globalid)
def setUp(self): super(TestOmnisearch, self).setUp() self.datastore = Datastore.objects.get(id='s4N8p5g0wjiS') self.other_datastore = factories.DatastoreFactory( workspace=self.workspace) self.other_schema = factories.SchemaFactory( datastore=self.other_datastore) self.other_table = factories.TableFactory(schema=self.other_schema, name='customers')
def _setup_and_get_variables(self, **overrides): """Setup test and return variables for query. """ datastore = factories.DatastoreFactory(workspace=self.workspace, **overrides) datastore.assign_all_perms(self.group) variables = { 'datastoreId': helpers.to_global_id('DatastoreType', datastore.pk), } return datastore, variables
def test_query_when_not_authorized(self): """Outside users should not be able to access this resource. """ resource = factories.DatastoreFactory(workspace=self.workspace) globalid = helpers.to_global_id('DatastoreType', resource.pk) variables = { 'objectId': globalid, 'properties': [], } self.assertPermissionDenied(self.execute(variables=variables))
def test_encode_string_pk_model(self): """It should partially encode a Django model. """ datastore = factories.DatastoreFactory() resource = json.dumps( datastore, cls=DjangoPartialModelJsonEncoder, ) self.assertEqual( resource, "{\"pk\": \"%s\", \"type\": \"Datastore\"}" % str(datastore.id), )
def setUp(self): super(TestGetRunHistoryWithError, self).setUp() self.datastore = factories.DatastoreFactory(workspace=self.workspace) self.global_id = helpers.to_global_id('DatastoreType', self.datastore.pk) self.run1 = self.factory(datastore=self.datastore) self.run2 = self.factory(datastore=self.datastore) self.error = self.run1.errors.create( task_id=None, task_fcn='test_function', exc_type='FakeExceptionClass', exc_message='This is an error message.', exc_stacktrace='This is a error message, but with the whole trace.' )
def _setup_and_get_variables(self, **overrides): """Setup test and return variables for query. """ datastore = factories.DatastoreFactory(workspace=self.workspace, **overrides) schema = factories.SchemaFactory(workspace=self.workspace, datastore=datastore) table = self.factory(workspace=self.workspace, schema=schema) variables = { 'datastoreId': helpers.to_global_id('DatastoreType', datastore.pk), 'schemaName': schema.name, 'tableName': table.name, } return datastore, variables
def setUp(cls): super().setUp() cls.datastore = factories.DatastoreFactory(workspace=cls.workspace) cls.global_id = helpers.to_global_id('DatastoreType', cls.datastore.pk) cls.group = factories.GroupFactory(workspace_id=cls.workspace.id) cls.attributes = { 'content_type': cls.datastore.content_type, 'workspace': cls.workspace, } cls.customfields = [ factories.CustomFieldFactory( field_name='Steward', field_type=models.CustomField.USER, validators={}, **cls.attributes, ), factories.CustomFieldFactory( field_name='Product Area', field_type=models.CustomField.TEXT, validators={}, **cls.attributes, ), factories.CustomFieldFactory( field_name='Department', field_type=models.CustomField.ENUM, validators={ 'choices': ['Data Engineering', 'Product', 'Design'] }, **cls.attributes, ), factories.CustomFieldFactory( field_name='Team', field_type=models.CustomField.GROUP, **cls.attributes, ), ] cls.datastore.custom_properties = { cls.customfields[0].pk: cls.user.pk, cls.customfields[2].pk: 'Design', cls.customfields[3].pk: cls.group.pk, } cls.datastore.save()
def test_valid_with_object_permission_as_member(self): """It should update the datastore. """ resource = factories.DatastoreFactory(workspace=self.workspace, object_permissions_enabled=True) globalid = helpers.to_global_id('DatastoreType', resource.pk) permissions = [ 'definitions.change_datastore_settings', 'definitions.comment_on_datastore', 'definitions.change_datastore_metadata', ] for permission in permissions: resource.assign_perm(self.user, permission) self.execute_success_test_case(resource, globalid)
def test_initial_revisioner_run(self): """It should be able to commit the initial run to the metastore. """ datastore = factories.DatastoreFactory(engine='redshift', **self.get_connection()) run = datastore.run_history.create( workspace_id=datastore.workspace_id, started_at=timezone.now(), ) coretasks.start_revisioner_run(run.id) run.refresh_from_db() self.assertTrue(run.finished_at is not None) self.assertEqual(run.errors.count(), 0) self.assertEqual(datastore.schemas.count(), self.schema_count)
def setUpTestData(cls): cls.current_user = factories.UserFactory() cls.workspace = factories.WorkspaceFactory(creator=cls.current_user) cls.workspace.grant_membership(cls.current_user, auth.Membership.OWNER) cls.group = factories.GroupFactory(workspace_id=cls.workspace.id) cls.datastore = factories.DatastoreFactory(workspace=cls.workspace) cls.attributes = { 'content_type': cls.datastore.content_type, 'workspace': cls.workspace, } cls.customfields = [ factories.CustomFieldFactory( field_name='Steward', field_type=models.CustomField.USER, validators={}, **cls.attributes, ), factories.CustomFieldFactory( field_name='Product Area', field_type=models.CustomField.TEXT, validators={}, **cls.attributes, ), factories.CustomFieldFactory( field_name='Department', field_type=models.CustomField.ENUM, validators={ 'choices': ['Data Engineering', 'Product', 'Design'] }, **cls.attributes, ), factories.CustomFieldFactory( field_name='Team', field_type=models.CustomField.GROUP, **cls.attributes, ), ] cls.request = collections.namedtuple( 'Request', ['user', 'workspace'], )(user=cls.current_user, workspace=cls.workspace)
def test_invalid_with_object_permission_as_readonly(self): """It should return a "Permission Denied" error. """ resource = factories.DatastoreFactory(workspace=self.workspace, object_permissions_enabled=True) globalid = helpers.to_global_id('DatastoreType', resource.pk) variables = { 'objectId': globalid, 'properties': [], } permissions = [ 'definitions.comment_on_datastore', 'definitions.change_datastore_metadata', ] for permission in permissions: resource.assign_perm(self.user, permission) self.assertPermissionDenied(self.execute(variables=variables))
def test_initial_revisioner_run(self): """It should be able to commit the initial run to the metastore. """ datastore = factories.DatastoreFactory(engine='sqlserver', **self.get_connection()) run = datastore.run_history.create( workspace_id=datastore.workspace_id, started_at=timezone.now(), ) coretasks.start_revisioner_run(run.id) run.refresh_from_db() self.assertTrue(run.finished_at is not None) self.assertEqual(run.errors.count(), 0) self.assertEqual(datastore.schemas.count(), self.schema_count) column = models.Column.objects.get(name='emp_no', table__name='employees') self.assertEqual(column.db_comment, 'The employee identification number')
def test_initial_revisioner_run(self): """It should be able to commit the initial run to the metastore. """ datastore = factories.DatastoreFactory(engine='hive', **self.get_connection()) run = datastore.run_history.create( workspace_id=datastore.workspace_id, started_at=timezone.now(), ) coretasks.start_revisioner_run(run.id) run.refresh_from_db() self.assertTrue(run.finished_at is not None) self.assertEqual(run.errors.count(), 0) self.assertEqual(datastore.schemas.count(), self.schema_count) column = models.Column.objects.get(name='c_birth_country', table__name='customer', table__schema__name='tpcds') self.assertEqual(column.db_comment, 'The country where they were born')