gooddata 0.6.54 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.document +0 -0
- data/.editorconfig +0 -0
- data/.travis.yml +9 -0
- data/.yardopts +0 -0
- data/CHANGELOG.md +7 -0
- data/CLI.md +0 -0
- data/Gemfile +0 -0
- data/Guardfile +0 -0
- data/LICENSE +0 -0
- data/LICENSE.rb +0 -0
- data/TODO.md +0 -0
- data/dependency_decisions.yml +0 -0
- data/gooddata.gemspec +1 -1
- data/lib/gooddata/app/app.rb +0 -0
- data/lib/gooddata/bricks/brick.rb +0 -0
- data/lib/gooddata/bricks/bricks.rb +0 -0
- data/lib/gooddata/bricks/middleware/base_middleware.rb +0 -0
- data/lib/gooddata/bricks/middleware/bench_middleware.rb +0 -0
- data/lib/gooddata/bricks/middleware/bulk_salesforce_middleware.rb +0 -0
- data/lib/gooddata/bricks/middleware/decode_params_middleware.rb +0 -0
- data/lib/gooddata/bricks/middleware/fs_download_middleware.rb +0 -0
- data/lib/gooddata/bricks/middleware/fs_upload_middleware.rb +0 -0
- data/lib/gooddata/bricks/middleware/middleware.rb +0 -0
- data/lib/gooddata/bricks/middleware/stdout_middleware.rb +0 -0
- data/lib/gooddata/bricks/middleware/twitter_middleware.rb +0 -0
- data/lib/gooddata/bricks/middleware/undot_params_middleware.rb +0 -0
- data/lib/gooddata/bricks/pipeline.rb +0 -0
- data/lib/gooddata/bricks/utils.rb +0 -0
- data/lib/gooddata/cli/cli.rb +0 -0
- data/lib/gooddata/cli/commands/auth_cmd.rb +0 -0
- data/lib/gooddata/cli/commands/domain_cmd.rb +0 -0
- data/lib/gooddata/cli/commands/project_cmd.rb +0 -0
- data/lib/gooddata/cli/hooks.rb +0 -0
- data/lib/gooddata/cli/shared.rb +0 -0
- data/lib/gooddata/cli/terminal.rb +0 -0
- data/lib/gooddata/commands/api.rb +0 -0
- data/lib/gooddata/commands/auth.rb +0 -0
- data/lib/gooddata/commands/base.rb +0 -0
- data/lib/gooddata/commands/commands.rb +0 -0
- data/lib/gooddata/commands/datasets.rb +0 -0
- data/lib/gooddata/commands/datawarehouse.rb +0 -0
- data/lib/gooddata/commands/domain.rb +0 -0
- data/lib/gooddata/commands/process.rb +0 -0
- data/lib/gooddata/commands/project.rb +0 -0
- data/lib/gooddata/commands/projects.rb +0 -0
- data/lib/gooddata/commands/role.rb +0 -0
- data/lib/gooddata/commands/runners.rb +0 -0
- data/lib/gooddata/commands/scaffold.rb +0 -0
- data/lib/gooddata/commands/user.rb +0 -0
- data/lib/gooddata/connection.rb +0 -0
- data/lib/gooddata/core/core.rb +0 -0
- data/lib/gooddata/core/logging.rb +0 -0
- data/lib/gooddata/core/nil_logger.rb +0 -0
- data/lib/gooddata/core/project.rb +0 -0
- data/lib/gooddata/core/rest.rb +0 -0
- data/lib/gooddata/core/user.rb +0 -0
- data/lib/gooddata/data/data.rb +0 -0
- data/lib/gooddata/data/guesser.rb +0 -0
- data/lib/gooddata/exceptions/attr_element_not_found.rb +0 -0
- data/lib/gooddata/exceptions/command_failed.rb +0 -0
- data/lib/gooddata/exceptions/exceptions.rb +0 -0
- data/lib/gooddata/exceptions/execution_limit_exceeded.rb +0 -0
- data/lib/gooddata/exceptions/export_clone.rb +0 -0
- data/lib/gooddata/exceptions/filter_maqlization.rb +0 -0
- data/lib/gooddata/exceptions/import_clone.rb +0 -0
- data/lib/gooddata/exceptions/malformed_user.rb +0 -0
- data/lib/gooddata/exceptions/maql_execution.rb +0 -0
- data/lib/gooddata/exceptions/object_migration.rb +0 -0
- data/lib/gooddata/exceptions/project_not_found.rb +0 -0
- data/lib/gooddata/exceptions/segment_not_empty.rb +0 -0
- data/lib/gooddata/exceptions/uncomputable_report.rb +0 -0
- data/lib/gooddata/exceptions/user_in_different_domain.rb +0 -0
- data/lib/gooddata/exceptions/validation_error.rb +0 -0
- data/lib/gooddata/extensions/big_decimal.rb +0 -0
- data/lib/gooddata/extensions/class.rb +0 -0
- data/lib/gooddata/extensions/extensions.rb +0 -0
- data/lib/gooddata/extensions/false.rb +0 -0
- data/lib/gooddata/extensions/hash.rb +0 -0
- data/lib/gooddata/extensions/integer.rb +0 -0
- data/lib/gooddata/extensions/nil.rb +0 -0
- data/lib/gooddata/extensions/numeric.rb +0 -0
- data/lib/gooddata/extensions/object.rb +0 -0
- data/lib/gooddata/extensions/string.rb +0 -0
- data/lib/gooddata/extensions/symbol.rb +0 -0
- data/lib/gooddata/extensions/true.rb +0 -0
- data/lib/gooddata/extract.rb +0 -0
- data/lib/gooddata/goodzilla/goodzilla.rb +0 -0
- data/lib/gooddata/helpers/auth_helpers.rb +0 -0
- data/lib/gooddata/helpers/csv_helper.rb +0 -0
- data/lib/gooddata/helpers/erb_helper.rb +0 -0
- data/lib/gooddata/helpers/global_helpers.rb +0 -0
- data/lib/gooddata/helpers/helpers.rb +0 -0
- data/lib/gooddata/lcm/actions/actions.rb +0 -0
- data/lib/gooddata/lcm/actions/base_action.rb +0 -0
- data/lib/gooddata/lcm/actions/collect_data_product.rb +4 -9
- data/lib/gooddata/lcm/actions/collect_segments.rb +2 -1
- data/lib/gooddata/lcm/actions/collect_users_brick_users.rb +46 -0
- data/lib/gooddata/lcm/actions/synchronize_user_filters.rb +8 -22
- data/lib/gooddata/lcm/actions/synchronize_users.rb +17 -5
- data/lib/gooddata/lcm/data/create_lcm_release.sql.erb +0 -0
- data/lib/gooddata/lcm/data/insert_into_lcm_release.sql.erb +0 -0
- data/lib/gooddata/lcm/data/select_from_lcm_release.sql.erb +0 -0
- data/lib/gooddata/lcm/data/update_lcm_release.sql.erb +0 -0
- data/lib/gooddata/lcm/dsl/dsl.rb +0 -0
- data/lib/gooddata/lcm/dsl/params_dsl.rb +0 -0
- data/lib/gooddata/lcm/helpers/helpers.rb +0 -0
- data/lib/gooddata/lcm/lcm2.rb +2 -0
- data/lib/gooddata/lcm/types/base_type.rb +0 -0
- data/lib/gooddata/lcm/types/class/ads_client.rb +0 -0
- data/lib/gooddata/lcm/types/class/class.rb +0 -0
- data/lib/gooddata/lcm/types/class/gd_client.rb +0 -0
- data/lib/gooddata/lcm/types/class/types.rb +0 -0
- data/lib/gooddata/lcm/types/complex/complex.rb +0 -0
- data/lib/gooddata/lcm/types/complex/release_query.rb +0 -0
- data/lib/gooddata/lcm/types/complex/tokens.rb +0 -0
- data/lib/gooddata/lcm/types/complex/types.rb +0 -0
- data/lib/gooddata/lcm/types/complex/users_brick_config.rb +32 -0
- data/lib/gooddata/lcm/types/param.rb +0 -0
- data/lib/gooddata/lcm/types/scalar/bool.rb +0 -0
- data/lib/gooddata/lcm/types/scalar/hash.rb +0 -0
- data/lib/gooddata/lcm/types/scalar/integer.rb +0 -0
- data/lib/gooddata/lcm/types/scalar/object.rb +0 -0
- data/lib/gooddata/lcm/types/scalar/string.rb +0 -0
- data/lib/gooddata/lcm/types/scalar/types.rb +0 -0
- data/lib/gooddata/lcm/types/special/types.rb +0 -0
- data/lib/gooddata/lcm/types/types.rb +0 -0
- data/lib/gooddata/lcm/user_bricks_helper.rb +32 -0
- data/lib/gooddata/mixins/author.rb +0 -0
- data/lib/gooddata/mixins/content_getter.rb +0 -0
- data/lib/gooddata/mixins/content_property_reader.rb +0 -0
- data/lib/gooddata/mixins/content_property_writer.rb +0 -0
- data/lib/gooddata/mixins/contributor.rb +0 -0
- data/lib/gooddata/mixins/data_getter.rb +0 -0
- data/lib/gooddata/mixins/data_property_reader.rb +0 -0
- data/lib/gooddata/mixins/data_property_writer.rb +0 -0
- data/lib/gooddata/mixins/inspector.rb +0 -0
- data/lib/gooddata/mixins/is_attribute.rb +0 -0
- data/lib/gooddata/mixins/is_dimension.rb +0 -0
- data/lib/gooddata/mixins/is_fact.rb +0 -0
- data/lib/gooddata/mixins/is_folder.rb +0 -0
- data/lib/gooddata/mixins/is_label.rb +0 -0
- data/lib/gooddata/mixins/links.rb +0 -0
- data/lib/gooddata/mixins/md_grantees.rb +0 -0
- data/lib/gooddata/mixins/md_lock.rb +0 -0
- data/lib/gooddata/mixins/md_object_id.rb +0 -0
- data/lib/gooddata/mixins/md_relations.rb +0 -0
- data/lib/gooddata/mixins/meta_getter.rb +0 -0
- data/lib/gooddata/mixins/meta_property_reader.rb +0 -0
- data/lib/gooddata/mixins/meta_property_writer.rb +0 -0
- data/lib/gooddata/mixins/mixins.rb +0 -0
- data/lib/gooddata/mixins/not_attribute.rb +0 -0
- data/lib/gooddata/mixins/not_exportable.rb +0 -0
- data/lib/gooddata/mixins/not_fact.rb +0 -0
- data/lib/gooddata/mixins/not_group.rb +0 -0
- data/lib/gooddata/mixins/not_label.rb +0 -0
- data/lib/gooddata/mixins/not_metric.rb +0 -0
- data/lib/gooddata/mixins/obj_id.rb +0 -0
- data/lib/gooddata/mixins/rest_getters.rb +0 -0
- data/lib/gooddata/mixins/rest_resource.rb +0 -0
- data/lib/gooddata/mixins/root_key_getter.rb +0 -0
- data/lib/gooddata/mixins/root_key_setter.rb +0 -0
- data/lib/gooddata/mixins/timestamps.rb +0 -0
- data/lib/gooddata/mixins/to_json.rb +0 -0
- data/lib/gooddata/mixins/uri_getter.rb +0 -0
- data/lib/gooddata/models/ads_output_stage.rb +0 -0
- data/lib/gooddata/models/automated_data_distribution.rb +0 -0
- data/lib/gooddata/models/blueprint/anchor_field.rb +0 -0
- data/lib/gooddata/models/blueprint/attribute_field.rb +0 -0
- data/lib/gooddata/models/blueprint/blueprint.rb +0 -0
- data/lib/gooddata/models/blueprint/blueprint_field.rb +0 -0
- data/lib/gooddata/models/blueprint/dashboard_builder.rb +0 -0
- data/lib/gooddata/models/blueprint/dataset_blueprint.rb +0 -0
- data/lib/gooddata/models/blueprint/fact_field.rb +0 -0
- data/lib/gooddata/models/blueprint/label_field.rb +0 -0
- data/lib/gooddata/models/blueprint/reference_field.rb +0 -0
- data/lib/gooddata/models/blueprint/schema_blueprint.rb +0 -0
- data/lib/gooddata/models/blueprint/schema_builder.rb +0 -0
- data/lib/gooddata/models/blueprint/to_manifest.rb +0 -0
- data/lib/gooddata/models/channel_configuration.rb +0 -0
- data/lib/gooddata/models/client_synchronization_result.rb +0 -0
- data/lib/gooddata/models/client_synchronization_result_details.rb +0 -0
- data/lib/gooddata/models/datawarehouse.rb +0 -0
- data/lib/gooddata/models/execution.rb +0 -0
- data/lib/gooddata/models/execution_detail.rb +0 -0
- data/lib/gooddata/models/invitation.rb +0 -0
- data/lib/gooddata/models/links.rb +0 -0
- data/lib/gooddata/models/metadata/dashboard/dashboard_item.rb +0 -0
- data/lib/gooddata/models/metadata/dashboard/filter_apply_item.rb +0 -0
- data/lib/gooddata/models/metadata/dashboard/filter_item.rb +0 -0
- data/lib/gooddata/models/metadata/dashboard/geo_chart_item.rb +0 -0
- data/lib/gooddata/models/metadata/dashboard/headline_item.rb +0 -0
- data/lib/gooddata/models/metadata/dashboard/iframe_item.rb +0 -0
- data/lib/gooddata/models/metadata/dashboard/report_item.rb +0 -0
- data/lib/gooddata/models/metadata/dashboard/text_item.rb +0 -0
- data/lib/gooddata/models/metadata/dashboard_tab.rb +0 -0
- data/lib/gooddata/models/metadata/label.rb +0 -0
- data/lib/gooddata/models/metadata/metadata.rb +0 -0
- data/lib/gooddata/models/metadata/report.rb +10 -0
- data/lib/gooddata/models/metadata/scheduled_mail/dashboard_attachment.rb +0 -0
- data/lib/gooddata/models/metadata/scheduled_mail/report_attachment.rb +0 -0
- data/lib/gooddata/models/models.rb +0 -0
- data/lib/gooddata/models/module_constants.rb +0 -0
- data/lib/gooddata/models/notification_rule.rb +0 -0
- data/lib/gooddata/models/project_log_formatter.rb +0 -0
- data/lib/gooddata/models/project_metadata.rb +0 -0
- data/lib/gooddata/models/tab_builder.rb +0 -0
- data/lib/gooddata/models/user_filters/mandatory_user_filter.rb +0 -0
- data/lib/gooddata/models/user_filters/user_filter_builder.rb +24 -12
- data/lib/gooddata/models/user_filters/user_filters.rb +0 -0
- data/lib/gooddata/rest/README.md +0 -0
- data/lib/gooddata/rest/connection.rb +15 -3
- data/lib/gooddata/rest/object.rb +0 -0
- data/lib/gooddata/rest/resource.rb +0 -0
- data/lib/gooddata/rest/rest.rb +0 -0
- data/lib/gooddata/version.rb +1 -1
- data/lib/templates/bricks/brick.rb.erb +0 -0
- data/lib/templates/bricks/main.rb.erb +0 -0
- data/lib/templates/project/Goodfile.erb +0 -0
- data/lib/templates/project/data/commits.csv +0 -0
- data/lib/templates/project/data/devs.csv +0 -0
- data/lib/templates/project/data/repos.csv +0 -0
- data/lib/templates/project/model/model.rb.erb +0 -0
- data/spec/.rubocop.yml +0 -0
- data/spec/bricks/bricks_spec.rb +0 -0
- data/spec/bricks/default-config.json +0 -0
- data/spec/data/.gooddata +0 -0
- data/spec/data/blueprints/additional_dataset_module.json +0 -0
- data/spec/data/blueprints/attribute_sort_order_blueprint.json +0 -0
- data/spec/data/blueprints/big_blueprint_not_pruned.json +0 -0
- data/spec/data/blueprints/m_n_model.json +0 -0
- data/spec/data/blueprints/model_module.json +0 -0
- data/spec/data/cc/data/source/commits.csv +0 -0
- data/spec/data/cc/data/source/devs.csv +0 -0
- data/spec/data/cc/data/source/repos.csv +0 -0
- data/spec/data/cc/devel.prm +0 -0
- data/spec/data/cc/graph/graph.grf +0 -0
- data/spec/data/cc/workspace.prm +0 -0
- data/spec/data/column_based_permissions.csv +0 -0
- data/spec/data/column_based_permissions2.csv +0 -0
- data/spec/data/gd_gse_data_blueprint.json +0 -0
- data/spec/data/gd_gse_data_manifest.json +0 -0
- data/spec/data/gd_gse_data_model.json +0 -0
- data/spec/data/gooddata_version_process/gooddata_version.rb +0 -0
- data/spec/data/gooddata_version_process/gooddata_version.zip +0 -0
- data/spec/data/hello_world_process/hello_world.rb +0 -0
- data/spec/data/hello_world_process/hello_world.zip +0 -0
- data/spec/data/line_based_permissions.csv +0 -0
- data/spec/data/manifests/test_blueprint.json +0 -0
- data/spec/data/manifests/test_project.json +0 -0
- data/spec/data/reports/left_attr_report.json +0 -0
- data/spec/data/reports/metric_only_one_line.json +0 -0
- data/spec/data/reports/report_1.json +0 -0
- data/spec/data/reports/top_attr_report.json +0 -0
- data/spec/data/ruby_params_process/ruby_params.rb +0 -0
- data/spec/data/ruby_process/deep_files/deep_stuff.txt +0 -0
- data/spec/data/ruby_process/process.rb +0 -0
- data/spec/data/ruby_process/stuff.txt +0 -0
- data/spec/data/superfluous_titles_view.json +0 -0
- data/spec/data/test-ci-data.csv +0 -0
- data/spec/data/users.csv +0 -0
- data/spec/data/wire_models/attribute_sort_by_model.json +0 -0
- data/spec/data/wire_models/model_view.json +0 -0
- data/spec/data/wire_models/nu_model.json +0 -0
- data/spec/data/wire_test_project.json +0 -0
- data/spec/environment/default.rb +0 -0
- data/spec/environment/environment.rb +0 -0
- data/spec/environment/production.rb +0 -0
- data/spec/helpers/blueprint_helper.rb +0 -0
- data/spec/helpers/cli_helper.rb +0 -0
- data/spec/helpers/connection_helper.rb +0 -0
- data/spec/helpers/crypto_helper.rb +0 -0
- data/spec/helpers/csv_helper.rb +0 -0
- data/spec/helpers/project_helper.rb +13 -0
- data/spec/helpers/spec_helper.rb +0 -0
- data/spec/integration/blueprint_updates_spec.rb +0 -0
- data/spec/integration/blueprint_with_grain_spec.rb +0 -0
- data/spec/integration/channel_configuration_spec.rb +0 -0
- data/spec/integration/command_projects_spec.rb +0 -0
- data/spec/integration/create_project_spec.rb +0 -0
- data/spec/integration/deprecated_load_spec.rb +0 -0
- data/spec/integration/full_project_spec.rb +3 -5
- data/spec/integration/models/metadata/report_spec.rb +54 -0
- data/spec/integration/over_to_user_filters_spec.rb +0 -0
- data/spec/integration/partial_md_export_import_spec.rb +0 -0
- data/spec/integration/rest_spec.rb +0 -0
- data/spec/integration/schedule_spec.rb +0 -0
- data/spec/integration/user_group_spec.rb +0 -0
- data/spec/logging_in_logging_out_spec.rb +0 -0
- data/spec/unit/actions/collect_data_product_spec.rb +9 -17
- data/spec/unit/actions/collect_users_brick_users_spec.rb +36 -0
- data/spec/unit/actions/shared_examples_for_user_actions.rb +17 -1
- data/spec/unit/actions/synchronize_user_filters_spec.rb +5 -1
- data/spec/unit/actions/synchronize_users_spec.rb +64 -6
- data/spec/unit/bricks/bricks_spec.rb +0 -0
- data/spec/unit/bricks/middleware/bench_middleware_spec.rb +0 -0
- data/spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb +0 -0
- data/spec/unit/bricks/middleware/gooddata_middleware_spec.rb +0 -0
- data/spec/unit/bricks/middleware/restforce_middleware_spec.rb +0 -0
- data/spec/unit/bricks/middleware/stdout_middleware_spec.rb +0 -0
- data/spec/unit/bricks/middleware/twitter_middleware_spec.rb +0 -0
- data/spec/unit/cli/cli_spec.rb +0 -0
- data/spec/unit/cli/commands/cmd_auth_spec.rb +0 -0
- data/spec/unit/core/nil_logger_spec.rb +0 -0
- data/spec/unit/extensions/hash_spec.rb +0 -0
- data/spec/unit/godzilla/goodzilla_spec.rb +0 -0
- data/spec/unit/helpers/csv_helper_spec.rb +0 -0
- data/spec/unit/lcm/user_bricks_helper_spec.rb +58 -0
- data/spec/unit/models/blueprint/attribute_sort_by_spec.rb +0 -0
- data/spec/unit/models/blueprint/attributes_spec.rb +0 -0
- data/spec/unit/models/blueprint/dataset_spec.rb +0 -0
- data/spec/unit/models/blueprint/labels_spec.rb +0 -0
- data/spec/unit/models/blueprint/reference_spec.rb +0 -0
- data/spec/unit/models/blueprint/schema_builder_spec.rb +0 -0
- data/spec/unit/models/blueprint/to_wire_spec.rb +0 -0
- data/spec/unit/models/execution_spec.rb +0 -0
- data/spec/unit/models/from_wire_spec.rb +0 -0
- data/spec/unit/models/metric_spec.rb +0 -0
- data/spec/unit/models/model_spec.rb +0 -0
- data/spec/unit/models/report_result_data_spec.rb +0 -0
- data/spec/unit/models/user_filters/user_filter_builder_spec.rb +110 -0
- data/spec/unit/models/user_filters_spec.rb +0 -0
- data/spec/unit/models/variable_spec.rb +0 -0
- data/spec/unit/rest/resource_spec.rb +0 -0
- metadata +148 -94
data/lib/gooddata/rest/object.rb
CHANGED
|
File without changes
|
|
File without changes
|
data/lib/gooddata/rest/rest.rb
CHANGED
|
File without changes
|
data/lib/gooddata/version.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/.rubocop.yml
CHANGED
|
File without changes
|
data/spec/bricks/bricks_spec.rb
CHANGED
|
File without changes
|
|
File without changes
|
data/spec/data/.gooddata
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/data/cc/devel.prm
CHANGED
|
File without changes
|
|
File without changes
|
data/spec/data/cc/workspace.prm
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/data/test-ci-data.csv
CHANGED
|
File without changes
|
data/spec/data/users.csv
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/environment/default.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/helpers/cli_helper.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/helpers/csv_helper.rb
CHANGED
|
File without changes
|
|
@@ -55,6 +55,19 @@ module GoodData
|
|
|
55
55
|
}
|
|
56
56
|
GoodData::Membership.create(opts, client: client)
|
|
57
57
|
end
|
|
58
|
+
|
|
59
|
+
def load_full_project_implementation(client)
|
|
60
|
+
spec = JSON.parse(File.read("./spec/data/blueprints/test_project_model_spec.json"), :symbolize_names => true)
|
|
61
|
+
blueprint = GoodData::Model::ProjectBlueprint.new(spec)
|
|
62
|
+
|
|
63
|
+
project = client.create_project_from_blueprint(
|
|
64
|
+
blueprint,
|
|
65
|
+
token: ConnectionHelper::GD_PROJECT_TOKEN,
|
|
66
|
+
environment: ProjectHelper::ENVIRONMENT
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
[project, blueprint, spec]
|
|
70
|
+
end
|
|
58
71
|
end
|
|
59
72
|
end
|
|
60
73
|
end
|
data/spec/helpers/spec_helper.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -5,16 +5,14 @@
|
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
7
7
|
require 'gooddata'
|
|
8
|
+
require 'tempfile'
|
|
8
9
|
|
|
9
10
|
describe "Full project implementation", :constraint => 'slow' do
|
|
10
11
|
before(:all) do
|
|
11
|
-
@spec = JSON.parse(File.read("./spec/data/blueprints/test_project_model_spec.json"), :symbolize_names => true)
|
|
12
12
|
@invalid_spec = JSON.parse(File.read("./spec/data/blueprints/invalid_blueprint.json"), :symbolize_names => true)
|
|
13
|
-
@client = ConnectionHelper.create_default_connection
|
|
14
|
-
@blueprint = GoodData::Model::ProjectBlueprint.new(@spec)
|
|
15
13
|
@invalid_blueprint = GoodData::Model::ProjectBlueprint.new(@invalid_spec)
|
|
16
|
-
|
|
17
|
-
@project
|
|
14
|
+
@client = ConnectionHelper.create_default_connection
|
|
15
|
+
@project, @blueprint, @spec = ProjectHelper.load_full_project_implementation(@client)
|
|
18
16
|
end
|
|
19
17
|
|
|
20
18
|
after(:all) do
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
#
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
|
+
# This source code is licensed under the BSD-style license found in the
|
|
5
|
+
# LICENSE file in the root directory of this source tree.
|
|
6
|
+
|
|
7
|
+
require 'gooddata'
|
|
8
|
+
|
|
9
|
+
describe GoodData::Report, :constraint => 'slow' do
|
|
10
|
+
before(:all) do
|
|
11
|
+
@client = ConnectionHelper.create_default_connection
|
|
12
|
+
@project, @blueprint = ProjectHelper.load_full_project_implementation(@client)
|
|
13
|
+
|
|
14
|
+
m = @project.facts.first.create_metric
|
|
15
|
+
metric_name = Dir::Tmpname.make_tmpname ['metric.some_metric'], nil
|
|
16
|
+
metric_name.delete!('-')
|
|
17
|
+
m.identifier = metric_name
|
|
18
|
+
m.save
|
|
19
|
+
|
|
20
|
+
test_data = [
|
|
21
|
+
%w(lines_changed committed_on dev_id repo_id),
|
|
22
|
+
[3, "05/01/2012", 1_012, 75],
|
|
23
|
+
[2, "11/10/2014", 5_432, 23],
|
|
24
|
+
[5, "01/10/2014", 45_212, 87_163],
|
|
25
|
+
[1, "12/02/2017", 753, 11]
|
|
26
|
+
]
|
|
27
|
+
@project.upload(test_data, @blueprint, 'dataset.commits')
|
|
28
|
+
|
|
29
|
+
m = @project.metrics.first
|
|
30
|
+
@report = @project.create_report(top: [m], title: 'Report to export')
|
|
31
|
+
@report.save
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
after(:all) do
|
|
35
|
+
@project.delete unless @project.nil?
|
|
36
|
+
@client.disconnect
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
describe 'raw export' do
|
|
40
|
+
before :each do
|
|
41
|
+
@filename = Dir::Tmpname.make_tmpname([File.join(Dir::Tmpname.tmpdir, 'test_raw_export'), '.csv'], nil)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
after :each do
|
|
45
|
+
File.delete(@filename)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
it "exports raw report" do
|
|
49
|
+
@report.export_raw(@filename)
|
|
50
|
+
expect(File).to exist(@filename)
|
|
51
|
+
expect(File.read(@filename)).to eq("\"sum of Lines Changed\"\r\n\"11.00\"\r\n")
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -11,29 +11,28 @@ describe GoodData::LCM2::CollectDataProduct do
|
|
|
11
11
|
|
|
12
12
|
let(:client) { double(:client) }
|
|
13
13
|
let(:domain) { double(:domain) }
|
|
14
|
-
let(:data_product) { GoodData::DataProduct.new({}) }
|
|
15
14
|
let(:gdc_logger) { double(:gdc_logger) }
|
|
15
|
+
let(:data_product) { GoodData::DataProduct.new({}) }
|
|
16
16
|
|
|
17
17
|
before do
|
|
18
18
|
allow(client).to receive(:domain) { domain }
|
|
19
|
-
allow(gdc_logger).to receive(:info)
|
|
19
|
+
allow(gdc_logger).to receive(:info)
|
|
20
|
+
allow(domain).to receive(:data_products) { data_product }
|
|
20
21
|
end
|
|
21
22
|
|
|
22
23
|
context 'when data_product parameter is passed' do
|
|
24
|
+
let(:data_product_id) { 'data-product' }
|
|
23
25
|
let(:params) do
|
|
24
26
|
params = {
|
|
25
27
|
gdc_gd_client: client,
|
|
26
28
|
gdc_logger: gdc_logger,
|
|
27
|
-
data_product:
|
|
29
|
+
data_product: data_product_id
|
|
28
30
|
}
|
|
29
31
|
GoodData::LCM2.convert_to_smart_hash(params)
|
|
30
32
|
end
|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
it 'hydrates the data_product object into params and runs the app' do
|
|
34
|
+
it 'collects the specified data_product object' do
|
|
35
|
+
expect(domain).to receive(:data_products).with(data_product_id)
|
|
37
36
|
result = subject.class.call(params)
|
|
38
37
|
expect(result[:params][:data_product]).to be_a GoodData::DataProduct
|
|
39
38
|
end
|
|
@@ -48,17 +47,10 @@ describe GoodData::LCM2::CollectDataProduct do
|
|
|
48
47
|
GoodData::LCM2.convert_to_smart_hash(params)
|
|
49
48
|
end
|
|
50
49
|
|
|
51
|
-
it
|
|
52
|
-
|
|
53
|
-
|
|
50
|
+
it "collects the 'default' data_product" do
|
|
51
|
+
expect(domain).to receive(:data_products).with('default')
|
|
54
52
|
result = subject.class.call(params)
|
|
55
53
|
expect(result[:params][:data_product]).to be_a GoodData::DataProduct
|
|
56
54
|
end
|
|
57
|
-
|
|
58
|
-
it 'fails when multiple data_products are available to fallback on' do
|
|
59
|
-
allow(domain).to receive(:data_products) { [data_product, GoodData::DataProduct.new({})] }
|
|
60
|
-
|
|
61
|
-
expect { subject.class.call(params) }.to raise_error
|
|
62
|
-
end
|
|
63
55
|
end
|
|
64
56
|
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
#
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
|
+
# This source code is licensed under the BSD-style license found in the
|
|
5
|
+
# LICENSE file in the root directory of this source tree.
|
|
6
|
+
|
|
7
|
+
describe GoodData::LCM2::CollectUsersBrickUsers do
|
|
8
|
+
let(:data_source) { double('data_source') }
|
|
9
|
+
let(:users_csv) do
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
let(:params) do
|
|
13
|
+
params = {
|
|
14
|
+
users_brick_config: {
|
|
15
|
+
input_source: {},
|
|
16
|
+
login_column: 'Email'
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
GoodData::LCM2.convert_to_smart_hash(params)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
before do
|
|
23
|
+
allow(GoodData::Helpers::DataSource).to receive(:new)
|
|
24
|
+
.and_return(data_source)
|
|
25
|
+
allow(data_source).to receive(:realize)
|
|
26
|
+
.and_return('spec/data/users.csv')
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'enriches parameters with logins' do
|
|
30
|
+
result = subject.class.call(params)
|
|
31
|
+
expect(result[:results].length).to eq(11)
|
|
32
|
+
result[:results].each do |user|
|
|
33
|
+
expect(user[:login]).not_to be_nil
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
shared_examples 'a user action' do
|
|
1
|
+
shared_examples 'a user action reading client_id' do
|
|
2
2
|
before do
|
|
3
3
|
allow(File).to receive(:open).and_return("client_id\n#{client_id}")
|
|
4
4
|
end
|
|
@@ -8,3 +8,19 @@ shared_examples 'a user action' do
|
|
|
8
8
|
subject.class.call(params)
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
|
+
|
|
12
|
+
shared_examples 'a user action filtering segments' do
|
|
13
|
+
let(:organization_not_in_segment) { double('organization') }
|
|
14
|
+
let(:project_not_in_segment) { double('project') }
|
|
15
|
+
|
|
16
|
+
before do
|
|
17
|
+
allow(organization_not_in_segment).to receive(:segment_uri).and_return('another-segment-uri')
|
|
18
|
+
allow(organization_not_in_segment).to receive(:project).and_return(project_not_in_segment)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'does operation on project only from clients in segments in segments filter' do
|
|
22
|
+
expect(project).to receive(message_for_project)
|
|
23
|
+
expect(project_not_in_segment).not_to receive(message_for_project)
|
|
24
|
+
subject.class.call(params)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -48,7 +48,7 @@ describe GoodData::LCM2::SynchronizeUserFilters do
|
|
|
48
48
|
GoodData::LCM2.convert_to_smart_hash(params)
|
|
49
49
|
end
|
|
50
50
|
|
|
51
|
-
it_behaves_like 'a user action' do
|
|
51
|
+
it_behaves_like 'a user action reading client_id' do
|
|
52
52
|
let(:client_id) { '123456789' }
|
|
53
53
|
end
|
|
54
54
|
|
|
@@ -67,6 +67,10 @@ describe GoodData::LCM2::SynchronizeUserFilters do
|
|
|
67
67
|
result = subject.class.call(params)
|
|
68
68
|
expect(result).to eq(results: [[{}]])
|
|
69
69
|
end
|
|
70
|
+
|
|
71
|
+
it_behaves_like 'a user action filtering segments' do
|
|
72
|
+
let(:message_for_project) { :add_data_permissions }
|
|
73
|
+
end
|
|
70
74
|
end
|
|
71
75
|
end
|
|
72
76
|
end
|
|
@@ -2,6 +2,13 @@ require 'active_support/core_ext/hash'
|
|
|
2
2
|
require 'gooddata/lcm/lcm2'
|
|
3
3
|
require_relative 'shared_examples_for_user_actions'
|
|
4
4
|
|
|
5
|
+
shared_examples_for 'a user synchronizer' do
|
|
6
|
+
it 'does not fail and logs a warning' do
|
|
7
|
+
expect(logger).to receive(:warn).with(/not match any client ids/)
|
|
8
|
+
expect { subject.class.call(params) }.to_not raise_error
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
5
12
|
describe GoodData::LCM2::SynchronizeUsers do
|
|
6
13
|
let(:client) { double('client') }
|
|
7
14
|
let(:user) { double('user') }
|
|
@@ -10,16 +17,16 @@ describe GoodData::LCM2::SynchronizeUsers do
|
|
|
10
17
|
let(:project) { double('project') }
|
|
11
18
|
let(:organization) { double('organization') }
|
|
12
19
|
let(:logger) { double('logger') }
|
|
20
|
+
let(:project_uri) { '/gdc/projects/123abc' }
|
|
13
21
|
|
|
14
22
|
before do
|
|
15
23
|
allow(client).to receive(:projects).and_return(project)
|
|
16
24
|
allow(client).to receive(:user).and_return(user)
|
|
17
25
|
allow(client).to receive(:domain).and_return(domain)
|
|
18
|
-
allow(
|
|
19
|
-
allow(organization).to receive(:project_uri)
|
|
26
|
+
allow(organization).to receive(:project_uri).and_return(project_uri)
|
|
20
27
|
allow(project).to receive(:import_users).and_return([{}])
|
|
21
28
|
allow(project).to receive(:metadata).and_return({})
|
|
22
|
-
allow(project).to receive(:uri)
|
|
29
|
+
allow(project).to receive(:uri).and_return(project_uri)
|
|
23
30
|
allow(project).to receive(:pid).and_return('123456789')
|
|
24
31
|
allow(data_source).to receive(:realize)
|
|
25
32
|
allow(user).to receive(:login).and_return('my_login')
|
|
@@ -29,7 +36,14 @@ describe GoodData::LCM2::SynchronizeUsers do
|
|
|
29
36
|
end
|
|
30
37
|
|
|
31
38
|
context 'when multiple_projects_column not specified' do
|
|
32
|
-
context 'when mode
|
|
39
|
+
context 'when mode is sync_one_project_based_on_custom_id' do
|
|
40
|
+
let(:client_id) { '123456789' }
|
|
41
|
+
|
|
42
|
+
before do
|
|
43
|
+
allow(domain).to receive(:clients).and_return([organization])
|
|
44
|
+
allow(organization).to receive(:id).and_return(client_id)
|
|
45
|
+
end
|
|
46
|
+
|
|
33
47
|
let(:params) do
|
|
34
48
|
params = {
|
|
35
49
|
GDC_GD_CLIENT: client,
|
|
@@ -41,8 +55,20 @@ describe GoodData::LCM2::SynchronizeUsers do
|
|
|
41
55
|
GoodData::LCM2.convert_to_smart_hash(params)
|
|
42
56
|
end
|
|
43
57
|
|
|
44
|
-
|
|
45
|
-
|
|
58
|
+
context 'when the input set is empty' do
|
|
59
|
+
before do
|
|
60
|
+
allow(File).to receive(:open).and_return("")
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it_behaves_like 'a user synchronizer'
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
context 'when the input set does not contain data for the current project' do
|
|
67
|
+
before do
|
|
68
|
+
allow(File).to receive(:open).and_return("client_id\ndifferent_from_123")
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
it_behaves_like 'a user synchronizer'
|
|
46
72
|
end
|
|
47
73
|
end
|
|
48
74
|
|
|
@@ -60,6 +86,7 @@ describe GoodData::LCM2::SynchronizeUsers do
|
|
|
60
86
|
|
|
61
87
|
before do
|
|
62
88
|
allow(File).to receive(:open).and_return("project_id\n123456789")
|
|
89
|
+
allow(domain).to receive(:clients).and_return(organization)
|
|
63
90
|
end
|
|
64
91
|
|
|
65
92
|
it 'uses project_id column' do
|
|
@@ -72,5 +99,36 @@ describe GoodData::LCM2::SynchronizeUsers do
|
|
|
72
99
|
subject.class.call(params)
|
|
73
100
|
end
|
|
74
101
|
end
|
|
102
|
+
|
|
103
|
+
context 'when using mode sync_domain_client_workspaces' do
|
|
104
|
+
let(:segment) { double('segment') }
|
|
105
|
+
let(:segment_uri) { 'segment_uri' }
|
|
106
|
+
let(:params) do
|
|
107
|
+
params = {
|
|
108
|
+
GDC_GD_CLIENT: client,
|
|
109
|
+
input_source: 'foo',
|
|
110
|
+
domain: 'bar',
|
|
111
|
+
gdc_logger: logger,
|
|
112
|
+
sync_mode: 'sync_domain_client_workspaces',
|
|
113
|
+
segments: [segment]
|
|
114
|
+
}
|
|
115
|
+
GoodData::LCM2.convert_to_smart_hash(params)
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
before do
|
|
119
|
+
allow(File).to receive(:open).and_return("client_id\n123456789")
|
|
120
|
+
allow(domain).to receive(:clients).with(:all, nil).and_return([organization, organization_not_in_segment])
|
|
121
|
+
allow(domain).to receive(:clients).with('123456789', nil).and_return(organization)
|
|
122
|
+
allow(segment).to receive(:uri).and_return(segment_uri)
|
|
123
|
+
allow(organization).to receive(:segment_uri).and_return(segment_uri)
|
|
124
|
+
allow(organization).to receive(:project).and_return(project)
|
|
125
|
+
allow(organization).to receive(:client_id).and_return('123456789')
|
|
126
|
+
allow(project).to receive(:deleted?).and_return(false)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
it_behaves_like 'a user action filtering segments' do
|
|
130
|
+
let(:message_for_project) { :import_users }
|
|
131
|
+
end
|
|
132
|
+
end
|
|
75
133
|
end
|
|
76
134
|
end
|