def test_get_dashboards_list__owner_get_all_owned_dashboards(self): # arrange username = random_str() new_role = f"role_{random_str()}" owner = self.create_user_with_roles(username, [new_role], should_create_roles=True) database = create_database_to_db() table = create_datasource_table_to_db(db_id=database.id, owners=[owner]) first_dash = create_dashboard_to_db( owners=[owner], slices=[create_slice_to_db(datasource_id=table.id)]) second_dash = create_dashboard_to_db( owners=[owner], slices=[create_slice_to_db(datasource_id=table.id)]) owned_dashboards = [first_dash, second_dash] not_owned_dashboards = [ create_dashboard_to_db( slices=[create_slice_to_db(datasource_id=table.id)], published=True) ] self.login(username) # act response = self.get_dashboards_list_response() # assert self.assert_dashboards_list_view_response(response, 2, owned_dashboards, not_owned_dashboards)
def test_get_dashboard_view__admin_can_access(self): # arrange dashboard_to_access = create_dashboard_to_db( owners=[], slices=[create_slice_to_db()], published=False) self.login("admin") # act response = self.get_dashboard_view_response(dashboard_to_access) # assert self.assert_dashboard_view_response(response, dashboard_to_access)
def _create_sample_dashboards_with_owner_access(self): username = random_str() new_role = f"role_{random_str()}" owner = self.create_user_with_roles( username, [new_role], should_create_roles=True ) database = create_database_to_db() table = create_datasource_table_to_db(db_id=database.id, owners=[owner]) first_dash = create_dashboard_to_db( owners=[owner], slices=[create_slice_to_db(datasource_id=table.id)] ) second_dash = create_dashboard_to_db( owners=[owner], slices=[create_slice_to_db(datasource_id=table.id)] ) owned_dashboards = [first_dash, second_dash] not_owned_dashboards = [ create_dashboard_to_db( slices=[create_slice_to_db(datasource_id=table.id)], published=True ) ] self.login(username) return not_owned_dashboards, owned_dashboards
def test_get_dashboards_api__admin_get_all_dashboards(self): # arrange create_dashboard_to_db( owners=[], slices=[create_slice_to_db()], published=False ) dashboard_counts = count_dashboards() self.login("admin") # act response = self.get_dashboards_api_response() # assert self.assert_dashboards_api_response(response, dashboard_counts)
def test_get_dashboard_view__owner_can_access(self): # arrange username = random_str() new_role = f"role_{random_str()}" owner = self.create_user_with_roles(username, [new_role], should_create_roles=True) dashboard_to_access = create_dashboard_to_db( owners=[owner], slices=[create_slice_to_db()], published=False) self.login(username) # act response = self.get_dashboard_view_response(dashboard_to_access) # assert self.assert_dashboard_view_response(response, dashboard_to_access)
def test_get_dashboard_view__public_user_access_with_dashboard_permission(self): # arrange dashboard_to_access = create_dashboard_to_db( published=True, slices=[create_slice_to_db()] ) grant_access_to_dashboard(dashboard_to_access, "Public") self.logout() # act response = self.get_dashboard_view_response(dashboard_to_access) # assert self.assert_dashboard_view_response(response, dashboard_to_access) # post revoke_access_to_dashboard(dashboard_to_access, "Public")
def test_get_dashboard_view__user_access_with_dashboard_permission(self): # arrange username = random_str() new_role = f"role_{random_str()}" self.create_user_with_roles(username, [new_role], should_create_roles=True) dashboard_to_access = create_dashboard_to_db( published=True, slices=[create_slice_to_db()] ) self.login(username) grant_access_to_dashboard(dashboard_to_access, new_role) # act response = self.get_dashboard_view_response(dashboard_to_access) # assert self.assert_dashboard_view_response(response, dashboard_to_access) # post revoke_access_to_dashboard(dashboard_to_access, new_role)