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,4 +1,9 @@
|
|
|
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.
|
|
6
|
+
|
|
2
7
|
require 'gooddata'
|
|
3
8
|
|
|
4
9
|
describe GoodData::Model::LabelBlueprintField do
|
|
@@ -1,4 +1,9 @@
|
|
|
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.
|
|
6
|
+
|
|
2
7
|
require 'gooddata'
|
|
3
8
|
|
|
4
9
|
describe GoodData::Model::ProjectBlueprint do
|
|
@@ -1,4 +1,9 @@
|
|
|
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.
|
|
6
|
+
|
|
2
7
|
require 'gooddata'
|
|
3
8
|
|
|
4
9
|
describe GoodData::Model::ReferenceBlueprintField 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 'pry'
|
|
4
8
|
require 'gooddata/models/model'
|
|
@@ -1,4 +1,9 @@
|
|
|
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.
|
|
6
|
+
|
|
2
7
|
require 'gooddata'
|
|
3
8
|
|
|
4
9
|
include GoodData::Model
|
|
@@ -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 'gooddata/models/domain'
|
|
4
8
|
require 'gooddata/helpers/csv_helper'
|
|
@@ -64,7 +68,7 @@ describe GoodData::Domain do
|
|
|
64
68
|
end
|
|
65
69
|
|
|
66
70
|
it 'Accepts pagination options - offset' do
|
|
67
|
-
|
|
71
|
+
skip('not that useful and takes very long')
|
|
68
72
|
users = @domain.users(offset: 1)
|
|
69
73
|
expect(users).to be_instance_of(Array)
|
|
70
74
|
users.each do |user|
|
|
@@ -79,11 +83,11 @@ describe GoodData::Domain do
|
|
|
79
83
|
res = @domain.create_users(list)
|
|
80
84
|
|
|
81
85
|
# no errors
|
|
82
|
-
expect(res.select { |x| x[:type] == :user_added_to_domain }.count).to eq res.count
|
|
86
|
+
expect(res.select { |x| x[:type] == :successful && x[:action] == :user_added_to_domain }.count).to eq res.count
|
|
83
87
|
|
|
84
88
|
expect(@domain.members?(list.map(&:login)).all?).to be_truthy
|
|
85
89
|
|
|
86
|
-
res.map { |r| r[:user] }.each do |r|
|
|
90
|
+
res.select { |x| x[:type] == :successful }.map { |r| r[:user] }.each do |r|
|
|
87
91
|
expect(r).to be_an_instance_of(GoodData::Profile)
|
|
88
92
|
r.delete
|
|
89
93
|
end
|
|
@@ -122,15 +126,13 @@ describe GoodData::Domain do
|
|
|
122
126
|
end
|
|
123
127
|
|
|
124
128
|
it 'updates properties of a profile' do
|
|
125
|
-
pending 'Add more users'
|
|
126
|
-
|
|
127
129
|
user = @domain.users
|
|
128
|
-
.reject { |u| u.login == ConnectionHelper::DEFAULT_USERNAME }.sample
|
|
130
|
+
.reject { |u| u.login == ConnectionHelper::DEFAULT_USERNAME }.take(20).sample
|
|
129
131
|
|
|
130
132
|
old_email = user.email
|
|
131
133
|
old_sso_provider = user.sso_provider || ''
|
|
132
134
|
user.email = 'john.doe@gooddata.com'
|
|
133
|
-
user.sso_provider = user.sso_provider.blank? ? user.sso_provider.reverse
|
|
135
|
+
user.sso_provider = user.sso_provider.blank? ? 'some_sso_provider' : user.sso_provider.reverse
|
|
134
136
|
@domain.update_user(user)
|
|
135
137
|
updated_user = @domain.find_user_by_login(user.login)
|
|
136
138
|
expect(updated_user.email).to eq 'john.doe@gooddata.com'
|
|
@@ -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::Execution 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 'gooddata/models/invitation'
|
|
4
8
|
|
|
@@ -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 'gooddata/models/domain'
|
|
4
8
|
require 'gooddata/models/membership'
|
|
@@ -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 'gooddata'
|
|
4
8
|
|
|
@@ -55,4 +59,46 @@ describe GoodData::MdObject do
|
|
|
55
59
|
expect(@instance.remove_tag('t').tag_set).to eq %w(a b cg r).to_set
|
|
56
60
|
end
|
|
57
61
|
end
|
|
62
|
+
|
|
63
|
+
describe '#deprecated' do
|
|
64
|
+
it 'returns true/false' do
|
|
65
|
+
expect(@instance.deprecated).to be_falsey
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
describe '#deprecated=' do
|
|
70
|
+
it 'sets deprecated flag' do
|
|
71
|
+
expect(@instance.deprecated).to be_falsey
|
|
72
|
+
@instance.deprecated = true
|
|
73
|
+
expect(@instance.deprecated).to be_truthy
|
|
74
|
+
@instance.deprecated = false
|
|
75
|
+
expect(@instance.deprecated).to be_falsey
|
|
76
|
+
@instance.deprecated = 0
|
|
77
|
+
expect(@instance.deprecated).to be_falsey
|
|
78
|
+
@instance.deprecated = 1
|
|
79
|
+
expect(@instance.deprecated).to be_truthy
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
describe '#unlisted' do
|
|
84
|
+
it 'returns true/false' do
|
|
85
|
+
expect(@instance.unlisted).to be_falsey
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
describe '#unlisted?' do
|
|
90
|
+
it 'returns true/false' do
|
|
91
|
+
expect(@instance.unlisted?).to be_falsey
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
describe '#unlisted=' do
|
|
96
|
+
it 'sets unlisted flag' do
|
|
97
|
+
expect(@instance.unlisted).to be_falsey
|
|
98
|
+
@instance.unlisted = true
|
|
99
|
+
expect(@instance.unlisted?).to be_truthy
|
|
100
|
+
@instance.unlisted = false
|
|
101
|
+
expect(@instance.unlisted?).to be_falsey
|
|
102
|
+
end
|
|
103
|
+
end
|
|
58
104
|
end
|
|
@@ -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 'gooddata/models/metadata/metric'
|
|
4
8
|
|
|
@@ -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 'pry'
|
|
4
8
|
require 'gooddata/models/model'
|
|
@@ -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 'gooddata/models/profile'
|
|
4
8
|
require 'gooddata/models/domain'
|
|
@@ -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
|
|
|
4
8
|
require 'gooddata/models/profile'
|
|
@@ -0,0 +1,127 @@
|
|
|
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/models/project_creator'
|
|
8
|
+
|
|
9
|
+
describe GoodData::Model::ProjectCreator do
|
|
10
|
+
|
|
11
|
+
it 'should pick correct update chunk based on priority' do
|
|
12
|
+
# Priority is
|
|
13
|
+
#
|
|
14
|
+
# [cascadeDrops, preserveData],
|
|
15
|
+
# [false, true],
|
|
16
|
+
# [false, false],
|
|
17
|
+
# [true, true],
|
|
18
|
+
# [true, false]
|
|
19
|
+
data = [
|
|
20
|
+
{ 'updateScript' => {
|
|
21
|
+
'cascadeDrops' => false,
|
|
22
|
+
'preserveData' => true,
|
|
23
|
+
'maqlDdlChunks' => "a"
|
|
24
|
+
}},
|
|
25
|
+
{ 'updateScript' => {
|
|
26
|
+
'cascadeDrops' => false,
|
|
27
|
+
'preserveData' => false,
|
|
28
|
+
'maqlDdlChunks' => "b"
|
|
29
|
+
}}
|
|
30
|
+
]
|
|
31
|
+
chunk = GoodData::Model::ProjectCreator.pick_correct_chunks(data)
|
|
32
|
+
chunk.should == {
|
|
33
|
+
'updateScript' => {
|
|
34
|
+
'cascadeDrops' => false,
|
|
35
|
+
'preserveData' => true,
|
|
36
|
+
'maqlDdlChunks' => "a"
|
|
37
|
+
}}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
data = [
|
|
41
|
+
{ 'updateScript' => {
|
|
42
|
+
'cascadeDrops' => true,
|
|
43
|
+
'preserveData' => true,
|
|
44
|
+
'maqlDdlChunks' => "a"
|
|
45
|
+
}},
|
|
46
|
+
{ 'updateScript' => {
|
|
47
|
+
'cascadeDrops' => true,
|
|
48
|
+
'preserveData' => false,
|
|
49
|
+
'maqlDdlChunks' => "b"
|
|
50
|
+
}}
|
|
51
|
+
]
|
|
52
|
+
chunk = GoodData::Model::ProjectCreator.pick_correct_chunks(data)
|
|
53
|
+
chunk.should == {
|
|
54
|
+
'updateScript' => {
|
|
55
|
+
'cascadeDrops' => true,
|
|
56
|
+
'preserveData' => true,
|
|
57
|
+
'maqlDdlChunks' => "a"
|
|
58
|
+
}}
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
data = [
|
|
62
|
+
{ 'updateScript' => {
|
|
63
|
+
'cascadeDrops' => true,
|
|
64
|
+
'preserveData' => false,
|
|
65
|
+
'maqlDdlChunks' => "a"
|
|
66
|
+
}},
|
|
67
|
+
{ 'updateScript' => {
|
|
68
|
+
'cascadeDrops' => true,
|
|
69
|
+
'preserveData' => true,
|
|
70
|
+
'maqlDdlChunks' => "b"
|
|
71
|
+
}}
|
|
72
|
+
]
|
|
73
|
+
chunk = GoodData::Model::ProjectCreator.pick_correct_chunks(data)
|
|
74
|
+
chunk.should == {
|
|
75
|
+
'updateScript' => {
|
|
76
|
+
'cascadeDrops' => true,
|
|
77
|
+
'preserveData' => true,
|
|
78
|
+
'maqlDdlChunks' => "b"
|
|
79
|
+
}}
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
it 'should pick correct update chunk based on your preference if it is possible to satisfy it' do
|
|
83
|
+
data = [
|
|
84
|
+
{ 'updateScript' => {
|
|
85
|
+
'cascadeDrops' => true,
|
|
86
|
+
'preserveData' => false,
|
|
87
|
+
'maqlDdlChunks' => "a"
|
|
88
|
+
}},
|
|
89
|
+
{ 'updateScript' => {
|
|
90
|
+
'cascadeDrops' => true,
|
|
91
|
+
'preserveData' => true,
|
|
92
|
+
'maqlDdlChunks' => "b"
|
|
93
|
+
}}
|
|
94
|
+
]
|
|
95
|
+
|
|
96
|
+
chunk = GoodData::Model::ProjectCreator.pick_correct_chunks(data, preference: { cascade_drops: true, preserve_data: false})
|
|
97
|
+
chunk.should == {
|
|
98
|
+
'updateScript' => {
|
|
99
|
+
'cascadeDrops' => true,
|
|
100
|
+
'preserveData' => false,
|
|
101
|
+
'maqlDdlChunks' => "a"
|
|
102
|
+
}}
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
it 'should pick correct update chunk based on your preference if it is not possible to satisfy it' do
|
|
106
|
+
data = [
|
|
107
|
+
{ 'updateScript' => {
|
|
108
|
+
'cascadeDrops' => true,
|
|
109
|
+
'preserveData' => true,
|
|
110
|
+
'maqlDdlChunks' => "a"
|
|
111
|
+
}},
|
|
112
|
+
{ 'updateScript' => {
|
|
113
|
+
'cascadeDrops' => false,
|
|
114
|
+
'preserveData' => true,
|
|
115
|
+
'maqlDdlChunks' => "b"
|
|
116
|
+
}}
|
|
117
|
+
]
|
|
118
|
+
|
|
119
|
+
chunk = GoodData::Model::ProjectCreator.pick_correct_chunks(data, preference: { cascade_drops: true, preserve_data: false})
|
|
120
|
+
chunk.should == {
|
|
121
|
+
'updateScript' => {
|
|
122
|
+
'cascadeDrops' => false,
|
|
123
|
+
'preserveData' => true,
|
|
124
|
+
'maqlDdlChunks' => "b"
|
|
125
|
+
}}
|
|
126
|
+
end
|
|
127
|
+
end
|
|
@@ -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 'gooddata/models/project'
|
|
4
8
|
require 'gooddata/models/project_role'
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
require 'gooddata/models/report_data_result'
|
|
2
|
+
|
|
3
|
+
describe GoodData::ReportDataResult do
|
|
4
|
+
|
|
5
|
+
before(:each) do
|
|
6
|
+
data = JSON.parse(File.read('./spec/data/reports/report_1.json'))
|
|
7
|
+
@result = GoodData::ReportDataResult.from_xtab(data)
|
|
8
|
+
@result2 = GoodData::ReportDataResult.from_xtab(data)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it 'should compute columns' do
|
|
12
|
+
expect(@result.to_a).to eq [[nil, "kolin", "praha", "varsava"],
|
|
13
|
+
[nil, "sum of Age", "sum of Age", "sum of Age"],
|
|
14
|
+
["jirka", 25, nil, nil],
|
|
15
|
+
["petr", nil, nil, 15],
|
|
16
|
+
["tomas", nil, 25, nil]]
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'should compute columns' do
|
|
20
|
+
expect(@result.left_headers).to eq [["jirka"],
|
|
21
|
+
["petr"],
|
|
22
|
+
["tomas"]]
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'should compute columns' do
|
|
26
|
+
expect(@result.top_headers).to eq [["kolin", "praha", "varsava"],
|
|
27
|
+
["sum of Age", "sum of Age", "sum of Age"]]
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe '#slice' do
|
|
31
|
+
it 'slice on zeroes should be equal to original' do
|
|
32
|
+
expect(@result.slice(0, 0)).to eq @result
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it 'slice on data should return just data' do
|
|
36
|
+
expect(@result.slice(2, 1).to_a).to eq [[25, nil, nil],
|
|
37
|
+
[nil, nil, 15],
|
|
38
|
+
[nil, 25, nil]]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'should return data result with correct size' do
|
|
42
|
+
expect(@result.slice(2, 1).size).to eq [3, 3]
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it 'should return data result with correct headers' do
|
|
46
|
+
expect(@result.left_headers).to eq [["jirka"], ["petr"], ["tomas"]]
|
|
47
|
+
expect(@result.top_headers).to eq [["kolin", "praha", "varsava"],
|
|
48
|
+
["sum of Age", "sum of Age", "sum of Age"]]
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
describe '#without_left_headers' do
|
|
54
|
+
it 'should return data result without left headers' do
|
|
55
|
+
expect(@result.without_left_headers.to_a).to eq [["kolin", "praha", "varsava"],
|
|
56
|
+
["sum of Age", "sum of Age", "sum of Age"],
|
|
57
|
+
[25, nil, nil],
|
|
58
|
+
[nil, nil, 15],
|
|
59
|
+
[nil, 25, nil]]
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it 'should return correct size' do
|
|
63
|
+
expect(@result.without_left_headers.size).to eq [5, 3]
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it 'should return correct left headers' do
|
|
67
|
+
expect(@result.without_top_headers.top_headers).to eq nil
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
describe '#without_top_headers' do
|
|
72
|
+
it 'should return data result without left headers' do
|
|
73
|
+
expect(@result.without_top_headers.to_a).to eq [["jirka", 25, nil, nil],
|
|
74
|
+
["petr", nil, nil, 15],
|
|
75
|
+
["tomas", nil, 25, nil]]
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
it 'should return correct size' do
|
|
79
|
+
expect(@result.without_top_headers.size).to eq [3, 4]
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
it 'should return correct left headers' do
|
|
83
|
+
expect(@result.without_top_headers.left_headers).to eq [["jirka"],
|
|
84
|
+
["petr"],
|
|
85
|
+
["tomas"]]
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
it 'should return correct top headers' do
|
|
89
|
+
expect(@result.without_top_headers.top_headers).to eq nil
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
it 'should work with left attribute reports' do
|
|
94
|
+
data = JSON.parse(File.read('./spec/data/reports/left_attr_report.json'))
|
|
95
|
+
result = GoodData::ReportDataResult.from_xtab(data)
|
|
96
|
+
expect(result.left_headers).to eq [["jirka"], ["petr"], ["tomas"]]
|
|
97
|
+
expect(result.size).to eq [4, 2]
|
|
98
|
+
expect(result.data_size).to eq [3, 1]
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
it 'should work with left attribute reports' do
|
|
102
|
+
data = JSON.parse(File.read('./spec/data/reports/top_attr_report.json'))
|
|
103
|
+
result = GoodData::ReportDataResult.from_xtab(data)
|
|
104
|
+
expect(result.size).to eq [2, 4]
|
|
105
|
+
expect(result.data_size).to eq [1, 3]
|
|
106
|
+
expect(result.left_headers).to eq [["Values"]]
|
|
107
|
+
expect(result.top_headers).to eq [["jirka", "petr", "tomas"]]
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
it 'should fail when comparing two different reports' do
|
|
111
|
+
data = JSON.parse(File.read('./spec/data/reports/left_attr_report.json'))
|
|
112
|
+
a = GoodData::ReportDataResult.from_xtab(data)
|
|
113
|
+
data = JSON.parse(File.read('./spec/data/reports/top_attr_report.json'))
|
|
114
|
+
b = GoodData::ReportDataResult.from_xtab(data)
|
|
115
|
+
expect(a == b).to be_falsey
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
describe '#size' do
|
|
119
|
+
it 'should compute columns' do
|
|
120
|
+
expect(@result.size).to eq [5, 4]
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
it 'should compute columns' do
|
|
124
|
+
expect(@result.size).to eq @result2.size
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
describe '#data' do
|
|
129
|
+
it 'should return just data portion' do
|
|
130
|
+
expect(@result.data.is_a?(GoodData::ReportDataResult)).to be_truthy
|
|
131
|
+
expect(@result.data.to_a).to eq [[25, nil, nil],
|
|
132
|
+
[nil, nil, 15],
|
|
133
|
+
[nil, 25, nil]]
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
describe '#[]' do
|
|
138
|
+
it 'should return correct line' do
|
|
139
|
+
expect(@result[2]).to eq ['jirka', 25, nil, nil]
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
describe '#column' do
|
|
144
|
+
it 'should return correct line' do
|
|
145
|
+
expect(@result.column(2)).to eq ["praha", "sum of Age", nil, nil, 25]
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
describe '#map' do
|
|
150
|
+
it 'should iterate over rows' do
|
|
151
|
+
expect(@result.each.map {|row| [1]}).to eq [[1], [1], [1], [1], [1]]
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
describe '#transpose' do
|
|
156
|
+
it 'should transpose' do
|
|
157
|
+
expect(@result.transpose.to_a).to eq @result.to_a.transpose
|
|
158
|
+
expect(@result.transpose.to_a).to eq [[nil, nil, "jirka", "petr", "tomas"],
|
|
159
|
+
["kolin", "sum of Age", 25, nil, nil],
|
|
160
|
+
["praha", "sum of Age", nil, nil, 25],
|
|
161
|
+
["varsava", "sum of Age", nil, 15, nil]]
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
describe '#diff' do
|
|
166
|
+
it 'should support diffing' do
|
|
167
|
+
data = JSON.parse(File.read('./spec/data/reports/left_attr_report.json'))
|
|
168
|
+
a = GoodData::ReportDataResult.from_xtab(data)
|
|
169
|
+
c = GoodData::ReportDataResult.from_xtab(data)
|
|
170
|
+
data = JSON.parse(File.read('./spec/data/reports/top_attr_report.json'))
|
|
171
|
+
b = GoodData::ReportDataResult.from_xtab(data)
|
|
172
|
+
expect {a - b}.to raise_exception
|
|
173
|
+
expect(a - c).to be_empty
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
describe 'one line reports' do
|
|
178
|
+
it 'should work with one line metric. No attribtues.' do
|
|
179
|
+
data = JSON.parse(File.read('./spec/data/reports/metric_only_one_line.json'))
|
|
180
|
+
a = GoodData::ReportDataResult.from_xtab(data)
|
|
181
|
+
expect(a.to_a).to eq [[nil, "sum of Age"],
|
|
182
|
+
["sum of Age", 65]]
|
|
183
|
+
|
|
184
|
+
expect(a.data.to_a).to eq [[65]]
|
|
185
|
+
expect(a.left_headers).to eq [["sum of Age"]]
|
|
186
|
+
expect(a.top_headers).to eq [["sum of Age"]]
|
|
187
|
+
|
|
188
|
+
expect(a.without_top_headers.to_a).to eq [["sum of Age", 65]]
|
|
189
|
+
expect(a.without_left_headers.to_a).to eq [["sum of Age"], [65]]
|
|
190
|
+
end
|
|
191
|
+
end
|
|
192
|
+
end
|
|
193
|
+
|