gooddata 0.6.49 → 0.6.50
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 +4 -4
- data/CHANGELOG.md +15 -4
- data/CLI.md +0 -4
- data/DEPENDENCIES.md +0 -8
- data/Dockerfile.jruby +19 -0
- data/Dockerfile.ruby +19 -0
- data/LICENSE +2 -2
- data/LICENSE.rb +1 -1
- data/Rakefile +1 -1
- data/gooddata.gemspec +29 -28
- data/lib/gooddata.rb +2 -1
- data/lib/gooddata/app/app.rb +1 -1
- data/lib/gooddata/bricks/base_downloader.rb +1 -1
- data/lib/gooddata/bricks/brick.rb +3 -4
- data/lib/gooddata/bricks/bricks.rb +3 -1
- data/lib/gooddata/bricks/middleware/aws_middleware.rb +6 -8
- data/lib/gooddata/bricks/middleware/base_middleware.rb +2 -1
- data/lib/gooddata/bricks/middleware/bench_middleware.rb +2 -1
- data/lib/gooddata/bricks/middleware/bulk_salesforce_middleware.rb +3 -3
- data/lib/gooddata/bricks/middleware/decode_params_middleware.rb +3 -2
- data/lib/gooddata/bricks/middleware/dwh_middleware.rb +28 -0
- data/lib/gooddata/bricks/middleware/fs_download_middleware.rb +2 -2
- data/lib/gooddata/bricks/middleware/fs_upload_middleware.rb +2 -2
- data/lib/gooddata/bricks/middleware/gooddata_middleware.rb +84 -21
- data/lib/gooddata/bricks/middleware/logger_middleware.rb +1 -1
- data/lib/gooddata/bricks/middleware/middleware.rb +1 -1
- data/lib/gooddata/bricks/middleware/params_inspect_middleware.rb +21 -0
- data/lib/gooddata/bricks/middleware/restforce_middleware.rb +26 -26
- data/lib/gooddata/bricks/middleware/stdout_middleware.rb +1 -1
- data/lib/gooddata/bricks/middleware/twitter_middleware.rb +1 -1
- data/lib/gooddata/bricks/middleware/undot_params_middleware.rb +1 -1
- data/lib/gooddata/bricks/pipeline.rb +6 -13
- data/lib/gooddata/bricks/utils.rb +3 -3
- data/lib/gooddata/cli/cli.rb +1 -1
- data/lib/gooddata/cli/commands/auth_cmd.rb +1 -1
- data/lib/gooddata/cli/commands/domain_cmd.rb +1 -1
- data/lib/gooddata/cli/commands/project_cmd.rb +1 -18
- data/lib/gooddata/cli/hooks.rb +1 -2
- data/lib/gooddata/cli/shared.rb +1 -1
- data/lib/gooddata/cli/terminal.rb +1 -1
- data/lib/gooddata/client.rb +1 -1
- data/lib/gooddata/commands/api.rb +1 -1
- data/lib/gooddata/commands/auth.rb +1 -1
- data/lib/gooddata/commands/base.rb +1 -1
- data/lib/gooddata/commands/commands.rb +1 -1
- data/lib/gooddata/commands/datasets.rb +1 -1
- data/lib/gooddata/commands/datawarehouse.rb +1 -1
- data/lib/gooddata/commands/domain.rb +1 -1
- data/lib/gooddata/commands/process.rb +1 -1
- data/lib/gooddata/commands/project.rb +2 -31
- data/lib/gooddata/commands/projects.rb +1 -1
- data/lib/gooddata/commands/role.rb +1 -1
- data/lib/gooddata/commands/runners.rb +1 -1
- data/lib/gooddata/commands/scaffold.rb +1 -1
- data/lib/gooddata/commands/user.rb +1 -1
- data/lib/gooddata/connection.rb +1 -1
- data/lib/gooddata/core/core.rb +1 -1
- data/lib/gooddata/core/logging.rb +1 -1
- data/lib/gooddata/core/nil_logger.rb +1 -1
- data/lib/gooddata/core/project.rb +1 -1
- data/lib/gooddata/core/rest.rb +1 -1
- data/lib/gooddata/core/user.rb +1 -1
- data/lib/gooddata/data/data.rb +1 -1
- data/lib/gooddata/data/guesser.rb +1 -1
- data/lib/gooddata/exceptions/attr_element_not_found.rb +1 -1
- data/lib/gooddata/exceptions/command_failed.rb +1 -1
- data/lib/gooddata/exceptions/exceptions.rb +1 -1
- data/lib/gooddata/exceptions/execution_limit_exceeded.rb +1 -1
- data/lib/gooddata/exceptions/export_clone.rb +4 -0
- data/lib/gooddata/exceptions/filter_maqlization.rb +1 -1
- data/lib/gooddata/exceptions/import_clone.rb +4 -0
- data/lib/gooddata/exceptions/malformed_user.rb +1 -1
- data/lib/gooddata/exceptions/maql_execution.rb +1 -1
- data/lib/gooddata/exceptions/no_project_error.rb +1 -1
- data/lib/gooddata/exceptions/object_migration.rb +1 -1
- data/lib/gooddata/exceptions/project_not_found.rb +1 -1
- data/lib/gooddata/exceptions/segment_not_empty.rb +1 -1
- data/lib/gooddata/exceptions/uncomputable_report.rb +1 -1
- data/lib/gooddata/exceptions/user_in_different_domain.rb +1 -1
- data/lib/gooddata/exceptions/validation_error.rb +1 -1
- data/lib/gooddata/extensions/big_decimal.rb +1 -1
- data/lib/gooddata/extensions/class.rb +11 -0
- data/lib/gooddata/extensions/enumerable.rb +1 -1
- data/lib/gooddata/extensions/extensions.rb +1 -1
- data/lib/gooddata/extensions/false.rb +9 -1
- data/lib/gooddata/extensions/hash.rb +12 -1
- data/lib/gooddata/extensions/integer.rb +5 -0
- data/lib/gooddata/extensions/nil.rb +5 -1
- data/lib/gooddata/extensions/numeric.rb +1 -1
- data/lib/gooddata/extensions/object.rb +5 -1
- data/lib/gooddata/extensions/symbol.rb +1 -1
- data/lib/gooddata/extensions/true.rb +9 -1
- data/lib/gooddata/extract.rb +1 -1
- data/lib/gooddata/goodzilla/goodzilla.rb +1 -1
- data/lib/gooddata/helpers/auth_helpers.rb +1 -1
- data/lib/gooddata/helpers/csv_helper.rb +1 -1
- data/lib/gooddata/helpers/data_helper.rb +19 -10
- data/lib/gooddata/helpers/erb_helper.rb +23 -0
- data/lib/gooddata/helpers/global_helpers.rb +5 -73
- data/lib/gooddata/helpers/global_helpers_params.rb +73 -7
- data/lib/gooddata/helpers/helpers.rb +1 -1
- data/lib/gooddata/lcm/actions/actions.rb +12 -0
- data/lib/gooddata/lcm/actions/associate_clients.rb +46 -0
- data/lib/gooddata/lcm/actions/base_action.rb +23 -0
- data/lib/gooddata/lcm/actions/collect_clients.rb +89 -0
- data/lib/gooddata/lcm/actions/collect_segment_clients.rb +103 -0
- data/lib/gooddata/lcm/actions/collect_segments.rb +59 -0
- data/lib/gooddata/lcm/actions/create_segment_masters.rb +167 -0
- data/lib/gooddata/lcm/actions/ensure_release_table.rb +56 -0
- data/lib/gooddata/lcm/actions/ensure_segments.rb +35 -0
- data/lib/gooddata/lcm/actions/ensure_technical_users_domain.rb +66 -0
- data/lib/gooddata/lcm/actions/ensure_technical_users_project.rb +68 -0
- data/lib/gooddata/lcm/actions/ensure_titles.rb +54 -0
- data/lib/gooddata/lcm/actions/hello_world.rb +44 -0
- data/lib/gooddata/lcm/actions/print_actions.rb +61 -0
- data/lib/gooddata/lcm/actions/print_modes.rb +72 -0
- data/lib/gooddata/lcm/actions/print_types.rb +55 -0
- data/lib/gooddata/lcm/actions/provision_clients.rb +80 -0
- data/lib/gooddata/lcm/actions/purge_clients.rb +78 -0
- data/lib/gooddata/lcm/actions/segments_filter.rb +50 -0
- data/lib/gooddata/lcm/actions/synchronize_attribute_drillpaths.rb +60 -0
- data/lib/gooddata/lcm/actions/synchronize_clients.rb +87 -0
- data/lib/gooddata/lcm/actions/synchronize_color_palette.rb +59 -0
- data/lib/gooddata/lcm/actions/synchronize_label_types.rb +61 -0
- data/lib/gooddata/lcm/actions/synchronize_ldm.rb +64 -0
- data/lib/gooddata/lcm/actions/synchronize_meta.rb +55 -0
- data/lib/gooddata/lcm/actions/synchronize_new_segments.rb +55 -0
- data/lib/gooddata/lcm/actions/synchronize_processes.rb +66 -0
- data/lib/gooddata/lcm/actions/synchronize_schedules.rb +81 -0
- data/lib/gooddata/lcm/actions/update_release_table.rb +80 -0
- data/lib/gooddata/lcm/data/create_lcm_release.sql.erb +5 -0
- data/lib/gooddata/lcm/data/insert_into_lcm_release.sql.erb +11 -0
- data/lib/gooddata/lcm/data/select_from_lcm_release.sql.erb +8 -0
- data/lib/gooddata/lcm/data/update_lcm_release.sql.erb +7 -0
- data/lib/gooddata/lcm/dsl/dsl.rb +50 -0
- data/lib/gooddata/lcm/dsl/params_dsl.rb +61 -0
- data/lib/gooddata/lcm/dsl/type_dsl.rb +61 -0
- data/lib/gooddata/lcm/helpers/check_helper.rb +37 -0
- data/lib/gooddata/lcm/helpers/helpers.rb +12 -0
- data/lib/gooddata/lcm/lcm.rb +161 -20
- data/lib/gooddata/lcm/lcm2.rb +260 -0
- data/lib/gooddata/lcm/types/base_type.rb +29 -0
- data/lib/gooddata/lcm/types/class/ads_client.rb +35 -0
- data/lib/gooddata/lcm/types/class/class.rb +21 -0
- data/lib/gooddata/lcm/types/class/gd_client.rb +35 -0
- data/lib/gooddata/lcm/types/class/types.rb +12 -0
- data/lib/gooddata/lcm/types/complex/complex.rb +33 -0
- data/lib/gooddata/lcm/types/complex/release_query.rb +35 -0
- data/lib/gooddata/lcm/types/complex/segment.rb +37 -0
- data/lib/gooddata/lcm/types/complex/synchronization_info.rb +32 -0
- data/lib/gooddata/lcm/types/complex/tokens.rb +31 -0
- data/lib/gooddata/lcm/types/complex/types.rb +12 -0
- data/lib/gooddata/lcm/types/complex/update_preference.rb +32 -0
- data/lib/gooddata/lcm/types/param.rb +16 -0
- data/lib/gooddata/lcm/types/scalar/bool.rb +22 -0
- data/lib/gooddata/lcm/types/scalar/hash.rb +22 -0
- data/lib/gooddata/lcm/types/scalar/integer.rb +22 -0
- data/lib/gooddata/lcm/types/scalar/object.rb +22 -0
- data/lib/gooddata/lcm/types/scalar/string.rb +22 -0
- data/lib/gooddata/lcm/types/scalar/types.rb +12 -0
- data/lib/gooddata/lcm/types/special/array.rb +35 -0
- data/lib/gooddata/lcm/types/special/enum.rb +17 -0
- data/lib/gooddata/lcm/types/special/types.rb +12 -0
- data/lib/gooddata/lcm/types/types.rb +12 -0
- data/lib/gooddata/mixins/author.rb +1 -1
- data/lib/gooddata/mixins/content_getter.rb +1 -1
- data/lib/gooddata/mixins/content_property_reader.rb +1 -1
- data/lib/gooddata/mixins/content_property_writer.rb +1 -1
- data/lib/gooddata/mixins/contributor.rb +1 -1
- data/lib/gooddata/mixins/data_getter.rb +1 -1
- data/lib/gooddata/mixins/data_property_reader.rb +1 -1
- data/lib/gooddata/mixins/data_property_writer.rb +1 -1
- data/lib/gooddata/mixins/inspector.rb +1 -1
- data/lib/gooddata/mixins/is_attribute.rb +1 -1
- data/lib/gooddata/mixins/is_dimension.rb +1 -1
- data/lib/gooddata/mixins/is_fact.rb +1 -1
- data/lib/gooddata/mixins/is_label.rb +1 -1
- data/lib/gooddata/mixins/links.rb +1 -1
- data/lib/gooddata/mixins/md_finders.rb +1 -1
- data/lib/gooddata/mixins/md_grantees.rb +1 -1
- data/lib/gooddata/mixins/md_id_to_uri.rb +9 -3
- data/lib/gooddata/mixins/md_json.rb +1 -1
- data/lib/gooddata/mixins/md_lock.rb +1 -1
- data/lib/gooddata/mixins/md_object_id.rb +1 -1
- data/lib/gooddata/mixins/md_object_indexer.rb +1 -1
- data/lib/gooddata/mixins/md_object_query.rb +1 -1
- data/lib/gooddata/mixins/md_relations.rb +1 -1
- data/lib/gooddata/mixins/meta_getter.rb +1 -1
- data/lib/gooddata/mixins/meta_property_reader.rb +1 -1
- data/lib/gooddata/mixins/meta_property_writer.rb +1 -1
- data/lib/gooddata/mixins/mixins.rb +1 -1
- data/lib/gooddata/mixins/not_attribute.rb +1 -1
- data/lib/gooddata/mixins/not_exportable.rb +1 -1
- data/lib/gooddata/mixins/not_fact.rb +1 -1
- data/lib/gooddata/mixins/not_group.rb +1 -1
- data/lib/gooddata/mixins/not_label.rb +1 -1
- data/lib/gooddata/mixins/not_metric.rb +1 -1
- data/lib/gooddata/mixins/obj_id.rb +1 -1
- data/lib/gooddata/mixins/rest_getters.rb +1 -1
- data/lib/gooddata/mixins/rest_resource.rb +1 -1
- data/lib/gooddata/mixins/root_key_getter.rb +1 -1
- data/lib/gooddata/mixins/root_key_setter.rb +1 -1
- data/lib/gooddata/mixins/timestamps.rb +1 -1
- data/lib/gooddata/models/ads_output_stage.rb +85 -0
- data/lib/gooddata/models/automated_data_distribution.rb +36 -0
- data/lib/gooddata/models/blueprint/anchor_field.rb +4 -3
- data/lib/gooddata/models/blueprint/attribute_field.rb +18 -2
- data/lib/gooddata/models/blueprint/blueprint.rb +1 -1
- data/lib/gooddata/models/blueprint/blueprint_field.rb +1 -1
- data/lib/gooddata/models/blueprint/dashboard_builder.rb +1 -1
- data/lib/gooddata/models/blueprint/dataset_blueprint.rb +6 -1
- data/lib/gooddata/models/blueprint/date_dimension.rb +1 -1
- data/lib/gooddata/models/blueprint/fact_field.rb +1 -1
- data/lib/gooddata/models/blueprint/label_field.rb +5 -1
- data/lib/gooddata/models/blueprint/project_blueprint.rb +1 -1
- data/lib/gooddata/models/blueprint/project_builder.rb +1 -1
- data/lib/gooddata/models/blueprint/reference_field.rb +1 -1
- data/lib/gooddata/models/blueprint/schema_blueprint.rb +1 -1
- data/lib/gooddata/models/blueprint/schema_builder.rb +1 -1
- data/lib/gooddata/models/blueprint/to_manifest.rb +7 -3
- data/lib/gooddata/models/blueprint/to_wire.rb +12 -1
- data/lib/gooddata/models/channel_configuration.rb +112 -0
- data/lib/gooddata/models/client.rb +42 -6
- data/lib/gooddata/models/client_synchronization_result.rb +1 -1
- data/lib/gooddata/models/client_synchronization_result_details.rb +1 -1
- data/lib/gooddata/models/datawarehouse.rb +25 -3
- data/lib/gooddata/models/domain.rb +29 -4
- data/lib/gooddata/models/execution.rb +1 -1
- data/lib/gooddata/models/execution_detail.rb +1 -1
- data/lib/gooddata/models/from_wire.rb +8 -1
- data/lib/gooddata/models/invitation.rb +1 -1
- data/lib/gooddata/models/links.rb +1 -1
- data/lib/gooddata/models/membership.rb +1 -1
- data/lib/gooddata/models/metadata.rb +3 -2
- data/lib/gooddata/models/metadata/attribute.rb +7 -1
- data/lib/gooddata/models/metadata/dashboard.rb +3 -3
- data/lib/gooddata/models/metadata/dashboard/dashboard_item.rb +1 -1
- data/lib/gooddata/models/metadata/dashboard/filter_apply_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/filter_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/geo_chart_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/headline_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/iframe_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/report_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/text_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard_tab.rb +2 -2
- data/lib/gooddata/models/metadata/dataset.rb +1 -1
- data/lib/gooddata/models/metadata/dimension.rb +1 -1
- data/lib/gooddata/models/metadata/fact.rb +1 -1
- data/lib/gooddata/models/metadata/folder.rb +1 -1
- data/lib/gooddata/models/metadata/label.rb +1 -1
- data/lib/gooddata/models/metadata/metadata.rb +1 -1
- data/lib/gooddata/models/metadata/metric.rb +1 -1
- data/lib/gooddata/models/metadata/report.rb +1 -1
- data/lib/gooddata/models/metadata/report_definition.rb +1 -1
- data/lib/gooddata/models/metadata/scheduled_mail.rb +2 -2
- data/lib/gooddata/models/metadata/scheduled_mail/dashboard_attachment.rb +1 -1
- data/lib/gooddata/models/metadata/scheduled_mail/report_attachment.rb +1 -1
- data/lib/gooddata/models/metadata/variable.rb +1 -1
- data/lib/gooddata/models/model.rb +1 -1
- data/lib/gooddata/models/models.rb +1 -1
- data/lib/gooddata/models/module_constants.rb +1 -1
- data/lib/gooddata/models/notification_rule.rb +113 -0
- data/lib/gooddata/models/process.rb +10 -3
- data/lib/gooddata/models/profile.rb +9 -1
- data/lib/gooddata/models/project.rb +248 -50
- data/lib/gooddata/models/project_creator.rb +2 -2
- data/lib/gooddata/models/project_metadata.rb +1 -1
- data/lib/gooddata/models/project_role.rb +1 -1
- data/lib/gooddata/models/report_data_result.rb +1 -1
- data/lib/gooddata/models/schedule.rb +49 -13
- data/lib/gooddata/models/segment.rb +3 -3
- data/lib/gooddata/models/style_setting.rb +71 -0
- data/lib/gooddata/models/subscription.rb +181 -0
- data/lib/gooddata/models/tab_builder.rb +1 -1
- data/lib/gooddata/models/user_filters/mandatory_user_filter.rb +1 -1
- data/lib/gooddata/models/user_filters/user_filter.rb +1 -1
- data/lib/gooddata/models/user_filters/user_filter_builder.rb +11 -5
- data/lib/gooddata/models/user_filters/user_filters.rb +1 -1
- data/lib/gooddata/models/user_filters/variable_user_filter.rb +1 -1
- data/lib/gooddata/models/user_group.rb +19 -12
- data/lib/gooddata/rest/client.rb +9 -1
- data/lib/gooddata/rest/connection.rb +18 -9
- data/lib/gooddata/rest/object.rb +1 -1
- data/lib/gooddata/rest/object_factory.rb +1 -1
- data/lib/gooddata/rest/resource.rb +1 -1
- data/lib/gooddata/rest/rest.rb +1 -1
- data/lib/gooddata/version.rb +2 -2
- data/spec/.rubocop.yml +16 -0
- data/spec/bricks/bricks_spec.rb +13 -15
- data/spec/data/blueprints/attribute_sort_order_blueprint.json +72 -0
- data/spec/data/gooddata_version_process/gooddata_version.rb +1 -1
- data/spec/data/hello_world_process/hello_world.rb +2 -2
- data/spec/data/ruby_params_process/ruby_params.rb +1 -1
- data/spec/data/ruby_process/process.rb +2 -2
- data/spec/data/wire_models/attribute_sort_by_model.json +73 -0
- data/spec/environment/default.rb +14 -13
- data/spec/environment/develop.rb +26 -11
- data/spec/environment/environment.rb +2 -1
- data/spec/environment/hotfix.rb +15 -7
- data/spec/environment/production.rb +6 -14
- data/spec/environment/staging.rb +9 -10
- data/spec/helpers/blueprint_helper.rb +11 -10
- data/spec/helpers/cli_helper.rb +26 -24
- data/spec/helpers/connection_helper.rb +28 -26
- data/spec/helpers/crypto_helper.rb +8 -6
- data/spec/helpers/csv_helper.rb +7 -5
- data/spec/helpers/process_helper.rb +13 -11
- data/spec/helpers/project_helper.rb +36 -34
- data/spec/helpers/schedule_helper.rb +13 -11
- data/spec/helpers/spec_helper.rb +8 -6
- data/spec/integration/ads_output_stage_spec.rb +55 -0
- data/spec/integration/blueprint_updates_spec.rb +22 -16
- data/spec/integration/blueprint_with_grain_spec.rb +5 -3
- data/spec/integration/channel_configuration_spec.rb +67 -0
- data/spec/integration/clients_spec.rb +31 -22
- data/spec/integration/command_datawarehouse_spec.rb +4 -4
- data/spec/integration/command_projects_spec.rb +6 -6
- data/spec/integration/create_from_template_spec.rb +4 -3
- data/spec/integration/create_project_spec.rb +7 -4
- data/spec/integration/date_dim_switch_spec.rb +25 -28
- data/spec/integration/deprecated_load_spec.rb +11 -9
- data/spec/integration/full_process_schedule_spec.rb +82 -13
- data/spec/integration/full_project_spec.rb +67 -45
- data/spec/integration/lcm_spec.rb +41 -0
- data/spec/integration/over_to_user_filters_spec.rb +14 -10
- data/spec/integration/partial_md_export_import_spec.rb +3 -4
- data/spec/integration/project_spec.rb +101 -42
- data/spec/integration/rest_spec.rb +5 -4
- data/spec/integration/schedule_spec.rb +28 -39
- data/spec/integration/segments_spec.rb +42 -31
- data/spec/integration/subscription_spec.rb +63 -0
- data/spec/integration/user_filters_spec.rb +49 -39
- data/spec/integration/user_group_spec.rb +25 -5
- data/spec/integration/variables_spec.rb +34 -32
- data/spec/logging_in_logging_out_spec.rb +6 -8
- data/spec/spec_helper.rb +3 -3
- data/spec/unit/bricks/bricks_spec.rb +3 -4
- data/spec/unit/bricks/middleware/aws_middelware_spec.rb +8 -15
- data/spec/unit/bricks/middleware/bench_middleware_spec.rb +2 -2
- data/spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb +2 -2
- data/spec/unit/bricks/middleware/gooddata_middleware_spec.rb +2 -2
- data/spec/unit/bricks/middleware/logger_middleware_spec.rb +2 -2
- data/spec/unit/bricks/middleware/restforce_middleware_spec.rb +3 -3
- data/spec/unit/bricks/middleware/stdout_middleware_spec.rb +3 -3
- data/spec/unit/bricks/middleware/twitter_middleware_spec.rb +3 -3
- data/spec/unit/cli/cli_spec.rb +3 -3
- data/spec/unit/cli/commands/cmd_auth_spec.rb +2 -2
- data/spec/unit/commands/command_projects_spec.rb +3 -3
- data/spec/unit/core/connection_spec.rb +3 -4
- data/spec/unit/core/logging_spec.rb +2 -5
- data/spec/unit/core/nil_logger_spec.rb +2 -2
- data/spec/unit/core/project_spec.rb +4 -4
- data/spec/unit/extensions/hash_spec.rb +3 -4
- data/spec/unit/godzilla/goodzilla_spec.rb +22 -26
- data/spec/unit/helpers/csv_helper_spec.rb +3 -3
- data/spec/unit/helpers/data_helper_spec.rb +6 -18
- data/spec/unit/helpers/global_helpers_spec.rb +112 -28
- data/spec/unit/helpers_spec.rb +139 -2
- data/spec/unit/models/blueprint/attribute_sort_by_spec.rb +20 -0
- data/spec/unit/models/blueprint/attributes_spec.rb +1 -2
- data/spec/unit/models/blueprint/dataset_spec.rb +2 -3
- data/spec/unit/models/blueprint/labels_spec.rb +1 -2
- data/spec/unit/models/blueprint/project_blueprint_spec.rb +34 -35
- data/spec/unit/models/blueprint/reference_spec.rb +1 -2
- data/spec/unit/models/blueprint/schema_builder_spec.rb +5 -7
- data/spec/unit/models/blueprint/to_wire_spec.rb +76 -55
- data/spec/unit/models/domain_spec.rb +4 -5
- data/spec/unit/models/execution_spec.rb +16 -15
- data/spec/unit/models/from_wire_spec.rb +24 -19
- data/spec/unit/models/invitation_spec.rb +1 -1
- data/spec/unit/models/membership_spec.rb +36 -41
- data/spec/unit/models/metadata_spec.rb +20 -18
- data/spec/unit/models/metric_spec.rb +67 -55
- data/spec/unit/models/model_spec.rb +32 -37
- data/spec/unit/models/params_spec.rb +1 -1
- data/spec/unit/models/profile_spec.rb +40 -45
- data/spec/unit/models/project_creator_spec.rb +27 -29
- data/spec/unit/models/project_role_spec.rb +1 -1
- data/spec/unit/models/project_spec.rb +65 -2
- data/spec/unit/models/report_result_data_spec.rb +7 -12
- data/spec/unit/models/schedule_spec.rb +71 -35
- data/spec/unit/models/to_manifest_spec.rb +69 -4
- data/spec/unit/models/unit_project_spec.rb +12 -12
- data/spec/unit/models/user_filters_spec.rb +40 -40
- data/spec/unit/models/variable_spec.rb +108 -93
- data/spec/unit/rest/polling_spec.rb +7 -7
- data/spec/unit/rest/resource_spec.rb +2 -2
- metadata +145 -228
- data/spec/environment/release.rb +0 -21
- data/spec/environment/staging_3.rb +0 -36
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
7
7
|
require 'gooddata/models/project_creator'
|
|
8
8
|
|
|
9
9
|
describe GoodData::Model::ProjectCreator do
|
|
10
|
-
|
|
11
10
|
before(:each) do
|
|
12
11
|
# Priority is
|
|
13
12
|
#
|
|
@@ -19,38 +18,37 @@ describe GoodData::Model::ProjectCreator do
|
|
|
19
18
|
#
|
|
20
19
|
# The data is ordered in descending priority
|
|
21
20
|
@chunk_a = {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
'updateScript' => {
|
|
22
|
+
'cascadeDrops' => false,
|
|
23
|
+
'preserveData' => true,
|
|
24
|
+
'maqlDdlChunks' => 'a'
|
|
25
|
+
}
|
|
26
|
+
}
|
|
28
27
|
|
|
29
28
|
@chunk_b = {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
29
|
+
'updateScript' => {
|
|
30
|
+
'cascadeDrops' => false,
|
|
31
|
+
'preserveData' => false,
|
|
32
|
+
'maqlDdlChunks' => 'b'
|
|
33
|
+
}
|
|
34
|
+
}
|
|
36
35
|
@chunk_c = {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
'updateScript' => {
|
|
37
|
+
'cascadeDrops' => true,
|
|
38
|
+
'preserveData' => true,
|
|
39
|
+
'maqlDdlChunks' => 'c'
|
|
40
|
+
}
|
|
41
|
+
}
|
|
43
42
|
|
|
44
43
|
@chunk_d = {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
'updateScript' => {
|
|
45
|
+
'cascadeDrops' => true,
|
|
46
|
+
'preserveData' => false,
|
|
47
|
+
'maqlDdlChunks' => 'd'
|
|
48
|
+
}
|
|
49
|
+
}
|
|
51
50
|
|
|
52
51
|
@data = [@chunk_a, @chunk_b, @chunk_c, @chunk_d]
|
|
53
|
-
|
|
54
52
|
end
|
|
55
53
|
|
|
56
54
|
it 'should pick correct update chunk based on priority' do
|
|
@@ -59,7 +57,7 @@ describe GoodData::Model::ProjectCreator do
|
|
|
59
57
|
end
|
|
60
58
|
|
|
61
59
|
it 'should pick correct update chunk based on your preference if it is possible to satisfy it' do
|
|
62
|
-
chunk = GoodData::Model::ProjectCreator.pick_correct_chunks(@data, update_preference: { cascade_drops: true,
|
|
60
|
+
chunk = GoodData::Model::ProjectCreator.pick_correct_chunks(@data, update_preference: { cascade_drops: true, preserve_data: false })
|
|
63
61
|
expect(chunk).to eq [@chunk_d]
|
|
64
62
|
end
|
|
65
63
|
|
|
@@ -69,7 +67,7 @@ describe GoodData::Model::ProjectCreator do
|
|
|
69
67
|
end
|
|
70
68
|
|
|
71
69
|
it 'should not pick a chunk if it is not possible to satisfy it based on your preference' do
|
|
72
|
-
chunk = GoodData::Model::ProjectCreator.pick_correct_chunks(@data, update_preference: { cascade_drops: true,
|
|
70
|
+
chunk = GoodData::Model::ProjectCreator.pick_correct_chunks(@data, update_preference: { cascade_drops: true, preserve_data: false, unmeetable_condition: true })
|
|
73
71
|
expect(chunk).to eq []
|
|
74
72
|
end
|
|
75
73
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@ require 'gooddata'
|
|
|
8
8
|
|
|
9
9
|
describe GoodData::Project, :constraint => 'slow' do
|
|
10
10
|
before(:all) do
|
|
11
|
-
@client = ConnectionHelper
|
|
11
|
+
@client = ConnectionHelper.create_default_connection
|
|
12
12
|
@project = ProjectHelper.get_default_project(:client => @client)
|
|
13
13
|
@domain = @client.domain(ConnectionHelper::DEFAULT_DOMAIN)
|
|
14
14
|
end
|
|
@@ -159,4 +159,67 @@ describe GoodData::Project, :constraint => 'slow' do
|
|
|
159
159
|
end
|
|
160
160
|
end
|
|
161
161
|
end
|
|
162
|
+
|
|
163
|
+
describe '#export_clone' do
|
|
164
|
+
context 'when exclude_schedule is true' do
|
|
165
|
+
let(:options) { { exclude_schedules: true } }
|
|
166
|
+
let(:clone) { GoodData::Project.create(title: 'project clone', client: @client, auth_token: ConnectionHelper::GD_PROJECT_TOKEN) }
|
|
167
|
+
|
|
168
|
+
after do
|
|
169
|
+
clone.delete if clone
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
it 'excludes scheduled emails' do
|
|
173
|
+
@project.schedule_mail.save
|
|
174
|
+
export_token = @project.export_clone(options)
|
|
175
|
+
clone.import_clone(export_token)
|
|
176
|
+
expect(@project.scheduled_mails.to_a).not_to be_empty
|
|
177
|
+
expect(clone.scheduled_mails.to_a).to be_empty
|
|
178
|
+
end
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
context 'when cross_data_center_export is true' do
|
|
182
|
+
it 'is ok' do
|
|
183
|
+
# there are no staging environments on other datacenters
|
|
184
|
+
# so just checking if the parameter gets accepted
|
|
185
|
+
@project.export_clone(cross_data_center_export: true)
|
|
186
|
+
end
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
context 'when export task fails' do
|
|
190
|
+
let(:fail_response) do
|
|
191
|
+
response = { taskState: { status: 'ERROR' } }
|
|
192
|
+
GoodData::Helpers.stringify_keys(response)
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
before do
|
|
196
|
+
allow(@client)
|
|
197
|
+
.to receive(:poll_on_response).and_return(fail_response)
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
it 'raises ExportCloneError' do
|
|
201
|
+
expect { @project.export_clone }.to raise_error(GoodData::ExportCloneError)
|
|
202
|
+
end
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
describe '#import_clone' do
|
|
207
|
+
let(:clone) { GoodData::Project.create(title: 'import clone test', client: @client, auth_token: ConnectionHelper::GD_PROJECT_TOKEN) }
|
|
208
|
+
let(:fail_response) do
|
|
209
|
+
response = { taskState: { status: 'ERROR' } }
|
|
210
|
+
GoodData::Helpers.stringify_keys(response)
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
after do
|
|
214
|
+
clone.delete if clone
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
context 'when import task fails' do
|
|
218
|
+
it 'raises ImportCloneError' do
|
|
219
|
+
export_token = @project.export_clone
|
|
220
|
+
allow(@client).to receive(:poll_on_response).and_return(fail_response)
|
|
221
|
+
expect { clone.import_clone(export_token) }.to raise_error(GoodData::ImportCloneError)
|
|
222
|
+
end
|
|
223
|
+
end
|
|
224
|
+
end
|
|
162
225
|
end
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
7
7
|
require 'gooddata/models/report_data_result'
|
|
8
8
|
|
|
9
9
|
describe GoodData::ReportDataResult do
|
|
10
|
-
|
|
11
10
|
before(:each) do
|
|
12
11
|
data = JSON.parse(File.read('./spec/data/reports/report_1.json'))
|
|
13
12
|
@result = GoodData::ReportDataResult.from_xtab(data)
|
|
@@ -29,8 +28,7 @@ describe GoodData::ReportDataResult do
|
|
|
29
28
|
end
|
|
30
29
|
|
|
31
30
|
it 'should compute columns' do
|
|
32
|
-
expect(@result.top_headers).to eq [["
|
|
33
|
-
["sum of Age", "sum of Age", "sum of Age"]]
|
|
31
|
+
expect(@result.top_headers).to eq [%w(kolin praha varsava), ["sum of Age", "sum of Age", "sum of Age"]]
|
|
34
32
|
end
|
|
35
33
|
|
|
36
34
|
describe '#slice' do
|
|
@@ -50,15 +48,13 @@ describe GoodData::ReportDataResult do
|
|
|
50
48
|
|
|
51
49
|
it 'should return data result with correct headers' do
|
|
52
50
|
expect(@result.left_headers).to eq [["jirka"], ["petr"], ["tomas"]]
|
|
53
|
-
expect(@result.top_headers).to eq [["
|
|
54
|
-
["sum of Age", "sum of Age", "sum of Age"]]
|
|
51
|
+
expect(@result.top_headers).to eq [%w(kolin praha varsava), ["sum of Age", "sum of Age", "sum of Age"]]
|
|
55
52
|
end
|
|
56
|
-
|
|
57
53
|
end
|
|
58
54
|
|
|
59
55
|
describe '#without_left_headers' do
|
|
60
56
|
it 'should return data result without left headers' do
|
|
61
|
-
expect(@result.without_left_headers.to_a).to eq [
|
|
57
|
+
expect(@result.without_left_headers.to_a).to eq [%w(kolin praha varsava),
|
|
62
58
|
["sum of Age", "sum of Age", "sum of Age"],
|
|
63
59
|
[25, nil, nil],
|
|
64
60
|
[nil, nil, 15],
|
|
@@ -110,7 +106,7 @@ describe GoodData::ReportDataResult do
|
|
|
110
106
|
expect(result.size).to eq [2, 4]
|
|
111
107
|
expect(result.data_size).to eq [1, 3]
|
|
112
108
|
expect(result.left_headers).to eq [["Values"]]
|
|
113
|
-
expect(result.top_headers).to eq [
|
|
109
|
+
expect(result.top_headers).to eq [%w(jirka petr tomas)]
|
|
114
110
|
end
|
|
115
111
|
|
|
116
112
|
it 'should fail when comparing two different reports' do
|
|
@@ -154,7 +150,7 @@ describe GoodData::ReportDataResult do
|
|
|
154
150
|
|
|
155
151
|
describe '#map' do
|
|
156
152
|
it 'should iterate over rows' do
|
|
157
|
-
expect(@result.each.map {
|
|
153
|
+
expect(@result.each.map { [1] }).to eq [[1], [1], [1], [1], [1]]
|
|
158
154
|
end
|
|
159
155
|
end
|
|
160
156
|
|
|
@@ -175,7 +171,7 @@ describe GoodData::ReportDataResult do
|
|
|
175
171
|
c = GoodData::ReportDataResult.from_xtab(data)
|
|
176
172
|
data = JSON.parse(File.read('./spec/data/reports/top_attr_report.json'))
|
|
177
173
|
b = GoodData::ReportDataResult.from_xtab(data)
|
|
178
|
-
expect {a - b}.to raise_exception
|
|
174
|
+
expect { a - b }.to raise_exception
|
|
179
175
|
expect(a - c).to be_empty
|
|
180
176
|
end
|
|
181
177
|
end
|
|
@@ -196,4 +192,3 @@ describe GoodData::ReportDataResult do
|
|
|
196
192
|
end
|
|
197
193
|
end
|
|
198
194
|
end
|
|
199
|
-
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -20,7 +20,6 @@ describe GoodData::Schedule do
|
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
before(:each) do
|
|
23
|
-
|
|
24
23
|
@project_executable = 'graph/graph.grf'
|
|
25
24
|
@test_cron = '0 15 27 7 *'
|
|
26
25
|
@test_data = {
|
|
@@ -55,26 +54,23 @@ describe GoodData::Schedule do
|
|
|
55
54
|
end
|
|
56
55
|
|
|
57
56
|
it 'Throws exception when no process ID specified' do
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}.to raise_error 'Process ID has to be provided'
|
|
57
|
+
expect do
|
|
58
|
+
GoodData::Schedule.create(nil, @test_cron, @project_executable, @test_data)
|
|
59
|
+
end.to raise_error 'Process ID has to be provided'
|
|
62
60
|
end
|
|
63
61
|
|
|
64
62
|
it 'Throws exception when no executable specified' do
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}.to raise_error 'Executable has to be provided'
|
|
63
|
+
expect do
|
|
64
|
+
GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, nil, @test_data)
|
|
65
|
+
end.to raise_error 'Executable has to be provided'
|
|
69
66
|
end
|
|
70
67
|
|
|
71
68
|
it 'Throws exception when no cron is specified' do
|
|
72
69
|
data = GoodData::Helpers.deep_dup(@test_data)
|
|
73
70
|
data[:cron] = nil
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}.to raise_error 'Trigger schedule has to be provided'
|
|
71
|
+
expect do
|
|
72
|
+
GoodData::Schedule.create(ProcessHelper::PROCESS_ID, nil, @project_executable, data)
|
|
73
|
+
end.to raise_error 'Trigger schedule has to be provided'
|
|
78
74
|
end
|
|
79
75
|
end
|
|
80
76
|
|
|
@@ -169,7 +165,7 @@ describe GoodData::Schedule do
|
|
|
169
165
|
end
|
|
170
166
|
|
|
171
167
|
it 'Should return hidden_params as hash. Filled by default if provided.' do
|
|
172
|
-
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data.merge(hidden_params: {'a' => 'b'}))
|
|
168
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data.merge(hidden_params: { 'a' => 'b' }))
|
|
173
169
|
res = schedule.hidden_params
|
|
174
170
|
expect(res).not_to be_nil
|
|
175
171
|
expect(res).to be_a_kind_of(Hash)
|
|
@@ -199,7 +195,7 @@ describe GoodData::Schedule do
|
|
|
199
195
|
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
200
196
|
old_params = schedule.hidden_params
|
|
201
197
|
|
|
202
|
-
test_parameter = {'test_parameter' => 'just_testing' }
|
|
198
|
+
test_parameter = { 'test_parameter' => 'just_testing' }
|
|
203
199
|
schedule.set_hidden_parameter(test_parameter.keys.first, test_parameter.values.first)
|
|
204
200
|
expect(schedule.hidden_params).to eq(old_params.merge(test_parameter))
|
|
205
201
|
expect(schedule.dirty).to eq(true)
|
|
@@ -213,7 +209,7 @@ describe GoodData::Schedule do
|
|
|
213
209
|
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
214
210
|
old_params = schedule.params
|
|
215
211
|
|
|
216
|
-
test_parameter = {'test_parameter' => 'just_testing' }
|
|
212
|
+
test_parameter = { 'test_parameter' => 'just_testing' }
|
|
217
213
|
schedule.set_parameter(test_parameter.keys.first, test_parameter.values.first)
|
|
218
214
|
expect(schedule.params).to eq(old_params.merge(test_parameter))
|
|
219
215
|
expect(schedule.dirty).to eq(true)
|
|
@@ -222,7 +218,6 @@ describe GoodData::Schedule do
|
|
|
222
218
|
end
|
|
223
219
|
end
|
|
224
220
|
|
|
225
|
-
|
|
226
221
|
describe '#params' do
|
|
227
222
|
it 'Should return execution params as hash' do
|
|
228
223
|
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
@@ -235,7 +230,6 @@ describe GoodData::Schedule do
|
|
|
235
230
|
describe '#params=' do
|
|
236
231
|
it 'Updates the params and marks the object dirty' do
|
|
237
232
|
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
238
|
-
old_params = schedule.params
|
|
239
233
|
|
|
240
234
|
test_params = {
|
|
241
235
|
'some_new_param' => '1-2-3-4'
|
|
@@ -250,8 +244,7 @@ describe GoodData::Schedule do
|
|
|
250
244
|
|
|
251
245
|
describe '#update_params' do
|
|
252
246
|
it 'Updates the params and marks the object dirty' do
|
|
253
|
-
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data.merge(
|
|
254
|
-
old_params = schedule.params
|
|
247
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data.merge(params: { 'a' => 'b' }))
|
|
255
248
|
|
|
256
249
|
test_params = {
|
|
257
250
|
'some_new_param' => '1-2-3-4',
|
|
@@ -268,23 +261,15 @@ describe GoodData::Schedule do
|
|
|
268
261
|
|
|
269
262
|
describe '#update_hidden_params' do
|
|
270
263
|
it 'Updates the hidden params and marks the object dirty' do
|
|
271
|
-
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data.merge(
|
|
272
|
-
old_params = schedule.hidden_params
|
|
264
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data.merge(params: { 'a' => 'b' }))
|
|
273
265
|
|
|
274
|
-
schedule.update_hidden_params(
|
|
275
|
-
'some_new_param' => '1-2-3-4',
|
|
276
|
-
'a' => 'c',
|
|
277
|
-
'x' => ''
|
|
278
|
-
})
|
|
266
|
+
schedule.update_hidden_params('some_new_param' => '1-2-3-4', 'a' => 'c', 'x' => '')
|
|
279
267
|
expect(schedule.hidden_params.keys.to_set).to eq(%w(x a some_new_param).to_set)
|
|
280
268
|
expect(schedule.hidden_params['some_new_param']).to eq '1-2-3-4'
|
|
281
269
|
expect(schedule.hidden_params['a']).to eq 'c'
|
|
282
270
|
expect(schedule.dirty).to eq(true)
|
|
283
271
|
|
|
284
|
-
schedule.update_hidden_params(
|
|
285
|
-
'some_new_param' => '1-2-3-4',
|
|
286
|
-
'a' => 'd'
|
|
287
|
-
})
|
|
272
|
+
schedule.update_hidden_params('some_new_param' => '1-2-3-4', 'a' => 'd')
|
|
288
273
|
expect(schedule.hidden_params.keys.to_set).to eq(%w(x a some_new_param).to_set)
|
|
289
274
|
expect(schedule.hidden_params['some_new_param']).to eq '1-2-3-4'
|
|
290
275
|
expect(schedule.hidden_params['a']).to eq 'd'
|
|
@@ -316,14 +301,13 @@ describe GoodData::Schedule do
|
|
|
316
301
|
end
|
|
317
302
|
end
|
|
318
303
|
|
|
319
|
-
|
|
320
304
|
describe '#state' do
|
|
321
305
|
it 'Should return schedule state as string' do
|
|
322
306
|
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
323
307
|
res = schedule.state
|
|
324
308
|
expect(res).not_to be_nil
|
|
325
309
|
expect(res).to eq 'ENABLED'
|
|
326
|
-
expect(schedule.to_hash[:state]).to eq
|
|
310
|
+
expect(schedule.to_hash[:state]).to eq 'ENABLED'
|
|
327
311
|
expect(schedule.to_update_payload['schedule']['state']).to eq 'ENABLED'
|
|
328
312
|
end
|
|
329
313
|
|
|
@@ -356,7 +340,7 @@ describe GoodData::Schedule do
|
|
|
356
340
|
expect(schedule.dirty).to eq(true)
|
|
357
341
|
end
|
|
358
342
|
end
|
|
359
|
-
|
|
343
|
+
|
|
360
344
|
describe '#reschedule' do
|
|
361
345
|
it 'Should return reschedule nil if not provided' do
|
|
362
346
|
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
@@ -415,4 +399,56 @@ describe GoodData::Schedule do
|
|
|
415
399
|
expect(schedule.name).to eq 'MY NAME'
|
|
416
400
|
end
|
|
417
401
|
end
|
|
402
|
+
|
|
403
|
+
describe '#after' do
|
|
404
|
+
context 'when after is not set' do
|
|
405
|
+
it 'returns nil' do
|
|
406
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
407
|
+
expect(schedule.after).to be_nil
|
|
408
|
+
end
|
|
409
|
+
end
|
|
410
|
+
|
|
411
|
+
context 'when after is set' do
|
|
412
|
+
before do
|
|
413
|
+
@after_process = @project.deploy_process(
|
|
414
|
+
'./spec/data/hello_world_process/hello_world.rb',
|
|
415
|
+
type: 'RUBY',
|
|
416
|
+
name: 'After Process'
|
|
417
|
+
)
|
|
418
|
+
@after_schedule = @after_process.create_schedule(
|
|
419
|
+
@test_cron,
|
|
420
|
+
@after_process.executables.first
|
|
421
|
+
)
|
|
422
|
+
@process = @project.deploy_process(
|
|
423
|
+
'./spec/data/hello_world_process/hello_world.rb',
|
|
424
|
+
type: 'RUBY',
|
|
425
|
+
name: 'Main Process'
|
|
426
|
+
)
|
|
427
|
+
@schedule = @process.create_schedule(
|
|
428
|
+
@after_schedule,
|
|
429
|
+
@process.executables.first
|
|
430
|
+
)
|
|
431
|
+
end
|
|
432
|
+
|
|
433
|
+
after do
|
|
434
|
+
[@schedule, @process, @after_schedule, @after_process].each do |e|
|
|
435
|
+
e && e.delete
|
|
436
|
+
end
|
|
437
|
+
end
|
|
438
|
+
|
|
439
|
+
it 'returns the after schedule' do
|
|
440
|
+
expect(@schedule.after).to eq @after_schedule
|
|
441
|
+
end
|
|
442
|
+
|
|
443
|
+
it 'returns an updated after schedule' do
|
|
444
|
+
new_schedule = @process.create_schedule(
|
|
445
|
+
'0 0 1 1 *',
|
|
446
|
+
@process.executables.first
|
|
447
|
+
)
|
|
448
|
+
@schedule.after = new_schedule
|
|
449
|
+
expect(@schedule.after).not_to eq @after_schedule
|
|
450
|
+
expect(@schedule.after).to eq new_schedule
|
|
451
|
+
end
|
|
452
|
+
end
|
|
453
|
+
end
|
|
418
454
|
end
|