gooddata 0.6.20 → 0.6.22
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 +29 -1
- data/DEPENDENCIES.md +816 -0
- data/LICENSE +1 -1
- data/LICENSE.rb +5 -0
- data/Rakefile +74 -22
- data/dependency_decisions.yml +102 -0
- data/gooddata.gemspec +39 -38
- data/lib/gooddata.rb +4 -0
- data/lib/gooddata/app/app.rb +4 -0
- data/lib/gooddata/bricks/base_downloader.rb +5 -1
- data/lib/gooddata/bricks/brick.rb +4 -0
- data/lib/gooddata/bricks/bricks.rb +5 -0
- data/lib/gooddata/bricks/middleware/aws_middleware.rb +5 -0
- data/lib/gooddata/bricks/middleware/base_middleware.rb +5 -0
- data/lib/gooddata/bricks/middleware/bench_middleware.rb +5 -0
- data/lib/gooddata/bricks/middleware/bulk_salesforce_middleware.rb +5 -0
- data/lib/gooddata/bricks/middleware/decode_params_middleware.rb +6 -0
- data/lib/gooddata/bricks/middleware/fs_download_middleware.rb +6 -0
- data/lib/gooddata/bricks/middleware/fs_upload_middleware.rb +6 -0
- data/lib/gooddata/bricks/middleware/gooddata_middleware.rb +6 -0
- data/lib/gooddata/bricks/middleware/logger_middleware.rb +5 -0
- data/lib/gooddata/bricks/middleware/middleware.rb +5 -0
- data/lib/gooddata/bricks/middleware/restforce_middleware.rb +4 -0
- data/lib/gooddata/bricks/middleware/stdout_middleware.rb +5 -0
- data/lib/gooddata/bricks/middleware/twitter_middleware.rb +5 -0
- data/lib/gooddata/bricks/middleware/undot_params_middleware.rb +4 -0
- data/lib/gooddata/bricks/pipeline.rb +4 -0
- data/lib/gooddata/bricks/utils.rb +4 -0
- data/lib/gooddata/cli/cli.rb +4 -0
- data/lib/gooddata/cli/commands/api_cmd.rb +4 -0
- data/lib/gooddata/cli/commands/auth_cmd.rb +4 -0
- data/lib/gooddata/cli/commands/console_cmd.rb +4 -0
- data/lib/gooddata/cli/commands/domain_cmd.rb +4 -0
- data/lib/gooddata/cli/commands/process_cmd.rb +4 -0
- data/lib/gooddata/cli/commands/project_cmd.rb +4 -0
- data/lib/gooddata/cli/commands/projects_cmd.rb +4 -0
- data/lib/gooddata/cli/commands/run_ruby_cmd.rb +4 -0
- data/lib/gooddata/cli/commands/scaffold_cmd.rb +4 -0
- data/lib/gooddata/cli/commands/user_cmd.rb +4 -0
- data/lib/gooddata/cli/hooks.rb +4 -0
- data/lib/gooddata/cli/shared.rb +4 -0
- data/lib/gooddata/cli/terminal.rb +4 -0
- data/lib/gooddata/client.rb +4 -0
- data/lib/gooddata/commands/api.rb +4 -0
- data/lib/gooddata/commands/auth.rb +4 -0
- data/lib/gooddata/commands/base.rb +4 -0
- data/lib/gooddata/commands/commands.rb +5 -0
- data/lib/gooddata/commands/datasets.rb +5 -1
- data/lib/gooddata/commands/datawarehouse.rb +4 -0
- data/lib/gooddata/commands/domain.rb +4 -0
- data/lib/gooddata/commands/process.rb +4 -0
- data/lib/gooddata/commands/project.rb +7 -9
- data/lib/gooddata/commands/projects.rb +4 -0
- data/lib/gooddata/commands/role.rb +4 -0
- data/lib/gooddata/commands/runners.rb +4 -0
- data/lib/gooddata/commands/scaffold.rb +4 -0
- data/lib/gooddata/commands/user.rb +4 -0
- data/lib/gooddata/connection.rb +83 -0
- data/lib/gooddata/core/core.rb +4 -0
- data/lib/gooddata/core/logging.rb +4 -0
- data/lib/gooddata/core/nil_logger.rb +4 -0
- data/lib/gooddata/core/project.rb +4 -0
- data/lib/gooddata/core/rest.rb +14 -16
- data/lib/gooddata/core/user.rb +4 -0
- data/lib/gooddata/data/data.rb +4 -0
- data/lib/gooddata/data/guesser.rb +4 -0
- data/lib/gooddata/exceptions/attr_element_not_found.rb +4 -0
- data/lib/gooddata/exceptions/command_failed.rb +4 -0
- data/lib/gooddata/exceptions/exceptions.rb +4 -0
- data/lib/gooddata/exceptions/execution_limit_exceeded.rb +4 -0
- data/lib/gooddata/exceptions/filter_maqlization.rb +16 -0
- data/lib/gooddata/exceptions/malformed_user.rb +15 -0
- data/lib/gooddata/exceptions/no_project_error.rb +4 -0
- data/lib/gooddata/exceptions/object_migration.rb +28 -0
- data/lib/gooddata/exceptions/project_not_found.rb +5 -0
- data/lib/gooddata/exceptions/uncomputable_report.rb +5 -0
- data/lib/gooddata/exceptions/user_in_different_domain.rb +4 -0
- data/lib/gooddata/exceptions/validation_error.rb +4 -0
- data/lib/gooddata/extensions/big_decimal.rb +4 -0
- data/lib/gooddata/extensions/enumerable.rb +4 -0
- data/lib/gooddata/extensions/extensions.rb +4 -0
- data/lib/gooddata/extensions/false.rb +4 -0
- data/lib/gooddata/extensions/hash.rb +4 -0
- data/lib/gooddata/extensions/nil.rb +4 -0
- data/lib/gooddata/extensions/numeric.rb +4 -0
- data/lib/gooddata/extensions/object.rb +4 -0
- data/lib/gooddata/extensions/symbol.rb +4 -0
- data/lib/gooddata/extensions/true.rb +4 -0
- data/lib/gooddata/extract.rb +4 -0
- data/lib/gooddata/goodzilla/goodzilla.rb +87 -77
- data/lib/gooddata/helpers/auth_helpers.rb +6 -2
- data/lib/gooddata/helpers/csv_helper.rb +4 -0
- data/lib/gooddata/helpers/data_helper.rb +4 -0
- data/lib/gooddata/helpers/global_helpers.rb +35 -6
- data/lib/gooddata/helpers/global_helpers_params.rb +34 -7
- data/lib/gooddata/helpers/helpers.rb +4 -0
- data/lib/gooddata/mixins/author.rb +4 -0
- data/lib/gooddata/mixins/content_getter.rb +4 -0
- data/lib/gooddata/mixins/content_property_reader.rb +4 -0
- data/lib/gooddata/mixins/content_property_writer.rb +4 -0
- data/lib/gooddata/mixins/contributor.rb +4 -0
- data/lib/gooddata/mixins/data_getter.rb +4 -0
- data/lib/gooddata/mixins/data_property_reader.rb +4 -0
- data/lib/gooddata/mixins/data_property_writer.rb +4 -0
- data/lib/gooddata/mixins/inspector.rb +4 -0
- data/lib/gooddata/mixins/is_attribute.rb +4 -0
- data/lib/gooddata/mixins/is_dimension.rb +4 -0
- data/lib/gooddata/mixins/is_fact.rb +4 -0
- data/lib/gooddata/mixins/is_label.rb +4 -0
- data/lib/gooddata/mixins/links.rb +4 -0
- data/lib/gooddata/mixins/md_finders.rb +4 -0
- data/lib/gooddata/mixins/md_id_to_uri.rb +4 -0
- data/lib/gooddata/mixins/md_json.rb +4 -0
- data/lib/gooddata/mixins/md_lock.rb +4 -0
- data/lib/gooddata/mixins/md_object_id.rb +5 -1
- data/lib/gooddata/mixins/md_object_indexer.rb +4 -0
- data/lib/gooddata/mixins/md_object_query.rb +4 -0
- data/lib/gooddata/mixins/md_relations.rb +4 -0
- data/lib/gooddata/mixins/meta_getter.rb +4 -0
- data/lib/gooddata/mixins/meta_property_reader.rb +4 -0
- data/lib/gooddata/mixins/meta_property_writer.rb +4 -0
- data/lib/gooddata/mixins/mixins.rb +4 -0
- data/lib/gooddata/mixins/not_attribute.rb +4 -0
- data/lib/gooddata/mixins/not_exportable.rb +4 -0
- data/lib/gooddata/mixins/not_fact.rb +4 -0
- data/lib/gooddata/mixins/not_label.rb +4 -0
- data/lib/gooddata/mixins/not_metric.rb +6 -0
- data/lib/gooddata/mixins/obj_id.rb +4 -0
- data/lib/gooddata/mixins/rest_getters.rb +4 -0
- data/lib/gooddata/mixins/rest_resource.rb +4 -0
- data/lib/gooddata/mixins/root_key_getter.rb +4 -0
- data/lib/gooddata/mixins/root_key_setter.rb +4 -0
- data/lib/gooddata/mixins/timestamps.rb +4 -0
- data/lib/gooddata/models/blueprint/anchor_field.rb +4 -0
- data/lib/gooddata/models/blueprint/attribute_field.rb +4 -0
- data/lib/gooddata/models/blueprint/blueprint.rb +4 -0
- data/lib/gooddata/models/blueprint/blueprint_field.rb +4 -0
- data/lib/gooddata/models/blueprint/dashboard_builder.rb +4 -0
- data/lib/gooddata/models/blueprint/dataset_blueprint.rb +6 -0
- data/lib/gooddata/models/blueprint/date_dimension.rb +4 -0
- data/lib/gooddata/models/blueprint/fact_field.rb +4 -0
- data/lib/gooddata/models/blueprint/label_field.rb +4 -0
- data/lib/gooddata/models/blueprint/project_blueprint.rb +6 -0
- data/lib/gooddata/models/blueprint/project_builder.rb +4 -0
- data/lib/gooddata/models/blueprint/reference_field.rb +4 -0
- data/lib/gooddata/models/blueprint/schema_blueprint.rb +4 -0
- data/lib/gooddata/models/blueprint/schema_builder.rb +4 -0
- data/lib/gooddata/models/blueprint/to_manifest.rb +17 -1
- data/lib/gooddata/models/blueprint/to_wire.rb +4 -0
- data/lib/gooddata/models/datawarehouse.rb +5 -0
- data/lib/gooddata/models/domain.rb +25 -7
- data/lib/gooddata/models/execution.rb +4 -0
- data/lib/gooddata/models/execution_detail.rb +4 -0
- data/lib/gooddata/models/from_wire.rb +4 -0
- data/lib/gooddata/models/invitation.rb +4 -0
- data/lib/gooddata/models/links.rb +4 -0
- data/lib/gooddata/models/membership.rb +4 -0
- data/lib/gooddata/models/metadata.rb +37 -10
- data/lib/gooddata/models/metadata/attribute.rb +6 -0
- data/lib/gooddata/models/metadata/dashboard.rb +54 -16
- data/lib/gooddata/models/metadata/dashboard/dashboard_item.rb +60 -0
- data/lib/gooddata/models/metadata/dashboard/filter_item.rb +15 -0
- data/lib/gooddata/models/metadata/dashboard/report_item.rb +51 -0
- data/lib/gooddata/models/metadata/dashboard_tab.rb +88 -0
- data/lib/gooddata/models/metadata/dataset.rb +4 -0
- data/lib/gooddata/models/metadata/dimension.rb +4 -0
- data/lib/gooddata/models/metadata/fact.rb +6 -0
- data/lib/gooddata/models/metadata/label.rb +15 -0
- data/lib/gooddata/models/metadata/metadata.rb +4 -0
- data/lib/gooddata/models/metadata/metric.rb +5 -4
- data/lib/gooddata/models/metadata/report.rb +62 -16
- data/lib/gooddata/models/metadata/report_definition.rb +44 -47
- data/lib/gooddata/models/metadata/variable.rb +4 -0
- data/lib/gooddata/models/model.rb +85 -36
- data/lib/gooddata/models/models.rb +4 -0
- data/lib/gooddata/models/module_constants.rb +4 -0
- data/lib/gooddata/models/process.rb +4 -0
- data/lib/gooddata/models/profile.rb +13 -0
- data/lib/gooddata/models/project.rb +173 -92
- data/lib/gooddata/models/project_creator.rb +18 -10
- data/lib/gooddata/models/project_metadata.rb +4 -0
- data/lib/gooddata/models/project_role.rb +4 -0
- data/lib/gooddata/models/report_data_result.rb +217 -125
- data/lib/gooddata/models/schedule.rb +140 -65
- data/lib/gooddata/models/tab_builder.rb +4 -0
- data/lib/gooddata/models/user_filters/mandatory_user_filter.rb +4 -0
- data/lib/gooddata/models/user_filters/user_filter.rb +4 -0
- data/lib/gooddata/models/user_filters/user_filter_builder.rb +98 -56
- data/lib/gooddata/models/user_filters/user_filters.rb +4 -0
- data/lib/gooddata/models/user_filters/variable_user_filter.rb +4 -0
- data/lib/gooddata/rest/client.rb +41 -38
- data/lib/gooddata/rest/connection.rb +91 -20
- data/lib/gooddata/rest/connections/rest_client_connection.rb +5 -1
- data/lib/gooddata/rest/object.rb +9 -1
- data/lib/gooddata/rest/object_factory.rb +5 -1
- data/lib/gooddata/rest/resource.rb +5 -1
- data/lib/gooddata/rest/rest.rb +4 -0
- data/lib/gooddata/version.rb +5 -1
- data/spec/bricks/bricks_spec.rb +4 -0
- data/spec/data/blueprints/test_project_model_spec.json +2 -2
- data/spec/data/gooddata_version_process/gooddata_version.rb +6 -0
- data/spec/data/hello_world_process/hello_world.rb +6 -0
- data/spec/data/manifests/test_project.json +5 -5
- data/spec/data/reports/left_attr_report.json +108 -0
- data/spec/data/reports/metric_only_one_line.json +83 -0
- data/spec/data/reports/report_1.json +197 -0
- data/spec/data/reports/top_attr_report.json +108 -0
- data/spec/data/ruby_params_process/ruby_params.rb +6 -0
- data/spec/data/ruby_process/process.rb +6 -0
- data/spec/environment/default.rb +5 -0
- data/spec/environment/develop.rb +10 -5
- data/spec/environment/environment.rb +4 -0
- data/spec/environment/hotfix.rb +5 -1
- data/spec/environment/production.rb +4 -0
- data/spec/environment/release.rb +4 -0
- data/spec/environment/staging.rb +30 -0
- data/spec/environment/staging_3.rb +37 -0
- data/spec/helpers/blueprint_helper.rb +4 -0
- data/spec/helpers/cli_helper.rb +4 -0
- data/spec/helpers/connection_helper.rb +24 -17
- data/spec/helpers/crypto_helper.rb +6 -0
- data/spec/helpers/csv_helper.rb +4 -0
- data/spec/helpers/process_helper.rb +5 -1
- data/spec/helpers/project_helper.rb +34 -29
- data/spec/helpers/schedule_helper.rb +4 -0
- data/spec/helpers/spec_helper.rb +4 -0
- data/spec/integration/blueprint_updates_spec.rb +28 -20
- data/spec/integration/command_datawarehouse_spec.rb +6 -0
- data/spec/integration/command_projects_spec.rb +6 -4
- data/spec/integration/create_from_template_spec.rb +6 -0
- data/spec/integration/create_project_spec.rb +6 -0
- data/spec/integration/deprecated_load_spec.rb +58 -0
- data/spec/integration/full_process_schedule_spec.rb +9 -0
- data/spec/integration/full_project_spec.rb +63 -9
- data/spec/integration/over_to_user_filters_spec.rb +7 -2
- data/spec/integration/partial_md_export_import_spec.rb +6 -0
- data/spec/integration/project_spec.rb +12 -6
- data/spec/integration/rest_spec.rb +6 -2
- data/spec/integration/schedule_spec.rb +627 -0
- data/spec/integration/user_filters_spec.rb +122 -21
- data/spec/integration/variables_spec.rb +8 -15
- data/spec/logging_in_logging_out_spec.rb +58 -0
- data/spec/spec_helper.rb +10 -5
- data/spec/unit/bricks/bricks_spec.rb +4 -0
- data/spec/unit/bricks/middleware/aws_middelware_spec.rb +4 -0
- data/spec/unit/bricks/middleware/bench_middleware_spec.rb +4 -0
- data/spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb +4 -0
- data/spec/unit/bricks/middleware/gooddata_middleware_spec.rb +4 -0
- data/spec/unit/bricks/middleware/logger_middleware_spec.rb +4 -0
- data/spec/unit/bricks/middleware/restforce_middleware_spec.rb +4 -0
- data/spec/unit/bricks/middleware/stdout_middleware_spec.rb +4 -0
- data/spec/unit/bricks/middleware/twitter_middleware_spec.rb +4 -0
- data/spec/unit/cli/cli_spec.rb +4 -0
- data/spec/unit/cli/commands/cmd_api_spec.rb +4 -0
- data/spec/unit/cli/commands/cmd_auth_spec.rb +4 -0
- data/spec/unit/cli/commands/cmd_domain_spec.rb +4 -0
- data/spec/unit/cli/commands/cmd_process_spec.rb +4 -0
- data/spec/unit/cli/commands/cmd_project_spec.rb +4 -0
- data/spec/unit/cli/commands/cmd_role_spec.rb +4 -0
- data/spec/unit/cli/commands/cmd_run_ruby_spec.rb +4 -0
- data/spec/unit/cli/commands/cmd_scaffold_spec.rb +6 -0
- data/spec/unit/cli/commands/cmd_user_spec.rb +6 -0
- data/spec/unit/commands/command_api_spec.rb +6 -0
- data/spec/unit/commands/command_auth_spec.rb +6 -0
- data/spec/unit/commands/command_dataset_spec.rb +10 -4
- data/spec/unit/commands/command_process_spec.rb +6 -0
- data/spec/unit/commands/command_projects_spec.rb +6 -0
- data/spec/unit/commands/command_scaffold_spec.rb +6 -0
- data/spec/unit/commands/command_user_spec.rb +6 -0
- data/spec/unit/core/connection_spec.rb +6 -0
- data/spec/unit/core/logging_spec.rb +4 -0
- data/spec/unit/core/nil_logger_spec.rb +4 -0
- data/spec/unit/core/project_spec.rb +4 -0
- data/spec/unit/data/guesser_spec.rb +6 -2
- data/spec/unit/extensions/hash_spec.rb +4 -0
- data/spec/unit/godzilla/goodzilla_spec.rb +4 -0
- data/spec/unit/helpers/csv_helper_spec.rb +4 -0
- data/spec/unit/helpers/data_helper_spec.rb +4 -0
- data/spec/unit/helpers/global_helpers_spec.rb +54 -0
- data/spec/unit/helpers_spec.rb +6 -1
- data/spec/unit/models/blueprint/attributes_spec.rb +5 -0
- data/spec/unit/models/blueprint/dataset_spec.rb +5 -0
- data/spec/unit/models/blueprint/labels_spec.rb +5 -0
- data/spec/unit/models/blueprint/project_blueprint_spec.rb +5 -0
- data/spec/unit/models/blueprint/reference_spec.rb +5 -0
- data/spec/unit/models/blueprint/schema_builder_spec.rb +4 -0
- data/spec/unit/models/blueprint/to_wire_spec.rb +5 -0
- data/spec/unit/models/domain_spec.rb +9 -7
- data/spec/unit/models/execution_spec.rb +6 -0
- data/spec/unit/models/from_wire_spec.rb +4 -0
- data/spec/unit/models/invitation_spec.rb +4 -0
- data/spec/unit/models/membership_spec.rb +4 -0
- data/spec/unit/models/metadata_spec.rb +46 -0
- data/spec/unit/models/metric_spec.rb +4 -0
- data/spec/unit/models/model_spec.rb +4 -0
- data/spec/unit/models/params_spec.rb +4 -0
- data/spec/unit/models/profile_spec.rb +4 -0
- data/spec/unit/models/project_creator_spec.rb +127 -0
- data/spec/unit/models/project_role_spec.rb +4 -0
- data/spec/unit/models/project_spec.rb +4 -0
- data/spec/unit/models/report_result_data_spec.rb +193 -0
- data/spec/unit/models/schedule_spec.rb +241 -386
- data/spec/unit/models/to_manifest_spec.rb +21 -0
- data/spec/unit/models/{unit_project.rb → unit_project_spec.rb} +21 -18
- data/spec/unit/models/user_filters_spec.rb +7 -1
- data/spec/unit/models/variable_spec.rb +6 -0
- data/spec/unit/rest/polling_spec.rb +8 -5
- data/spec/unit/rest/resource_spec.rb +4 -0
- metadata +190 -129
- data/.autotest +0 -2
- data/.travis.yml +0 -22
- data/examples.rb +0 -69
- data/lib/gooddata/models/data_result.rb +0 -38
- data/lib/gooddata/models/empty_result.rb +0 -57
- data/spec/unit/models/project_creator.rb +0 -73
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
#
|
|
3
|
+
# Copyright (c) 2010-2015 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
|
+
|
|
1
7
|
require 'gooddata/models/schedule'
|
|
2
8
|
|
|
3
9
|
describe GoodData::Schedule do
|
|
@@ -14,9 +20,7 @@ describe GoodData::Schedule do
|
|
|
14
20
|
end
|
|
15
21
|
|
|
16
22
|
before(:each) do
|
|
17
|
-
@client = ConnectionHelper.create_default_connection
|
|
18
23
|
|
|
19
|
-
@project = ProjectHelper.get_default_project(:client => @client)
|
|
20
24
|
@project_executable = 'graph/graph.grf'
|
|
21
25
|
@test_cron = '0 15 27 7 *'
|
|
22
26
|
@test_data = {
|
|
@@ -39,138 +43,49 @@ describe GoodData::Schedule do
|
|
|
39
43
|
}
|
|
40
44
|
end
|
|
41
45
|
|
|
42
|
-
after(:each) do
|
|
43
|
-
@client.disconnect
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
describe '#[]' do
|
|
47
|
-
it 'Returns all schedules when :all passed' do
|
|
48
|
-
res = @project.schedules
|
|
49
|
-
res.should_not be_nil
|
|
50
|
-
res.should be_a_kind_of(Array)
|
|
51
|
-
res.each do |schedule|
|
|
52
|
-
schedule.should be_a_kind_of(GoodData::Schedule)
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
it 'Returns specific schedule when schedule ID passed' do
|
|
57
|
-
res = @project.schedules(SCHEDULE_ID)
|
|
58
|
-
res.should_not be_nil
|
|
59
|
-
res.should be_a_kind_of(GoodData::Schedule)
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
it 'Returns specific schedule when schedule URL passed' do
|
|
63
|
-
res = @project.schedules(SCHEDULE_ID)
|
|
64
|
-
res.should_not be_nil
|
|
65
|
-
res.should be_a_kind_of(GoodData::Schedule)
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
describe '#all' do
|
|
70
|
-
it 'Returns all schedules' do
|
|
71
|
-
res = @project.schedules
|
|
72
|
-
res.should_not be_nil
|
|
73
|
-
res.should be_a_kind_of(Array)
|
|
74
|
-
res.each do |schedule|
|
|
75
|
-
schedule.should be_a_kind_of(GoodData::Schedule)
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
|
|
80
46
|
describe '#create' do
|
|
81
47
|
it 'Creates new schedule if mandatory params passed' do
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
expect(schedule).to be_truthy
|
|
85
|
-
ensure
|
|
86
|
-
schedule && schedule.delete
|
|
87
|
-
end
|
|
48
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
49
|
+
expect(schedule).to be_truthy
|
|
88
50
|
end
|
|
89
51
|
|
|
90
52
|
it 'Creates new schedule if mandatory params passed and optional params are present' do
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
expect(schedule).to be_truthy
|
|
94
|
-
ensure
|
|
95
|
-
schedule && schedule.delete
|
|
96
|
-
end
|
|
53
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
|
|
54
|
+
expect(schedule).to be_truthy
|
|
97
55
|
end
|
|
98
56
|
|
|
99
57
|
it 'Throws exception when no process ID specified' do
|
|
100
58
|
schedule = nil
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}.to raise_error 'Process ID has to be provided'
|
|
105
|
-
ensure
|
|
106
|
-
schedule && schedule.delete
|
|
107
|
-
end
|
|
59
|
+
expect {
|
|
60
|
+
schedule = GoodData::Schedule.create(nil, @test_cron, @project_executable, @test_data)
|
|
61
|
+
}.to raise_error 'Process ID has to be provided'
|
|
108
62
|
end
|
|
109
63
|
|
|
110
64
|
it 'Throws exception when no executable specified' do
|
|
111
65
|
schedule = nil
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
}.to raise_error 'Executable has to be provided'
|
|
116
|
-
ensure
|
|
117
|
-
schedule && schedule.delete
|
|
118
|
-
end
|
|
66
|
+
expect {
|
|
67
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, nil, @test_data)
|
|
68
|
+
}.to raise_error 'Executable has to be provided'
|
|
119
69
|
end
|
|
120
70
|
|
|
121
71
|
it 'Throws exception when no cron is specified' do
|
|
122
72
|
data = GoodData::Helpers.deep_dup(@test_data)
|
|
123
73
|
data[:cron] = nil
|
|
124
74
|
schedule = nil
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}.to raise_error 'trigger schedule has to be provided'
|
|
129
|
-
ensure
|
|
130
|
-
schedule && schedule.delete
|
|
131
|
-
end
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
it 'Throws exception when no timezone specified' do
|
|
135
|
-
data = GoodData::Helpers.deep_dup(@test_data)
|
|
136
|
-
schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, data)
|
|
137
|
-
schedule.timezone = nil
|
|
138
|
-
begin
|
|
139
|
-
expect {
|
|
140
|
-
schedule.save
|
|
141
|
-
}.to raise_error 'A timezone has to be provided'
|
|
142
|
-
ensure
|
|
143
|
-
schedule && schedule.delete
|
|
144
|
-
end
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
it 'Throws exception when no schedule type is specified' do
|
|
148
|
-
schedule = nil
|
|
149
|
-
data = GoodData::Helpers.deep_dup(@test_data)
|
|
150
|
-
begin
|
|
151
|
-
schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, data)
|
|
152
|
-
schedule.type = nil
|
|
153
|
-
expect {
|
|
154
|
-
schedule.save
|
|
155
|
-
}.to raise_error 'Schedule type has to be provided'
|
|
156
|
-
ensure
|
|
157
|
-
schedule && schedule.delete
|
|
158
|
-
end
|
|
75
|
+
expect {
|
|
76
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, nil, @project_executable, data)
|
|
77
|
+
}.to raise_error 'Trigger schedule has to be provided'
|
|
159
78
|
end
|
|
160
79
|
end
|
|
161
80
|
|
|
162
81
|
describe '#cron' do
|
|
163
82
|
it 'Should return cron as string' do
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
expect(schedule.time_based?).to be_truthy
|
|
171
|
-
ensure
|
|
172
|
-
schedule && schedule.delete
|
|
173
|
-
end
|
|
83
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
84
|
+
res = schedule.cron
|
|
85
|
+
expect(res).not_to be_nil
|
|
86
|
+
expect(res).not_to be_empty
|
|
87
|
+
expect(res).to be_a_kind_of(String)
|
|
88
|
+
expect(schedule.time_based?).to be_truthy
|
|
174
89
|
end
|
|
175
90
|
end
|
|
176
91
|
|
|
@@ -178,28 +93,22 @@ describe GoodData::Schedule do
|
|
|
178
93
|
it 'Assigns the cron and marks the object dirty' do
|
|
179
94
|
test_cron = '2 2 2 2 *'
|
|
180
95
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
schedule && schedule.delete
|
|
188
|
-
end
|
|
96
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
97
|
+
schedule.cron = test_cron
|
|
98
|
+
expect(schedule.cron).to eq(test_cron)
|
|
99
|
+
expect(schedule.dirty).to eq(true)
|
|
100
|
+
expect(schedule.to_hash[:cron]).to eq test_cron
|
|
101
|
+
expect(schedule.to_update_payload['schedule']['cron']).to eq test_cron
|
|
189
102
|
end
|
|
190
103
|
end
|
|
191
104
|
|
|
192
105
|
describe '#executable' do
|
|
193
106
|
it 'Should return executable as string' do
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
res.should be_a_kind_of(String)
|
|
200
|
-
ensure
|
|
201
|
-
schedule && schedule.delete
|
|
202
|
-
end
|
|
107
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
108
|
+
res = schedule.executable
|
|
109
|
+
expect(res).not_to be_nil
|
|
110
|
+
expect(res).not_to be_empty
|
|
111
|
+
expect(res).to be_a_kind_of(String)
|
|
203
112
|
end
|
|
204
113
|
end
|
|
205
114
|
|
|
@@ -207,154 +116,190 @@ describe GoodData::Schedule do
|
|
|
207
116
|
it 'Assigns the executable and marks the object dirty' do
|
|
208
117
|
test_executable = 'this/is/test.grf'
|
|
209
118
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
schedule && schedule.delete
|
|
217
|
-
end
|
|
119
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
120
|
+
schedule.executable = test_executable
|
|
121
|
+
expect(schedule.executable).to eq(test_executable)
|
|
122
|
+
expect(schedule.dirty).to eq(true)
|
|
123
|
+
expect(schedule.to_hash[:executable]).to eq test_executable
|
|
124
|
+
expect(schedule.to_update_payload['schedule']['params']['EXECUTABLE']).to eq test_executable
|
|
218
125
|
end
|
|
219
126
|
end
|
|
220
127
|
|
|
221
128
|
describe '#execute' do
|
|
222
|
-
it '
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
type: 'RUBY',
|
|
226
|
-
name: 'Test ETL zipped file GoodData Process')
|
|
227
|
-
schedule = process.create_schedule('0 15 27 7 *', process.executables.first)
|
|
228
|
-
res = schedule.execute
|
|
229
|
-
expect(res).to be_an_instance_of(GoodData::Execution)
|
|
230
|
-
expect([:ok, :error].include?(res.status)).to be_truthy
|
|
231
|
-
ensure
|
|
232
|
-
schedule && schedule.delete
|
|
233
|
-
process && process.delete
|
|
234
|
-
end
|
|
235
|
-
end
|
|
236
|
-
|
|
237
|
-
it 'can be overridden to do not wait for execution result' do
|
|
238
|
-
begin
|
|
239
|
-
process = @project.deploy_process('./spec/data/gooddata_version_process/gooddata_version.zip',
|
|
240
|
-
type: 'RUBY',
|
|
241
|
-
name: 'Test ETL zipped file GoodData Process')
|
|
242
|
-
schedule = process.create_schedule('0 15 27 7 *', process.executables.first)
|
|
243
|
-
res = schedule.execute(:wait => false)
|
|
244
|
-
expect(res).to be_an_instance_of(GoodData::Execution)
|
|
245
|
-
expect([:scheduled, :running].include?(res.status)).to be_truthy
|
|
246
|
-
ensure
|
|
247
|
-
schedule && schedule.delete
|
|
248
|
-
process && process.delete
|
|
249
|
-
end
|
|
129
|
+
it 'Cannot be executed if not saved' do
|
|
130
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
131
|
+
expect(schedule.execute).to be_nil
|
|
250
132
|
end
|
|
251
133
|
end
|
|
252
134
|
|
|
253
135
|
describe '#execution_url' do
|
|
254
136
|
it 'Should return execution URL as string' do
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
res = schedule.execution_url
|
|
258
|
-
res.should_not be_nil
|
|
259
|
-
res.should_not be_empty
|
|
260
|
-
res.should be_a_kind_of(String)
|
|
261
|
-
ensure
|
|
262
|
-
schedule && schedule.delete
|
|
263
|
-
end
|
|
137
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
138
|
+
expect(schedule.execution_url).to be_nil
|
|
264
139
|
end
|
|
265
140
|
end
|
|
266
141
|
|
|
267
142
|
describe '#type' do
|
|
268
143
|
it 'Should return execution type as string' do
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
144
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
145
|
+
expect(schedule.type).to eq 'MSETL'
|
|
146
|
+
expect(schedule.to_hash[:type]).to eq 'MSETL'
|
|
147
|
+
expect(schedule.to_update_payload['schedule']['type']).to eq 'MSETL'
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
describe '#type=' do
|
|
152
|
+
it 'Assigns the type the object dirty' do
|
|
153
|
+
test_type = 'TEST'
|
|
154
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
155
|
+
schedule.type = test_type
|
|
156
|
+
expect(schedule.type).to eq(test_type)
|
|
157
|
+
expect(schedule.dirty).to eq(true)
|
|
158
|
+
expect(schedule.to_hash[:type]).to eq test_type
|
|
159
|
+
expect(schedule.to_update_payload['schedule']['type']).to eq test_type
|
|
277
160
|
end
|
|
278
161
|
end
|
|
279
162
|
|
|
280
163
|
describe '#hidden_params' do
|
|
281
|
-
it 'Should return
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
164
|
+
it 'Should return hidden_params as hash. Empty by default.' do
|
|
165
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
166
|
+
res = schedule.hidden_params
|
|
167
|
+
expect(res).not_to be_nil
|
|
168
|
+
expect(res).to be_a_kind_of(Hash)
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
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'}))
|
|
173
|
+
res = schedule.hidden_params
|
|
174
|
+
expect(res).not_to be_nil
|
|
175
|
+
expect(res).to be_a_kind_of(Hash)
|
|
176
|
+
expect(res['a']).to eq 'b'
|
|
290
177
|
end
|
|
291
178
|
end
|
|
292
179
|
|
|
293
180
|
describe '#hidden_params=' do
|
|
294
181
|
it 'Assigns the hidden params and marks the object dirty' do
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
182
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
183
|
+
old_params = schedule.hidden_params
|
|
184
|
+
|
|
185
|
+
test_params = {
|
|
186
|
+
'PROCESS_ID' => '1-2-3-4'
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
schedule.hidden_params = test_params
|
|
190
|
+
expect(schedule.hidden_params).to eq(old_params.merge(test_params))
|
|
191
|
+
expect(schedule.dirty).to eq(true)
|
|
192
|
+
expect(schedule.to_hash[:hidden_params]).to eq(test_params)
|
|
193
|
+
expect(schedule.to_update_payload['schedule']['hiddenParams']).to eq(test_params)
|
|
194
|
+
end
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
describe '#set_hidden_parameter' do
|
|
198
|
+
it 'Assigns the hidden parameter and marks the object dirty' do
|
|
199
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
200
|
+
old_params = schedule.hidden_params
|
|
201
|
+
|
|
202
|
+
test_parameter = {'test_parameter' => 'just_testing' }
|
|
203
|
+
schedule.set_hidden_parameter(test_parameter.keys.first, test_parameter.values.first)
|
|
204
|
+
expect(schedule.hidden_params).to eq(old_params.merge(test_parameter))
|
|
205
|
+
expect(schedule.dirty).to eq(true)
|
|
206
|
+
expect(schedule.to_hash[:hidden_params]).to eq(test_parameter)
|
|
207
|
+
expect(schedule.to_update_payload['schedule']['hiddenParams']).to eq(test_parameter)
|
|
208
|
+
end
|
|
209
|
+
end
|
|
298
210
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
211
|
+
describe '#set_parameter' do
|
|
212
|
+
it 'Assigns the parameter and marks the object dirty' do
|
|
213
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
214
|
+
old_params = schedule.params
|
|
302
215
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
216
|
+
test_parameter = {'test_parameter' => 'just_testing' }
|
|
217
|
+
schedule.set_parameter(test_parameter.keys.first, test_parameter.values.first)
|
|
218
|
+
expect(schedule.params).to eq(old_params.merge(test_parameter))
|
|
219
|
+
expect(schedule.dirty).to eq(true)
|
|
220
|
+
expect(schedule.to_hash[:params]).to eq(old_params.merge(test_parameter))
|
|
221
|
+
expect(schedule.to_update_payload['schedule']['params']).to eq(old_params.merge(test_parameter))
|
|
309
222
|
end
|
|
310
223
|
end
|
|
311
224
|
|
|
225
|
+
|
|
312
226
|
describe '#params' do
|
|
313
227
|
it 'Should return execution params as hash' do
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
res.should_not be_empty
|
|
319
|
-
res.should be_a_kind_of(Hash)
|
|
320
|
-
ensure
|
|
321
|
-
schedule && schedule.delete
|
|
322
|
-
end
|
|
228
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
229
|
+
res = schedule.params
|
|
230
|
+
expect(res).not_to be_nil
|
|
231
|
+
expect(res).to be_a_kind_of(Hash)
|
|
323
232
|
end
|
|
324
233
|
end
|
|
325
234
|
|
|
326
235
|
describe '#params=' do
|
|
327
|
-
it '
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
236
|
+
it 'Updates the params and marks the object dirty' do
|
|
237
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
238
|
+
old_params = schedule.params
|
|
239
|
+
|
|
240
|
+
test_params = {
|
|
241
|
+
'some_new_param' => '1-2-3-4'
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
schedule.params = test_params
|
|
245
|
+
expect(schedule.params.keys).to eq(%w(PROCESS_ID EXECUTABLE some_new_param))
|
|
246
|
+
expect(schedule.params['some_new_param']).to eq '1-2-3-4'
|
|
247
|
+
expect(schedule.dirty).to eq(true)
|
|
248
|
+
end
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
describe '#update_params' do
|
|
252
|
+
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({ params: { 'a' => 'b' } }))
|
|
254
|
+
old_params = schedule.params
|
|
255
|
+
|
|
256
|
+
test_params = {
|
|
257
|
+
'some_new_param' => '1-2-3-4',
|
|
258
|
+
'a' => 'c'
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
schedule.update_params(test_params)
|
|
262
|
+
expect(schedule.params.keys).to eq(%w(PROCESS_ID EXECUTABLE a some_new_param))
|
|
263
|
+
expect(schedule.params['some_new_param']).to eq '1-2-3-4'
|
|
264
|
+
expect(schedule.params['a']).to eq 'c'
|
|
265
|
+
expect(schedule.dirty).to eq(true)
|
|
266
|
+
end
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
describe '#update_hidden_params' do
|
|
270
|
+
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({ params: { 'a' => 'b' } }))
|
|
272
|
+
old_params = schedule.hidden_params
|
|
273
|
+
|
|
274
|
+
schedule.update_hidden_params({
|
|
275
|
+
'some_new_param' => '1-2-3-4',
|
|
276
|
+
'a' => 'c',
|
|
277
|
+
'x' => ''
|
|
278
|
+
})
|
|
279
|
+
expect(schedule.hidden_params.keys.to_set).to eq(%w(x a some_new_param).to_set)
|
|
280
|
+
expect(schedule.hidden_params['some_new_param']).to eq '1-2-3-4'
|
|
281
|
+
expect(schedule.hidden_params['a']).to eq 'c'
|
|
282
|
+
expect(schedule.dirty).to eq(true)
|
|
283
|
+
|
|
284
|
+
schedule.update_hidden_params({
|
|
285
|
+
'some_new_param' => '1-2-3-4',
|
|
286
|
+
'a' => 'd'
|
|
287
|
+
})
|
|
288
|
+
expect(schedule.hidden_params.keys.to_set).to eq(%w(x a some_new_param).to_set)
|
|
289
|
+
expect(schedule.hidden_params['some_new_param']).to eq '1-2-3-4'
|
|
290
|
+
expect(schedule.hidden_params['a']).to eq 'd'
|
|
291
|
+
expect(schedule.hidden_params['x']).to eq ''
|
|
292
|
+
expect(schedule.dirty).to eq(true)
|
|
344
293
|
end
|
|
345
294
|
end
|
|
346
295
|
|
|
347
296
|
describe '#process_id' do
|
|
348
297
|
it 'Should return process id as string' do
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
res.should be_a_kind_of(String)
|
|
355
|
-
ensure
|
|
356
|
-
schedule && schedule.delete
|
|
357
|
-
end
|
|
298
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
299
|
+
res = schedule.process_id
|
|
300
|
+
res.should_not be_nil
|
|
301
|
+
res.should_not be_empty
|
|
302
|
+
res.should be_a_kind_of(String)
|
|
358
303
|
end
|
|
359
304
|
end
|
|
360
305
|
|
|
@@ -362,83 +307,42 @@ describe GoodData::Schedule do
|
|
|
362
307
|
it 'Assigns the process_id and marks the object dirty' do
|
|
363
308
|
test_process_id = '1-2-3-4'
|
|
364
309
|
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
schedule && schedule.delete
|
|
372
|
-
end
|
|
310
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
311
|
+
schedule.process_id = test_process_id
|
|
312
|
+
expect(schedule.process_id).to eq(test_process_id)
|
|
313
|
+
expect(schedule.dirty).to eq(true)
|
|
314
|
+
expect(schedule.to_hash[:process_id]).to eq test_process_id
|
|
315
|
+
expect(schedule.to_update_payload['schedule']['params']['PROCESS_ID']).to eq test_process_id
|
|
373
316
|
end
|
|
374
317
|
end
|
|
375
318
|
|
|
376
|
-
describe '#save' do
|
|
377
|
-
it 'Should save a schedule' do
|
|
378
|
-
begin
|
|
379
|
-
schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
380
|
-
expect(@project.schedules(schedule.uri)).to eq schedule
|
|
381
|
-
expect(@project.schedules).to include(schedule)
|
|
382
|
-
ensure
|
|
383
|
-
schedule && schedule.delete
|
|
384
|
-
end
|
|
385
|
-
end
|
|
386
|
-
end
|
|
387
319
|
|
|
388
320
|
describe '#state' do
|
|
389
|
-
it 'Should return
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
ensure
|
|
397
|
-
schedule && schedule.delete
|
|
398
|
-
end
|
|
399
|
-
end
|
|
400
|
-
end
|
|
401
|
-
|
|
402
|
-
describe '#type' do
|
|
403
|
-
it 'Should return execution type as string' do
|
|
404
|
-
begin
|
|
405
|
-
schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
406
|
-
res = schedule.type
|
|
407
|
-
res.should_not be_nil
|
|
408
|
-
res.should_not be_empty
|
|
409
|
-
res.should be_a_kind_of(String)
|
|
410
|
-
ensure
|
|
411
|
-
schedule && schedule.delete
|
|
412
|
-
end
|
|
321
|
+
it 'Should return schedule state as string' do
|
|
322
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
323
|
+
res = schedule.state
|
|
324
|
+
expect(res).not_to be_nil
|
|
325
|
+
expect(res).to eq 'ENABLED'
|
|
326
|
+
expect(schedule.to_hash[:state]).to eq 'ENABLED'
|
|
327
|
+
expect(schedule.to_update_payload['schedule']['state']).to eq 'ENABLED'
|
|
413
328
|
end
|
|
414
|
-
end
|
|
415
|
-
|
|
416
|
-
describe '#type=' do
|
|
417
|
-
it 'Assigns the type the object dirty' do
|
|
418
|
-
test_type = 'TEST'
|
|
419
329
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
end
|
|
330
|
+
it 'Should return schedule state as string as provided' do
|
|
331
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data.merge(:state => 'DISABLED'))
|
|
332
|
+
res = schedule.state
|
|
333
|
+
expect(res).not_to be_nil
|
|
334
|
+
expect(res).to eq 'DISABLED'
|
|
335
|
+
expect(schedule.to_hash[:state]).to eq 'DISABLED'
|
|
336
|
+
expect(schedule.to_update_payload['schedule']['state']).to eq 'DISABLED'
|
|
428
337
|
end
|
|
429
338
|
end
|
|
430
339
|
|
|
431
340
|
describe '#timezone' do
|
|
432
341
|
it 'Should return timezone as string' do
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
res.should_not be_empty
|
|
438
|
-
res.should be_a_kind_of(String)
|
|
439
|
-
ensure
|
|
440
|
-
schedule && schedule.delete
|
|
441
|
-
end
|
|
342
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
343
|
+
res = schedule.timezone
|
|
344
|
+
expect(res).not_to be_nil
|
|
345
|
+
expect(res).to be_a_kind_of(String)
|
|
442
346
|
end
|
|
443
347
|
end
|
|
444
348
|
|
|
@@ -446,118 +350,69 @@ describe GoodData::Schedule do
|
|
|
446
350
|
it 'Assigns the timezone and marks the object dirty' do
|
|
447
351
|
test_timezone = 'PST'
|
|
448
352
|
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
expect(schedule.dirty).to eq(true)
|
|
454
|
-
ensure
|
|
455
|
-
schedule && schedule.delete
|
|
456
|
-
end
|
|
353
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
354
|
+
schedule.timezone = test_timezone
|
|
355
|
+
expect(schedule.timezone).to eq(test_timezone)
|
|
356
|
+
expect(schedule.dirty).to eq(true)
|
|
457
357
|
end
|
|
458
358
|
end
|
|
459
|
-
|
|
359
|
+
|
|
460
360
|
describe '#reschedule' do
|
|
361
|
+
it 'Should return reschedule nil if not provided' do
|
|
362
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
|
|
363
|
+
expect(schedule.reschedule).to eq nil
|
|
364
|
+
end
|
|
365
|
+
|
|
461
366
|
it 'Should return reschedule as integer' do
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
res.should_not be_nil
|
|
466
|
-
res.should be_a_kind_of(Integer)
|
|
467
|
-
ensure
|
|
468
|
-
schedule && schedule.delete
|
|
469
|
-
end
|
|
367
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
|
|
368
|
+
expect(schedule.reschedule).to eq @test_data_with_optional_param[:reschedule]
|
|
369
|
+
expect(schedule.reschedule).to be_a_kind_of(Integer)
|
|
470
370
|
end
|
|
471
371
|
end
|
|
472
372
|
|
|
473
373
|
describe '#reschedule=' do
|
|
474
374
|
it 'Assigns the reschedule and marks the object dirty' do
|
|
475
375
|
test_reschedule = 45
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
schedule && schedule.delete
|
|
484
|
-
end
|
|
485
|
-
end
|
|
486
|
-
end
|
|
487
|
-
|
|
488
|
-
describe '#executions' do
|
|
489
|
-
it 'Returns executions' do
|
|
490
|
-
begin
|
|
491
|
-
schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
|
|
492
|
-
expect(schedule.executions).to be_empty
|
|
493
|
-
schedule.execute
|
|
494
|
-
ensure
|
|
495
|
-
schedule && schedule.delete
|
|
496
|
-
end
|
|
376
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
|
|
377
|
+
expect(schedule.reschedule).to eq @test_data_with_optional_param[:reschedule]
|
|
378
|
+
schedule.reschedule = test_reschedule
|
|
379
|
+
expect(schedule.reschedule).to eq(test_reschedule)
|
|
380
|
+
expect(schedule.dirty).to eq(true)
|
|
381
|
+
expect(schedule.to_hash[:reschedule]).to eq test_reschedule
|
|
382
|
+
expect(schedule.to_update_payload['schedule']['reschedule']).to eq test_reschedule
|
|
497
383
|
end
|
|
498
384
|
end
|
|
499
385
|
|
|
500
386
|
describe '#name' do
|
|
501
|
-
it '
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
end
|
|
387
|
+
it 'Name is nil if not specified and not saved.' do
|
|
388
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
|
|
389
|
+
expect(schedule.name).to eq nil
|
|
390
|
+
expect(schedule.saved?).to eq false
|
|
391
|
+
schedule.name = 'MY NAME'
|
|
392
|
+
expect(schedule.name).to eq 'MY NAME'
|
|
508
393
|
end
|
|
509
394
|
|
|
510
395
|
it 'should be able to return your name if specified during creation.' do
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
expect(schedule.name).to eq 'My schedule name'
|
|
514
|
-
ensure
|
|
515
|
-
schedule && schedule.delete
|
|
516
|
-
end
|
|
517
|
-
end
|
|
518
|
-
end
|
|
519
|
-
|
|
520
|
-
describe '#trigger_id=' do
|
|
521
|
-
it 'should be able to set trigger_id of the schedule.' do
|
|
522
|
-
begin
|
|
523
|
-
process = @project.processes(ProcessHelper::PROCESS_ID)
|
|
524
|
-
schedule = process.create_schedule(@test_cron, @project_executable, @test_data_with_optional_param)
|
|
525
|
-
expect(schedule.dirty).to be_false
|
|
526
|
-
schedule.trigger_id = 'some_other_id'
|
|
527
|
-
expect(schedule.dirty).to be_true
|
|
528
|
-
ensure
|
|
529
|
-
schedule && schedule.delete
|
|
530
|
-
end
|
|
396
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param.merge(name: 'My schedule name'))
|
|
397
|
+
expect(schedule.name).to eq 'My schedule name'
|
|
531
398
|
end
|
|
532
399
|
end
|
|
533
400
|
|
|
534
401
|
describe '#trigger_id=' do
|
|
535
402
|
it 'should be able to set trigger_id of the schedule.' do
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
expect(schedule.dirty).to be_true
|
|
542
|
-
ensure
|
|
543
|
-
schedule && schedule.delete
|
|
544
|
-
end
|
|
403
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
|
|
404
|
+
expect(schedule.dirty).to be_truthy
|
|
405
|
+
schedule.trigger_id = 'some_other_id'
|
|
406
|
+
expect(schedule.dirty).to be_truthy
|
|
407
|
+
expect(schedule.trigger_id).to eq 'some_other_id'
|
|
545
408
|
end
|
|
546
409
|
end
|
|
547
410
|
|
|
548
411
|
describe '#name=' do
|
|
549
412
|
it 'should be able to set name of the schedule.' do
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
expect(schedule.name).to eq 'graph.grf'
|
|
554
|
-
schedule.name = 'MY NAME'
|
|
555
|
-
schedule.save
|
|
556
|
-
schedule2 = process.schedules.find { |s| s.obj_id == schedule.obj_id }
|
|
557
|
-
expect(schedule2.name).to eq 'MY NAME'
|
|
558
|
-
ensure
|
|
559
|
-
schedule && schedule.delete
|
|
560
|
-
end
|
|
413
|
+
schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
|
|
414
|
+
schedule.name = 'MY NAME'
|
|
415
|
+
expect(schedule.name).to eq 'MY NAME'
|
|
561
416
|
end
|
|
562
417
|
end
|
|
563
418
|
end
|