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
data/spec/helpers/spec_helper.rb
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
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.
|
|
2
6
|
|
|
3
7
|
module GoodData::Helpers
|
|
4
8
|
module SpecHelper
|
|
@@ -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'
|
|
2
8
|
|
|
3
9
|
describe 'Create project using GoodData client', :constraint => 'slow' do
|
|
@@ -13,11 +19,12 @@ describe 'Create project using GoodData client', :constraint => 'slow' do
|
|
|
13
19
|
end
|
|
14
20
|
|
|
15
21
|
it 'Should create project using GoodData::Rest::Client#create_project' do
|
|
22
|
+
|
|
16
23
|
data = [
|
|
17
|
-
[
|
|
18
|
-
[
|
|
19
|
-
[
|
|
20
|
-
[
|
|
24
|
+
["repo_id", "repo_name"],
|
|
25
|
+
[1, "goodot"],
|
|
26
|
+
[2, "bam"],
|
|
27
|
+
[3, "infra"]]
|
|
21
28
|
@project.upload(data, @blueprint, 'dataset.repos')
|
|
22
29
|
|
|
23
30
|
data = [
|
|
@@ -36,20 +43,19 @@ describe 'Create project using GoodData client', :constraint => 'slow' do
|
|
|
36
43
|
end
|
|
37
44
|
|
|
38
45
|
it "should be able to add anchor's labels" do
|
|
39
|
-
skip('failing on server need to clear out with MSF')
|
|
40
46
|
bp = @project.blueprint
|
|
41
47
|
bp.datasets('dataset.commits').change do |d|
|
|
42
48
|
d.add_label('label.commits.factsof.id',
|
|
43
49
|
reference: 'attr.commits.factsof',
|
|
44
50
|
name: 'anchor_label')
|
|
45
51
|
end
|
|
46
|
-
@project.update_from_blueprint(bp)
|
|
52
|
+
@project.update_from_blueprint(bp, preference: { cascade_drops: false, preserve_data: false})
|
|
47
53
|
data = [
|
|
48
|
-
['
|
|
49
|
-
['111', 1,
|
|
50
|
-
['222', 2,
|
|
51
|
-
['333', 3,
|
|
52
|
-
@project.upload(data,
|
|
54
|
+
['label.commits.factsof.id', 'fact.commits.lines_changed', 'committed_on', 'dataset.devs', 'dataset.repos'],
|
|
55
|
+
['111', 1, '01/01/2011', '1', '1'],
|
|
56
|
+
['222', 2, '01/01/2011', '2', '2'],
|
|
57
|
+
['333', 3, '01/01/2011', '3', '3']]
|
|
58
|
+
@project.upload(data, bp, 'dataset.commits')
|
|
53
59
|
m = @project.facts.first.create_metric
|
|
54
60
|
@project.compute_report(top: [m], left: ['label.commits.factsof.id'])
|
|
55
61
|
end
|
|
@@ -69,8 +75,9 @@ describe 'Create project using GoodData client', :constraint => 'slow' do
|
|
|
69
75
|
report = @project.create_report(title: 'Test report', top: [m], left: ['label.devs.dev_id.email'])
|
|
70
76
|
#both compute
|
|
71
77
|
expect(m.execute).to eq 6
|
|
72
|
-
expect(report.execute.to_a).to eq [['jirka@gmail.com',
|
|
73
|
-
|
|
78
|
+
expect(report.execute.without_top_headers.to_a).to eq [['jirka@gmail.com', 3],
|
|
79
|
+
['petr@gmail.com', 2],
|
|
80
|
+
['tomas@gmail.com', 1]]
|
|
74
81
|
|
|
75
82
|
# We move attribute
|
|
76
83
|
@blueprint.move!('some_attr_id', 'dataset.repos', 'dataset.commits')
|
|
@@ -78,16 +85,17 @@ describe 'Create project using GoodData client', :constraint => 'slow' do
|
|
|
78
85
|
|
|
79
86
|
# load new data
|
|
80
87
|
data = [
|
|
81
|
-
['lines_changed', 'committed_on', 'dev_id', 'repo_id', '
|
|
82
|
-
[1, '01/01/2011', '1', '1', '
|
|
83
|
-
[2, '01/01/2011', '2', '2', '
|
|
84
|
-
[3, '01/01/2011', '3', '3', '
|
|
88
|
+
['lines_changed', 'committed_on', 'dev_id', 'repo_id', 'repo_name'],
|
|
89
|
+
[1, '01/01/2011', '1', '1', 'goodot'],
|
|
90
|
+
[2, '01/01/2011', '2', '2', 'goodot'],
|
|
91
|
+
[3, '01/01/2011', '3', '3', 'infra']]
|
|
85
92
|
@project.upload(data, @blueprint, 'dataset.commits')
|
|
86
|
-
|
|
93
|
+
|
|
87
94
|
# both still compute
|
|
88
95
|
# since we did not change the grain the results are the same
|
|
89
96
|
expect(m.execute).to eq 6
|
|
90
|
-
expect(report.execute.to_a).to eq [[
|
|
91
|
-
|
|
97
|
+
expect(report.execute.without_top_headers.to_a).to eq [["jirka@gmail.com", 3],
|
|
98
|
+
["petr@gmail.com", 2],
|
|
99
|
+
["tomas@gmail.com", 1]]
|
|
92
100
|
end
|
|
93
101
|
end
|
|
@@ -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/commands/datawarehouse'
|
|
2
8
|
|
|
3
9
|
describe GoodData::Command::DataWarehouse do
|
|
@@ -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'
|
|
2
8
|
require 'gooddata/commands/project'
|
|
3
9
|
|
|
@@ -7,10 +13,6 @@ describe GoodData::Command::Project, :constraint => 'slow' do
|
|
|
7
13
|
|
|
8
14
|
@blueprint = GoodData::Model::ProjectBlueprint.from_json("./spec/data/blueprints/test_project_model_spec.json")
|
|
9
15
|
@module_blueprint = GoodData::Model::ProjectBlueprint.from_json("./spec/data/blueprints/additional_dataset_module.json")
|
|
10
|
-
|
|
11
|
-
GoodData.logging_on
|
|
12
|
-
GoodData.logger.level = Logger::DEBUG
|
|
13
|
-
|
|
14
16
|
@project = GoodData::Command::Project.build({:spec => @blueprint, :token => ConnectionHelper::GD_PROJECT_TOKEN, environment: ProjectHelper::ENVIRONMENT, :client => @client})
|
|
15
17
|
end
|
|
16
18
|
|
|
@@ -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'
|
|
2
8
|
|
|
3
9
|
describe "Spin a project from template", :constraint => 'slow' do
|
|
@@ -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'
|
|
2
8
|
|
|
3
9
|
describe 'Create project using GoodData client', :constraint => 'slow' do
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
|
|
7
|
+
require 'gooddata'
|
|
8
|
+
|
|
9
|
+
describe "Full project implementation", :constraint => 'slow' do
|
|
10
|
+
before(:all) do
|
|
11
|
+
@client = ConnectionHelper::create_default_connection
|
|
12
|
+
@blueprint = GoodData::Model::ProjectBlueprint.build("my_bp") do |p|
|
|
13
|
+
p.add_dataset("dataset.repos") do |d|
|
|
14
|
+
d.add_anchor("attr.repository")
|
|
15
|
+
d.add_label('label.repository.name', reference: 'attr.repository')
|
|
16
|
+
d.add_attribute("attr.attribute1", title: 'Some attribute')
|
|
17
|
+
d.add_label('label.attribute1.name', reference: 'attr.attribute1')
|
|
18
|
+
d.add_fact('some_numbers', gd_data_type: 'INT')
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
@project = @client.create_project_from_blueprint(@blueprint, token: ConnectionHelper::GD_PROJECT_TOKEN, environment: ProjectHelper::ENVIRONMENT)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after(:all) do
|
|
26
|
+
@project.delete unless @project.nil?
|
|
27
|
+
@client.disconnect
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it 'should upload data using local blueprint' do
|
|
31
|
+
devs_data = [
|
|
32
|
+
["label.repository.name", "label.attribute1.name", "some_numbers"],
|
|
33
|
+
[1, "tomas@gooddata.com", 10],
|
|
34
|
+
[2, "petr@gooddata.com", 20],
|
|
35
|
+
[3, "jirka@gooddata.com", 30]]
|
|
36
|
+
@project.upload(devs_data, @blueprint, 'dataset.repos')
|
|
37
|
+
vals = @project.labels('label.repository.name').values.to_a.map {|l| l[:value]}
|
|
38
|
+
expect(vals).to eq ["1", "2", "3"]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'should upload the data when you deprecate attribute with remote blueprint' do
|
|
42
|
+
l = @project.labels('label.repository.name')
|
|
43
|
+
l.deprecated = true
|
|
44
|
+
l.save
|
|
45
|
+
b = @project.labels(l.identifier)
|
|
46
|
+
expect(b.deprecated?).to be_truthy
|
|
47
|
+
|
|
48
|
+
devs_data = [
|
|
49
|
+
["label.repository.name", "label.attribute1.name", "some_numbers"],
|
|
50
|
+
[1, "tomas@gooddata.com", 10],
|
|
51
|
+
[2, "petr@gooddata.com", 20],
|
|
52
|
+
[3, "jirka@gooddata.com", 30],
|
|
53
|
+
[4, "jindrich@gooddata.com", 40]]
|
|
54
|
+
@project.upload(devs_data, @project.blueprint, 'dataset.repos')
|
|
55
|
+
vals = @project.labels('label.repository.name').values.to_a.map {|l| l[:value]}
|
|
56
|
+
expect(vals).to eq ["1", "2", "3", "4"]
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -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'
|
|
2
8
|
|
|
3
9
|
describe "Full process and schedule exercise", :constraint => 'slow' do
|
|
@@ -84,6 +90,7 @@ describe "Full process and schedule exercise", :constraint => 'slow' do
|
|
|
84
90
|
schedule = @process.create_schedule(schedule_first.obj_id, @process.executables.first)
|
|
85
91
|
res = @process.schedules
|
|
86
92
|
expect(res.count).to eq 2
|
|
93
|
+
expect(schedule.after).to eq schedule_first
|
|
87
94
|
expect(@process.schedules.map(&:uri)).to include(schedule_first.uri, schedule.uri)
|
|
88
95
|
ensure
|
|
89
96
|
schedule && schedule.delete
|
|
@@ -114,11 +121,13 @@ describe "Full process and schedule exercise", :constraint => 'slow' do
|
|
|
114
121
|
it "should be possible to execute schedule" do
|
|
115
122
|
begin
|
|
116
123
|
schedule = @process.create_schedule('0 15 27 7 *', @process.executables.first)
|
|
124
|
+
executions_count = schedule.executions.count
|
|
117
125
|
result = schedule.execute
|
|
118
126
|
expect(result.status).to eq :ok
|
|
119
127
|
log = result.log
|
|
120
128
|
expect(log.index('Hello Ruby executors')).not_to eq nil
|
|
121
129
|
expect(log.index('Hello Ruby from the deep')).not_to eq nil
|
|
130
|
+
expect(executions_count + 1).to eq schedule.executions.count
|
|
122
131
|
ensure
|
|
123
132
|
schedule && schedule.delete
|
|
124
133
|
end
|
|
@@ -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'
|
|
2
8
|
|
|
3
9
|
describe "Full project implementation", :constraint => 'slow' do
|
|
@@ -193,11 +199,11 @@ describe "Full project implementation", :constraint => 'slow' do
|
|
|
193
199
|
metric = @project.create_metric("SELECT SUM(#\"#{f.title}\")", :title => "My metric")
|
|
194
200
|
metric.save
|
|
195
201
|
result = @project.compute_report(:top => [metric], :left => ['label.devs.dev_id.email'])
|
|
196
|
-
expect(result[
|
|
202
|
+
expect(result[2][1]).to eq 3
|
|
197
203
|
expect(result.include_row?(["jirka@gooddata.com", 5])).to be true
|
|
198
204
|
|
|
199
205
|
result2 = @project.compute_report(:top => [metric], :left => ['label.devs.dev_id.email'])
|
|
200
|
-
expect(result2[
|
|
206
|
+
expect(result2[2][1]).to eq 3
|
|
201
207
|
expect(result2.include_row?(["jirka@gooddata.com", 5])).to eq true
|
|
202
208
|
expect(result2).to eq result
|
|
203
209
|
end
|
|
@@ -254,6 +260,32 @@ describe "Full project implementation", :constraint => 'slow' do
|
|
|
254
260
|
m.delete
|
|
255
261
|
end
|
|
256
262
|
|
|
263
|
+
it "should be able to update report definition (update existing)" do
|
|
264
|
+
m = @project.metrics.first
|
|
265
|
+
r = @project.create_report(top: [m], title: 'xy')
|
|
266
|
+
|
|
267
|
+
latest_uri = r.definition_uri
|
|
268
|
+
new_def = r.update_definition do |definition|
|
|
269
|
+
definition.title = "Test TITLE: #{DateTime.now.strftime}"
|
|
270
|
+
end
|
|
271
|
+
|
|
272
|
+
expect(r.definition_uri).to eq new_def.uri
|
|
273
|
+
expect(r.definition_uri).to_not eq latest_uri
|
|
274
|
+
end
|
|
275
|
+
|
|
276
|
+
it "should be able to update report definition (create new)" do
|
|
277
|
+
m = @project.metrics.first
|
|
278
|
+
r = @project.create_report(top: [m], title: 'xy')
|
|
279
|
+
|
|
280
|
+
latest_uri = r.definition_uri
|
|
281
|
+
new_def = r.update_definition(:new_definition => false) do |definition|
|
|
282
|
+
definition.title = "Test TITLE: #{DateTime.now.strftime}"
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
expect(r.definition_uri).to eq new_def.uri
|
|
286
|
+
expect(r.definition_uri).to eq latest_uri
|
|
287
|
+
end
|
|
288
|
+
|
|
257
289
|
it "should be possible to get all metrics" do
|
|
258
290
|
metrics1 = @project.metrics
|
|
259
291
|
expect(metrics1.count).to be >= 0
|
|
@@ -472,12 +504,34 @@ describe "Full project implementation", :constraint => 'slow' do
|
|
|
472
504
|
expect(m_cloned.execute).to eq cloned.execute
|
|
473
505
|
end
|
|
474
506
|
|
|
475
|
-
it "should be able to clone a project" do
|
|
476
|
-
title = 'My new clone
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
507
|
+
it "should be able to clone a project and transfer the data" do
|
|
508
|
+
title = 'My new clone project'
|
|
509
|
+
begin
|
|
510
|
+
cloned_project = @project.clone(title: title, auth_token: ConnectionHelper::GD_PROJECT_TOKEN, environment: ProjectHelper::ENVIRONMENT)
|
|
511
|
+
expect(cloned_project.title).to eq title
|
|
512
|
+
expect(cloned_project.facts.first.create_metric.execute).to eq 9
|
|
513
|
+
m = @project.facts.first.create_metric
|
|
514
|
+
m.identifier = 'metric.cloned_metric'
|
|
515
|
+
m.save
|
|
516
|
+
|
|
517
|
+
result = @project.transfer_objects(m, project: cloned_project)
|
|
518
|
+
expect(result).to be_truthy
|
|
519
|
+
cloned_metric = cloned_project.metrics('metric.cloned_metric')
|
|
520
|
+
expect(cloned_metric).not_to be_nil
|
|
521
|
+
|
|
522
|
+
cloned_metric.delete
|
|
523
|
+
cloned_metric = cloned_project.metrics('metric.cloned_metric')
|
|
524
|
+
expect(cloned_metric).to be_nil
|
|
525
|
+
|
|
526
|
+
result = @project.transfer_objects(m, project: [cloned_project], batch_size: 1)
|
|
527
|
+
expect(result).to eq [{project: cloned_project, result: true}]
|
|
528
|
+
|
|
529
|
+
# should work with pids
|
|
530
|
+
result = @project.transfer_objects(m, project: [cloned_project.pid], batch_size: 1)
|
|
531
|
+
expect(result.first[:result]).to be_truthy
|
|
532
|
+
ensure
|
|
533
|
+
cloned_project.delete
|
|
534
|
+
end
|
|
481
535
|
end
|
|
482
536
|
|
|
483
537
|
it "should be able to clone a project without data" do
|
|
@@ -506,7 +560,7 @@ describe "Full project implementation", :constraint => 'slow' do
|
|
|
506
560
|
expect { def_uris.each {|uri| @client.get(uri)} }.to raise_error(RestClient::ResourceNotFound)
|
|
507
561
|
end
|
|
508
562
|
|
|
509
|
-
it 'should be
|
|
563
|
+
it 'should be possible to delete data from a dataset' do
|
|
510
564
|
dataset = @project.datasets('dataset.devs')
|
|
511
565
|
expect(dataset.attributes.first.create_metric.execute).to be > 0
|
|
512
566
|
dataset.delete_data
|
|
@@ -1,8 +1,13 @@
|
|
|
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'
|
|
2
8
|
|
|
3
|
-
describe "
|
|
9
|
+
describe "Over-To data permissions implementation", :constraint => 'slow' do
|
|
4
10
|
before(:all) do
|
|
5
|
-
GoodData.logging_http_on
|
|
6
11
|
@spec = JSON.parse(File.read("./spec/data/blueprints/m_n_model.json"), :symbolize_names => true)
|
|
7
12
|
@client = ConnectionHelper::create_default_connection
|
|
8
13
|
@blueprint = GoodData::Model::ProjectBlueprint.new(@spec)
|
|
@@ -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'
|
|
2
8
|
|
|
3
9
|
describe "Object export between projects", :constraint => 'slow' do
|
|
@@ -1,4 +1,8 @@
|
|
|
1
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.
|
|
2
6
|
|
|
3
7
|
require 'pmap'
|
|
4
8
|
require 'gooddata'
|
|
@@ -27,7 +31,8 @@ describe GoodData::Project, :constraint => 'slow' do
|
|
|
27
31
|
user = ProjectHelper.create_random_user(@client)
|
|
28
32
|
@domain.create_users([user])
|
|
29
33
|
res = @project.add_user(user, 'Admin', domain: @domain)
|
|
30
|
-
|
|
34
|
+
login = GoodData::Helpers.last_uri_part(res['projectUsersUpdateResult']['successful'].first)
|
|
35
|
+
expect(@project.member?(login)).to be_truthy
|
|
31
36
|
end
|
|
32
37
|
end
|
|
33
38
|
|
|
@@ -39,8 +44,9 @@ describe GoodData::Project, :constraint => 'slow' do
|
|
|
39
44
|
role: 'Admin'
|
|
40
45
|
}
|
|
41
46
|
end
|
|
47
|
+
|
|
42
48
|
res = @project.add_users(users)
|
|
43
|
-
expect(res.
|
|
49
|
+
expect(res.select { |r| r[:type] == :failed }.count).to eq users.length
|
|
44
50
|
end
|
|
45
51
|
|
|
46
52
|
it 'Adding users with domain should pass and users should be added to domain' do
|
|
@@ -52,7 +58,7 @@ describe GoodData::Project, :constraint => 'slow' do
|
|
|
52
58
|
end
|
|
53
59
|
@domain.create_users(users.map {|u| u[:user]})
|
|
54
60
|
res = @project.add_users(users, domain: @domain)
|
|
55
|
-
links = res.map {|i| i[:
|
|
61
|
+
links = res.select { |r| r[:type] == :successful }.map { |i| GoodData::Helpers.last_uri_part(i[:user]) }
|
|
56
62
|
expect(@project.members?(links).all?).to be_truthy
|
|
57
63
|
end
|
|
58
64
|
end
|
|
@@ -61,7 +67,7 @@ describe GoodData::Project, :constraint => 'slow' do
|
|
|
61
67
|
it "Updates user's name and surname and removes the users" do
|
|
62
68
|
users = (1..2).to_a.map { |x| ProjectHelper.create_random_user(@client) }
|
|
63
69
|
@domain.create_users(users)
|
|
64
|
-
@project.import_users(users, domain: @domain, whitelists: [/gem_tester@gooddata.com/])
|
|
70
|
+
result = @project.import_users(users, domain: @domain, whitelists: [/gem_tester@gooddata.com/])
|
|
65
71
|
expect(@domain.members?(users)).to be_truthy
|
|
66
72
|
expect(@project.members?(users)).to be_truthy
|
|
67
73
|
expect(@project.members.count).to eq 3
|
|
@@ -173,7 +179,7 @@ describe GoodData::Project, :constraint => 'slow' do
|
|
|
173
179
|
|
|
174
180
|
# set the roles
|
|
175
181
|
res = @project.set_users_roles(list)
|
|
176
|
-
expect(res.length).to equal(list.length)
|
|
182
|
+
expect(res.select { |r| r[:type] == :successful }.length).to equal(list.length)
|
|
177
183
|
expect(logins.map {|l| users.find {|u| u.login == l}}.pmap {|u| u.role.title}).to eq roles.flatten
|
|
178
184
|
end
|
|
179
185
|
|
|
@@ -197,7 +203,7 @@ describe GoodData::Project, :constraint => 'slow' do
|
|
|
197
203
|
end
|
|
198
204
|
|
|
199
205
|
res = @project.set_users_roles(list)
|
|
200
|
-
expect(res.length).to equal(list.length)
|
|
206
|
+
expect(res.select { |r| r[:type] == :successful }.length).to equal(list.length)
|
|
201
207
|
expect(logins.map {|l| users.find {|u| u.login == l}}.pmap {|u| u.role.title}).to eq roles.flatten
|
|
202
208
|
|
|
203
209
|
end
|