gooddata 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (285) hide show
  1. checksums.yaml +4 -4
  2. data/.document +0 -0
  3. data/.flayignore +2 -0
  4. data/.travis.yml +24 -7
  5. data/.yardopts +0 -0
  6. data/CHANGELOG.md +125 -1
  7. data/CLI.md +0 -0
  8. data/Dockerfile.jruby +7 -2
  9. data/Dockerfile.ruby +1 -1
  10. data/Gemfile +0 -0
  11. data/Guardfile +0 -0
  12. data/Rakefile +23 -9
  13. data/TODO.md +0 -0
  14. data/bin/gitflow-init.sh +8 -0
  15. data/ci.rake +3 -3
  16. data/data/2008.crt +39 -0
  17. data/data/new_ca.cer +22 -0
  18. data/dependency_decisions.yml +0 -0
  19. data/docker-compose.lcm.yml +31 -0
  20. data/docker-compose.yml +4 -2
  21. data/gooddata.gemspec +3 -3
  22. data/lcm.rake +288 -0
  23. data/lib/gooddata.rb +1 -0
  24. data/lib/gooddata/bricks/base_downloader.rb +1 -1
  25. data/lib/gooddata/bricks/brick.rb +0 -1
  26. data/lib/gooddata/bricks/middleware/aws_middleware.rb +1 -1
  27. data/lib/gooddata/bricks/middleware/logger_middleware.rb +1 -1
  28. data/lib/gooddata/bricks/pipeline.rb +67 -0
  29. data/lib/gooddata/bricks/provisioning_brick.rb +18 -0
  30. data/lib/gooddata/bricks/release_brick.rb +18 -0
  31. data/lib/gooddata/bricks/rollout_brick.rb +14 -0
  32. data/lib/gooddata/bricks/user_filters_brick.rb +13 -0
  33. data/lib/gooddata/bricks/users_brick.rb +13 -0
  34. data/lib/gooddata/core/logging.rb +1 -1
  35. data/lib/gooddata/exceptions/maql_execution.rb +1 -1
  36. data/lib/gooddata/extensions/string.rb +0 -0
  37. data/lib/gooddata/lcm/actions/associate_clients.rb +34 -8
  38. data/lib/gooddata/lcm/actions/collect_data_product.rb +8 -1
  39. data/lib/gooddata/lcm/actions/collect_segment_clients.rb +13 -23
  40. data/lib/gooddata/lcm/actions/collect_segments.rb +10 -0
  41. data/lib/gooddata/lcm/actions/synchronize_clients.rb +3 -1
  42. data/lib/gooddata/lcm/actions/synchronize_ldm.rb +61 -34
  43. data/lib/gooddata/lcm/actions/synchronize_user_filters.rb +6 -4
  44. data/lib/gooddata/lcm/actions/update_release_table.rb +4 -12
  45. data/lib/gooddata/lcm/dsl/params_dsl.rb +0 -4
  46. data/lib/gooddata/lcm/dsl/type_dsl.rb +0 -4
  47. data/lib/gooddata/lcm/helpers/check_helper.rb +1 -1
  48. data/lib/gooddata/lcm/lcm2.rb +0 -2
  49. data/lib/gooddata/lcm/types/special/enum.rb +6 -0
  50. data/lib/gooddata/lcm/types/special/enum/synchronize_ldm.rb +20 -0
  51. data/lib/gooddata/lcm/types/special/types.rb +1 -1
  52. data/lib/gooddata/mixins/is_folder.rb +0 -0
  53. data/lib/gooddata/mixins/to_json.rb +0 -0
  54. data/lib/gooddata/mixins/uri_getter.rb +0 -0
  55. data/lib/gooddata/models/project_creator.rb +38 -30
  56. data/lib/gooddata/models/user_filters/user_filter_builder.rb +1 -0
  57. data/lib/gooddata/rest/README.md +0 -0
  58. data/lib/gooddata/version.rb +1 -1
  59. data/lib/templates/bricks/brick.rb.erb +0 -0
  60. data/lib/templates/bricks/main.rb.erb +0 -0
  61. data/lib/templates/project/Goodfile.erb +0 -0
  62. data/lib/templates/project/data/commits.csv +0 -0
  63. data/lib/templates/project/data/devs.csv +0 -0
  64. data/lib/templates/project/data/repos.csv +0 -0
  65. data/lib/templates/project/model/model.rb.erb +0 -0
  66. metadata +21 -451
  67. data/lib/gooddata/lcm/actions/ensure_data_product.rb +0 -63
  68. data/spec/.rubocop.yml +0 -16
  69. data/spec/bricks/bricks_spec.rb +0 -110
  70. data/spec/bricks/default-config.json +0 -8
  71. data/spec/data/.gooddata +0 -4
  72. data/spec/data/blueprints/additional_dataset_module.json +0 -32
  73. data/spec/data/blueprints/attribute_sort_order_blueprint.json +0 -72
  74. data/spec/data/blueprints/big_blueprint_not_pruned.json +0 -2079
  75. data/spec/data/blueprints/invalid_blueprint.json +0 -103
  76. data/spec/data/blueprints/m_n_model.json +0 -104
  77. data/spec/data/blueprints/model_module.json +0 -25
  78. data/spec/data/blueprints/test_blueprint.json +0 -39
  79. data/spec/data/blueprints/test_project_model_spec.json +0 -106
  80. data/spec/data/cc/data/source/commits.csv +0 -4
  81. data/spec/data/cc/data/source/devs.csv +0 -4
  82. data/spec/data/cc/data/source/repos.csv +0 -3
  83. data/spec/data/cc/devel.prm +0 -0
  84. data/spec/data/cc/graph/graph.grf +0 -11
  85. data/spec/data/cc/workspace.prm +0 -19
  86. data/spec/data/column_based_permissions.csv +0 -7
  87. data/spec/data/column_based_permissions2.csv +0 -6
  88. data/spec/data/dynamic_schedule_params_table.csv +0 -7
  89. data/spec/data/gd_gse_data_blueprint.json +0 -1371
  90. data/spec/data/gd_gse_data_manifest.json +0 -1424
  91. data/spec/data/gd_gse_data_model.json +0 -1772
  92. data/spec/data/gooddata_version_process/gooddata_version.rb +0 -9
  93. data/spec/data/gooddata_version_process/gooddata_version.zip +0 -0
  94. data/spec/data/hello_world_process/hello_world.rb +0 -9
  95. data/spec/data/hello_world_process/hello_world.zip +0 -0
  96. data/spec/data/integration_model.json +0 -252
  97. data/spec/data/integration_policies.csv +0 -9134
  98. data/spec/data/line_based_permissions.csv +0 -3
  99. data/spec/data/manifests/test_blueprint.json +0 -32
  100. data/spec/data/manifests/test_project.json +0 -107
  101. data/spec/data/reports/left_attr_report.json +0 -108
  102. data/spec/data/reports/metric_only_one_line.json +0 -83
  103. data/spec/data/reports/report_1.json +0 -197
  104. data/spec/data/reports/top_attr_report.json +0 -108
  105. data/spec/data/ruby_params_process/ruby_params.rb +0 -9
  106. data/spec/data/ruby_process/deep_files/deep_stuff.txt +0 -1
  107. data/spec/data/ruby_process/process.rb +0 -8
  108. data/spec/data/ruby_process/stuff.txt +0 -1
  109. data/spec/data/superfluous_titles_view.json +0 -81
  110. data/spec/data/test-ci-data.csv +0 -2
  111. data/spec/data/user_filters.csv +0 -2
  112. data/spec/data/users.csv +0 -12
  113. data/spec/data/wire_models/attribute_sort_by_model.json +0 -73
  114. data/spec/data/wire_models/model_view.json +0 -1775
  115. data/spec/data/wire_models/nu_model.json +0 -3046
  116. data/spec/data/wire_models/test_blueprint.json +0 -66
  117. data/spec/data/wire_test_project.json +0 -150
  118. data/spec/data/workspace_table.csv +0 -3
  119. data/spec/environment/default.rb +0 -43
  120. data/spec/environment/development.rb +0 -32
  121. data/spec/environment/environment.rb +0 -38
  122. data/spec/environment/production.rb +0 -27
  123. data/spec/environment/staging.rb +0 -32
  124. data/spec/environment/testing.rb +0 -32
  125. data/spec/helpers/appstore_project_helper.rb +0 -221
  126. data/spec/helpers/blueprint_helper.rb +0 -27
  127. data/spec/helpers/cli_helper.rb +0 -38
  128. data/spec/helpers/connection_helper.rb +0 -43
  129. data/spec/helpers/constants.rb +0 -32
  130. data/spec/helpers/crypto_helper.rb +0 -19
  131. data/spec/helpers/csv_helper.rb +0 -20
  132. data/spec/helpers/process_helper.rb +0 -35
  133. data/spec/helpers/project_helper.rb +0 -74
  134. data/spec/helpers/schedule_helper.rb +0 -33
  135. data/spec/helpers/spec_helper.rb +0 -17
  136. data/spec/integration/ads_output_stage_spec.rb +0 -45
  137. data/spec/integration/blueprint_updates_spec.rb +0 -107
  138. data/spec/integration/blueprint_with_ca_spec.rb +0 -56
  139. data/spec/integration/blueprint_with_grain_spec.rb +0 -74
  140. data/spec/integration/channel_configuration_spec.rb +0 -67
  141. data/spec/integration/clients_spec.rb +0 -164
  142. data/spec/integration/command_datawarehouse_spec.rb +0 -45
  143. data/spec/integration/command_projects_spec.rb +0 -32
  144. data/spec/integration/commands/command_projects_spec.rb +0 -22
  145. data/spec/integration/connection_spec.rb +0 -37
  146. data/spec/integration/core/connection_spec.rb +0 -56
  147. data/spec/integration/core/logging_spec.rb +0 -132
  148. data/spec/integration/core/project_spec.rb +0 -54
  149. data/spec/integration/create_from_template_spec.rb +0 -29
  150. data/spec/integration/create_project_spec.rb +0 -27
  151. data/spec/integration/date_dim_switch_spec.rb +0 -154
  152. data/spec/integration/deprecated_load_spec.rb +0 -60
  153. data/spec/integration/full_process_schedule_spec.rb +0 -367
  154. data/spec/integration/full_project_spec.rb +0 -592
  155. data/spec/integration/helpers_spec.rb +0 -16
  156. data/spec/integration/lcm_spec.rb +0 -54
  157. data/spec/integration/mandatory_user_filter_spec.rb +0 -53
  158. data/spec/integration/mixins/id_to_uri_spec.rb +0 -56
  159. data/spec/integration/models/data_product_spec.rb +0 -71
  160. data/spec/integration/models/domain_spec.rb +0 -162
  161. data/spec/integration/models/invitation_spec.rb +0 -17
  162. data/spec/integration/models/label_spec.rb +0 -49
  163. data/spec/integration/models/membership_spec.rb +0 -127
  164. data/spec/integration/models/metadata/report_spec.rb +0 -54
  165. data/spec/integration/models/metric_spec.rb +0 -24
  166. data/spec/integration/models/params_spec.rb +0 -118
  167. data/spec/integration/models/process_spec.rb +0 -35
  168. data/spec/integration/models/profile_spec.rb +0 -210
  169. data/spec/integration/models/project_role_spec.rb +0 -94
  170. data/spec/integration/models/project_spec.rb +0 -225
  171. data/spec/integration/models/schedule_spec.rb +0 -477
  172. data/spec/integration/models/unit_project_spec.rb +0 -130
  173. data/spec/integration/over_to_user_filters_spec.rb +0 -98
  174. data/spec/integration/partial_md_export_import_spec.rb +0 -41
  175. data/spec/integration/project_spec.rb +0 -381
  176. data/spec/integration/rest_spec.rb +0 -214
  177. data/spec/integration/schedule_spec.rb +0 -611
  178. data/spec/integration/segments_spec.rb +0 -100
  179. data/spec/integration/subscription_spec.rb +0 -88
  180. data/spec/integration/urn_date_dim_spec.rb +0 -53
  181. data/spec/integration/user_filters_spec.rb +0 -310
  182. data/spec/integration/user_group_spec.rb +0 -147
  183. data/spec/integration/variables_spec.rb +0 -189
  184. data/spec/integration/vcr_cassettes/GoodData_-_logging/_logger/can_assign_a_custom_logger.yml +0 -2287
  185. data/spec/integration/vcr_cassettes/GoodData_-_logging/_logger/client_logs_when_given_custom_message.yml +0 -2287
  186. data/spec/integration/vcr_cassettes/GoodData_-_logging/_logger/has_the_request_id_logged_when_I_passed_it.yml +0 -2287
  187. data/spec/integration/vcr_cassettes/GoodData_-_logging/_logging_off/Disables_logging.yml +0 -2287
  188. data/spec/integration/vcr_cassettes/GoodData_-_logging/_logging_on/Enables_logging.yml +0 -2287
  189. data/spec/integration/vcr_cassettes/GoodData_-_project/_project/Returns_project_assigned.yml +0 -354
  190. data/spec/integration/vcr_cassettes/GoodData_-_project/_project_/Assigns_nil.yml +0 -299
  191. data/spec/integration/vcr_cassettes/GoodData_-_project/_project_/Assigns_project_directly.yml +0 -354
  192. data/spec/integration/vcr_cassettes/GoodData_-_project/_project_/Assigns_project_using_project_ID.yml +0 -354
  193. data/spec/integration/vcr_cassettes/GoodData_-_project/_project_/Assigns_project_using_project_URL.yml +0 -354
  194. data/spec/integration/vcr_cassettes/GoodData_-_project/_with_project/Uses_project_specified.yml +0 -354
  195. data/spec/integration/vcr_cassettes/GoodData_Metric/all.yml +0 -2065
  196. data/spec/integration/vcr_cassettes/GoodData_Metric/should_be_able_to_update_folders.yml +0 -119
  197. data/spec/integration/vcr_cassettes/GoodData_Mixin_MdIdToUri/all.yml +0 -9812
  198. data/spec/integration/vcr_cassettes/GoodData_Mixin_MdIdToUri/should_get_json_containing_correct_id.yml +0 -174
  199. data/spec/integration/vcr_cassettes/GoodData_Mixin_MdIdToUri/should_return_nil_for_unknown_id.yml +0 -58
  200. data/spec/integration/vcr_cassettes/GoodData_Mixin_MdIdToUri/should_throw_BadRequest_for_-1.yml +0 -63
  201. data/spec/integration/vcr_cassettes/GoodData_Rest_Connection/_connect/Connects_using_username_and_password.yml +0 -299
  202. data/spec/integration/vcr_cassettes/GoodData_Rest_Connection/_disconnect/Connects_using_username_and_password.yml +0 -299
  203. data/spec/integration/vcr_cassettes/GoodData_Rest_Connection/_generate_request_id/Generates_a_non-empty_string.yml +0 -2287
  204. data/spec/integration/vcr_cassettes/GoodData_UserGroup/_/Should_list_user_groups_as_Array.yml +0 -56
  205. data/spec/integration/vcr_cassettes/GoodData_UserGroup/_add_members/Should_add_member.yml +0 -315
  206. data/spec/integration/vcr_cassettes/GoodData_UserGroup/_members/Should_return_members_as_array.yml +0 -54
  207. data/spec/integration/vcr_cassettes/GoodData_UserGroup/_remove_members/Should_remove_existing_members.yml +0 -258
  208. data/spec/integration/vcr_cassettes/GoodData_UserGroup/_save/updates_existing_group.yml +0 -159
  209. data/spec/integration/vcr_cassettes/GoodData_UserGroup/_set_members/Should_set_new_members.yml +0 -158
  210. data/spec/integration/vcr_cassettes/GoodData_UserGroup/all.yml +0 -809
  211. data/spec/logging_in_logging_out_spec.rb +0 -91
  212. data/spec/spec_helper.rb +0 -110
  213. data/spec/unit/actions/associate_clients_spec.rb +0 -48
  214. data/spec/unit/actions/collect_client_projects_spec.rb +0 -47
  215. data/spec/unit/actions/collect_clients_spec.rb +0 -65
  216. data/spec/unit/actions/collect_data_product_spec.rb +0 -58
  217. data/spec/unit/actions/collect_dynamic_schedule_params_spec.rb +0 -56
  218. data/spec/unit/actions/collect_meta_spec.rb +0 -88
  219. data/spec/unit/actions/collect_segment_clients_spec.rb +0 -82
  220. data/spec/unit/actions/collect_tagged_objects_spec.rb +0 -126
  221. data/spec/unit/actions/collect_users_brick_users_spec.rb +0 -36
  222. data/spec/unit/actions/create_segment_masters_spec.rb +0 -65
  223. data/spec/unit/actions/ensure_data_product_spec.rb +0 -39
  224. data/spec/unit/actions/ensure_technical_users_domain_spec.rb +0 -53
  225. data/spec/unit/actions/ensure_technical_users_project_spec.rb +0 -76
  226. data/spec/unit/actions/execute_schedules_spec.rb +0 -94
  227. data/spec/unit/actions/provision_clients_spec.rb +0 -46
  228. data/spec/unit/actions/purge_clients_spec.rb +0 -47
  229. data/spec/unit/actions/rename_existing_client_projects_spec.rb +0 -54
  230. data/spec/unit/actions/segments_filter_spec.rb +0 -46
  231. data/spec/unit/actions/shared_examples_for_user_actions.rb +0 -43
  232. data/spec/unit/actions/synchronize_cas_spec.rb +0 -58
  233. data/spec/unit/actions/synchronize_clients_spec.rb +0 -71
  234. data/spec/unit/actions/synchronize_etls_in_segment_spec.rb +0 -206
  235. data/spec/unit/actions/synchronize_ldm_spec.rb +0 -70
  236. data/spec/unit/actions/synchronize_user_filters_spec.rb +0 -208
  237. data/spec/unit/actions/synchronize_user_groups_spec.rb +0 -49
  238. data/spec/unit/actions/synchronize_users_spec.rb +0 -180
  239. data/spec/unit/bricks/bricks_spec.rb +0 -34
  240. data/spec/unit/bricks/middleware/aws_middelware_spec.rb +0 -98
  241. data/spec/unit/bricks/middleware/bench_middleware_spec.rb +0 -15
  242. data/spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb +0 -15
  243. data/spec/unit/bricks/middleware/gooddata_middleware_spec.rb +0 -15
  244. data/spec/unit/bricks/middleware/logger_middleware_spec.rb +0 -30
  245. data/spec/unit/bricks/middleware/restforce_middleware_spec.rb +0 -15
  246. data/spec/unit/bricks/middleware/stdout_middleware_spec.rb +0 -15
  247. data/spec/unit/bricks/middleware/twitter_middleware_spec.rb +0 -15
  248. data/spec/unit/cli/cli_spec.rb +0 -17
  249. data/spec/unit/cli/commands/cmd_auth_spec.rb +0 -17
  250. data/spec/unit/core/nil_logger_spec.rb +0 -13
  251. data/spec/unit/extensions/hash_spec.rb +0 -22
  252. data/spec/unit/godzilla/goodzilla_spec.rb +0 -74
  253. data/spec/unit/helpers/check_helper_production_spec.rb +0 -34
  254. data/spec/unit/helpers/check_helper_spec.rb +0 -134
  255. data/spec/unit/helpers/csv_helper_spec.rb +0 -22
  256. data/spec/unit/helpers/data_helper_spec.rb +0 -67
  257. data/spec/unit/helpers/global_helpers_spec.rb +0 -264
  258. data/spec/unit/helpers_spec.rb +0 -254
  259. data/spec/unit/lcm/lcm2_spec.rb +0 -100
  260. data/spec/unit/lcm/user_bricks_helper_spec.rb +0 -58
  261. data/spec/unit/models/blueprint/attribute_sort_by_spec.rb +0 -20
  262. data/spec/unit/models/blueprint/attributes_spec.rb +0 -28
  263. data/spec/unit/models/blueprint/dataset_spec.rb +0 -120
  264. data/spec/unit/models/blueprint/label_blueprint_field_spec.rb +0 -43
  265. data/spec/unit/models/blueprint/project_blueprint_spec.rb +0 -642
  266. data/spec/unit/models/blueprint/reference_spec.rb +0 -28
  267. data/spec/unit/models/blueprint/schema_builder_spec.rb +0 -36
  268. data/spec/unit/models/blueprint/to_wire_spec.rb +0 -196
  269. data/spec/unit/models/dataset_blueprint.rb +0 -14
  270. data/spec/unit/models/execution_spec.rb +0 -109
  271. data/spec/unit/models/from_wire_spec.rb +0 -321
  272. data/spec/unit/models/metadata_spec.rb +0 -140
  273. data/spec/unit/models/metric_spec.rb +0 -129
  274. data/spec/unit/models/model_spec.rb +0 -87
  275. data/spec/unit/models/project_creator_spec.rb +0 -90
  276. data/spec/unit/models/project_spec.rb +0 -94
  277. data/spec/unit/models/report_result_data_spec.rb +0 -194
  278. data/spec/unit/models/to_manifest_spec.rb +0 -165
  279. data/spec/unit/models/user_filters/user_filter_builder_spec.rb +0 -149
  280. data/spec/unit/models/user_filters_spec.rb +0 -95
  281. data/spec/unit/models/variable_spec.rb +0 -280
  282. data/spec/unit/rest/phmap_spec.rb +0 -117
  283. data/spec/unit/rest/polling_spec.rb +0 -101
  284. data/spec/unit/rest/resource_spec.rb +0 -10
  285. data/spec/vcr_configurer.rb +0 -63
@@ -1,37 +0,0 @@
1
- # encoding: UTF-8
2
- #
3
- # Copyright (c) 2010-2018 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_relative '../helpers/connection_helper'
8
-
9
- describe GoodData do
10
- let(:login) { 'rubydev+admin@gooddata.com' }
11
- KEYS = ['dev-gooddata-sso.pub', 'rubydev_public.gpg', 'rubydev_secret_keys.gpg']
12
-
13
- before do
14
- cipher = ENV['GD_SPEC_PASSWORD'] || ENV['BIA_ENCRYPTION_KEY']
15
- KEYS.each do |key|
16
- File.write(key, GoodData::Helpers.decrypt(File.read(key + '.encrypted'), cipher))
17
- end
18
-
19
- `gpg --import #{KEYS.join(' ')}`
20
- end
21
-
22
- it 'can use SSO' do
23
- rest_client = GoodData.connect_sso(
24
- login,
25
- 'test-ruby',
26
- GoodData::Environment::ConnectionHelper::DEFAULT_SERVER,
27
- server: GoodData::Environment::ConnectionHelper::DEFAULT_SERVER,
28
- verify_ssl: false
29
- )
30
- user = rest_client.domain(GoodData::Environment::ConnectionHelper::DEFAULT_DOMAIN).users(login, client: rest_client)
31
- expect(user).to be_truthy
32
- end
33
-
34
- after do
35
- KEYS.each { |key| File.delete(key) }
36
- end
37
- end
@@ -1,56 +0,0 @@
1
- # encoding: UTF-8
2
- #
3
- # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
- # This source code is licensed under the BSD-style license found in the
5
- # LICENSE file in the root directory of this source tree.
6
-
7
- require 'gooddata/connection'
8
-
9
- describe GoodData::Rest::Connection, :vcr do
10
- before(:all) do
11
- USERNAME = ConnectionHelper::DEFAULT_USERNAME
12
- PASSWORD = ConnectionHelper::DEFAULT_PASSWORD
13
- end
14
-
15
- it "Has DEFAULT_URL defined" do
16
- GoodData::Rest::Connection::DEFAULT_URL.should be_a(String)
17
- end
18
-
19
- it "Has LOGIN_PATH defined" do
20
- GoodData::Rest::Connection::LOGIN_PATH.should be_a(String)
21
- end
22
-
23
- it "Has TOKEN_PATH defined" do
24
- GoodData::Rest::Connection::TOKEN_PATH.should be_a(String)
25
- end
26
-
27
- describe '#connect' do
28
- it "Connects using username and password" do
29
- c = GoodData.connect(ConnectionHelper::DEFAULT_USERNAME, ConnectionHelper::DEFAULT_PASSWORD, :verify_ssl => 0)
30
- c.should be_a(GoodData::Rest::Client)
31
- c.disconnect
32
- end
33
- end
34
-
35
- describe '#disconnect' do
36
- it "Connects using username and password" do
37
- c = GoodData.connect(ConnectionHelper::DEFAULT_USERNAME, ConnectionHelper::DEFAULT_PASSWORD, :verify_ssl => 0)
38
- c.disconnect
39
- end
40
- end
41
-
42
- describe '#generate_request_id' do
43
- it "Generates a non-empty string" do
44
- c = ConnectionHelper.create_default_connection
45
-
46
- # generate a request id, and pass it to a request
47
- id = c.generate_request_id
48
- c.get('/gdc/md', :request_id => id)
49
-
50
- id.should be_a(String)
51
- id.should_not be_empty
52
-
53
- c.disconnect
54
- end
55
- end
56
- end
@@ -1,132 +0,0 @@
1
- # encoding: UTF-8
2
- #
3
- # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
- # This source code is licensed under the BSD-style license found in the
5
- # LICENSE file in the root directory of this source tree.
6
-
7
- require 'gooddata/core/logging'
8
- require 'logger'
9
-
10
- # Logger that remembers the last logged message
11
- class TestLogger < Logger
12
- attr_reader :last_message
13
- def debug(*args)
14
- @last_message = args[0] if level == Logger::DEBUG
15
- super(*args)
16
- end
17
-
18
- def info(*args)
19
- @last_message = args[0] if level <= Logger::INFO
20
- super(*args)
21
- end
22
-
23
- def warn(*args)
24
- @last_message = args[0] if level <= Logger::WARN
25
- super(*args)
26
- end
27
-
28
- def error(*args)
29
- @last_message = args[0] if level <= Logger::ERROR
30
- super(*args)
31
- end
32
-
33
- def fatal(*args)
34
- @last_message = args[0] if level <= Logger::FATAL
35
- super(*args)
36
- end
37
- end
38
-
39
- describe 'GoodData - logging', :vcr do
40
- TEST_MESSAGE = 'Hello World!'
41
-
42
- def test_error
43
- GoodData.logger.error TEST_MESSAGE
44
- end
45
-
46
- def test_info
47
- GoodData.logger.info TEST_MESSAGE
48
- end
49
-
50
- def test_warn
51
- GoodData.logger.warn TEST_MESSAGE
52
- end
53
-
54
- def test_request_id_logging
55
- @client = ConnectionHelper.create_default_connection
56
- id = @client.generate_request_id
57
- GoodData.logger.info "Request id: #{id} Doing something very useful"
58
- @client.get('/gdc/md', :request_id => id)
59
- id
60
- end
61
-
62
- def test_all
63
- test_error
64
- test_info
65
- test_warn
66
- test_request_id_logging
67
- end
68
-
69
- before(:each) do
70
- # remember the state of logging before
71
- @logging_on_at_start = GoodData.logging_on?
72
- end
73
-
74
- after(:each) do
75
- # restore the logging state
76
- if @logging_on_at_start
77
- GoodData.logging_on
78
- else
79
- GoodData.logging_off
80
- end
81
-
82
- @client.disconnect if @client
83
- end
84
-
85
- describe '#logger' do
86
- it "can assign a custom logger" do
87
- GoodData.logger = TestLogger.new(STDOUT)
88
- test_all
89
- end
90
- it 'has the request id logged when I passed it' do
91
- GoodData.logger = TestLogger.new(STDOUT)
92
- id = test_request_id_logging
93
- expect(GoodData.logger.last_message).to include(id)
94
- end
95
- it 'client logs when given custom message' do
96
- GoodData.logger = TestLogger.new(STDOUT)
97
- GoodData.logger.level = Logger::INFO
98
- @client = ConnectionHelper.create_default_connection
99
- message = "Getting all projects."
100
- @client.get('/gdc/md', :info_message => message)
101
- expect(GoodData.logger.last_message).to include(message)
102
- end
103
- end
104
-
105
- describe '#logging_on' do
106
- it 'Enables logging' do
107
- GoodData.logging_on
108
- test_all
109
- end
110
- end
111
-
112
- describe '#logging_off' do
113
- it 'Disables logging' do
114
- GoodData.logging_off
115
- test_all
116
- end
117
- end
118
-
119
- describe '#logger' do
120
- it '#error works' do
121
- test_error
122
- end
123
-
124
- it '#info works' do
125
- test_info
126
- end
127
-
128
- it '#warn works' do
129
- test_warn
130
- end
131
- end
132
- end
@@ -1,54 +0,0 @@
1
- # encoding: UTF-8
2
- #
3
- # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
- # This source code is licensed under the BSD-style license found in the
5
- # LICENSE file in the root directory of this source tree.
6
-
7
- require 'gooddata/connection'
8
- require 'gooddata/core/project'
9
- require 'gooddata/models/project'
10
-
11
- describe 'GoodData - project', :vcr do
12
- before(:each) do
13
- @client = ConnectionHelper.create_default_connection
14
- end
15
-
16
- after(:each) do
17
- @client.disconnect
18
- end
19
-
20
- describe '#project=' do
21
- it 'Assigns nil' do
22
- GoodData.project = nil
23
- end
24
-
25
- it 'Assigns project using project ID' do
26
- GoodData.use(ProjectHelper::PROJECT_ID, client: @client)
27
- end
28
-
29
- it 'Assigns project using project URL' do
30
- GoodData.use ProjectHelper::PROJECT_URL, client: @client
31
- end
32
-
33
- it 'Assigns project directly' do
34
- GoodData.project = GoodData::Project[ProjectHelper::PROJECT_ID, client: @client]
35
- end
36
- end
37
-
38
- describe '#project' do
39
- it 'Returns project assigned' do
40
- GoodData.project = nil
41
- expect(GoodData.project).to be_nil
42
-
43
- GoodData.use ProjectHelper::PROJECT_ID, client: @client
44
- expect(GoodData.project).not_to be_nil
45
- end
46
- end
47
-
48
- describe '#with_project' do
49
- it 'Uses project specified' do
50
- GoodData.with_project GoodData::Project[ProjectHelper::PROJECT_ID, :client => @client] do
51
- end
52
- end
53
- end
54
- end
@@ -1,29 +0,0 @@
1
- # encoding: UTF-8
2
- #
3
- # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
- # This source code is licensed under the BSD-style license found in the
5
- # LICENSE file in the root directory of this source tree.
6
-
7
- require 'gooddata'
8
-
9
- describe 'Spin a project from template', :constraint => 'slow' do
10
- before(:all) do
11
- @client = ConnectionHelper.create_default_connection
12
- end
13
-
14
- after(:all) do
15
- @client.disconnect
16
- end
17
-
18
- it 'should spin a project from a template that does not exist. It should throw an error' do
19
- expect do
20
- GoodData::Project.create(
21
- title: 'Test project',
22
- template: '/some/nonexisting/template/uri',
23
- auth_token: ConnectionHelper::GD_PROJECT_TOKEN,
24
- environment: ProjectHelper::ENVIRONMENT,
25
- client: @client
26
- )
27
- end.to raise_error
28
- end
29
- end
@@ -1,27 +0,0 @@
1
- # encoding: UTF-8
2
- #
3
- # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
- # This source code is licensed under the BSD-style license found in the
5
- # LICENSE file in the root directory of this source tree.
6
-
7
- require 'gooddata'
8
-
9
- describe 'Create project using GoodData client', :constraint => 'slow' do
10
- before(:all) do
11
- @client = ConnectionHelper.create_default_connection
12
- end
13
-
14
- after(:all) do
15
- @client.disconnect
16
- end
17
-
18
- it 'Should create project using GoodData::Rest::Client#create_project' do
19
- project_title = 'Test #create_project'
20
- begin
21
- project = @client.create_project(:title => project_title, :auth_token => ConnectionHelper::GD_PROJECT_TOKEN, environment: ProjectHelper::ENVIRONMENT)
22
- expect(project.title).to eq(project_title)
23
- ensure
24
- project.delete if project
25
- end
26
- end
27
- end
@@ -1,154 +0,0 @@
1
- # encoding: UTF-8
2
- #
3
- # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
- # This source code is licensed under the BSD-style license found in the
5
- # LICENSE file in the root directory of this source tree.
6
-
7
- require 'gooddata'
8
-
9
- describe "Swapping a date dimension and exchanging all attributes/elements", :constraint => 'slow' do
10
- before(:all) do
11
- @client = ConnectionHelper.create_default_connection
12
- @blueprint = GoodData::Model::ProjectBlueprint.build("My project from blueprint") do |p|
13
- p.add_date_dimension('created_on')
14
- p.add_date_dimension('created_on_2')
15
-
16
- p.add_dataset('dataset.users') do |d|
17
- d.add_anchor('attr.users.id')
18
- d.add_label('label.users.id', reference: 'attr.users.id')
19
- d.add_date('created_on')
20
- d.add_fact('fact.users.some_number')
21
- end
22
- end
23
-
24
- # Create a project
25
- @project = @client.create_project_from_blueprint(@blueprint, token: ConnectionHelper::GD_PROJECT_TOKEN, environment: ProjectHelper::ENVIRONMENT)
26
-
27
- # Load data
28
- users_data = [
29
- ["label.users.id", "created_on", "fact.users.some_number"],
30
- [1, "01/01/2014", 1],
31
- [2, "10/15/2014", 2],
32
- [3, "05/02/2014", 3]
33
- ]
34
- @project.upload(users_data, @blueprint, 'dataset.users')
35
- end
36
-
37
- after(:all) do
38
- @project.delete unless @project.nil?
39
-
40
- @client.disconnect
41
- end
42
-
43
- it 'should not get error when execute report with timestamp' do
44
- metric = @project.attributes('created_on.date').create_metric(title: 'test_metric')
45
- metric.save
46
-
47
- report = @project.create_report(
48
- left: metric,
49
- top: ['created_on.quarter'],
50
- filters: [['created_on.year', 2015, 2016]],
51
- title: 'test_report'
52
- )
53
- report.execute(time: Time.now)
54
- end
55
-
56
- it "should swap the dimension, exchange all stuffs and not break anything" do
57
- # WE have 2 date dims
58
- expect(@blueprint.date_dimensions.map(&:id)).to eq %w(created_on created_on_2)
59
- # One is connected
60
- expect(@blueprint.datasets.flat_map(&:references).map(&:reference).include?('created_on')).to be_truthy
61
- # The other is disconnected
62
- expect(@blueprint.datasets.flat_map(&:references).map(&:reference).include?('created_on_2')).to be_falsey
63
-
64
- # Create a metric
65
- @metric_1 = @project.attributes('created_on.date').create_metric(title: 'Count of days in DD')
66
- @metric_1.save
67
-
68
- # Create a report
69
- @report = @project.create_report(left: @metric_1, top: ['created_on.date'], title: 'Beautiful report')
70
- @report.save
71
-
72
- def suggest_mapping(label_a, label_b, project)
73
- as = project.attributes
74
- a1 = as.select { |a| a.identifier.include?("#{label_a}.") }.pmapcat { |a| [a] + a.labels }
75
- a2 = as.select { |a| a.identifier.include?("#{label_b}.") }.pmapcat { |a| [a] + a.labels }
76
- a1.reduce({}) do |a, e|
77
- match = a2.find { |l| l.identifier.gsub(/^#{label_b}/, '') == e.identifier.gsub(/^#{label_a}/, '') }
78
- a[e.identifier] = match && match.identifier
79
- a
80
- end
81
- end
82
-
83
- # Create definition with report specific metric
84
- @metric_2 = @project.attributes('created_on.date').create_metric(title: 'Count of days in DD Secret')
85
- @metric_2.deprecated = true
86
- @metric_2.save
87
- @report_with_private = @project.create_report(
88
- left: @metric_2,
89
- top: ['created_on.day.in.week'],
90
- title: 'Beautiful report with private'
91
- )
92
- @report_with_private.save
93
-
94
- # Create a definition with a filter value
95
- @report = @project.create_report(
96
- left: @metric_2,
97
- top: ['created_on.quarter'],
98
- filters: [['created_on.year', 2015, 2016]],
99
- title: 'Beautiful report with filters'
100
- )
101
- @report.save
102
-
103
- @label = @project.labels('created_on.year').primary_label
104
- @variable = @project.create_variable(title: 'uaaa', attribute: @label.attribute).save
105
- filters = [[ConnectionHelper::DEFAULT_USERNAME, @label.uri, '2015', '2016']]
106
- @project.add_variable_permissions(filters, @variable)
107
-
108
- as = @project.attributes.select { |a| a.identifier.include?('created_on_2.') }
109
- expect(as.pmapcat { |a| a.usedby('report') }).to be_empty
110
- expect(as.pmapcat { |a| a.usedby('metric') }).to be_empty
111
- expect(as.pmapcat { |a| a.usedby('dashboard') }).to be_empty
112
-
113
- year_obj_id = @project.attributes
114
- .find { |a| a.identifier == 'created_on_2.year' }
115
- .obj_id
116
-
117
- # replace values
118
- mapping = GoodData::Helpers.prepare_mapping(suggest_mapping('created_on', 'created_on_2', @project), project: @project)
119
- @project.replace_from_mapping(mapping)
120
-
121
- # Check if any of the attributes is used by any of the objects. All should be empty
122
- as = @project.attributes.select { |a| a.identifier.include?('created_on.') }
123
- expect(as.pmapcat { |a| a.usedby('report') }).to be_empty
124
- expect(as.pmapcat { |a| a.usedby('metric') }).to be_empty
125
- expect(as.pmapcat { |a| a.usedby('dashboard') }).to be_empty
126
-
127
- # Reload stuff
128
- @metric_2.reload!
129
- @report.reload!
130
- @report_with_private.reload!
131
-
132
- # Stuff should be still computable
133
- @metric_2.execute
134
- @report.execute
135
- @report_with_private.execute
136
-
137
- # Labels
138
- GoodData::SmallGoodZilla.get_uris(@metric_2.expression)
139
- expect(@report.definition.attributes.map(&:identifier)).to eq ["created_on_2.quarter"]
140
-
141
- ids = GoodData::SmallGoodZilla.get_uris(@report.definition.filters.first).map { |x| x.split('/')[-2..-1].join('/') }
142
- expect(ids).to eq ["obj/#{year_obj_id}", "#{year_obj_id}/elements?id=2015", "#{year_obj_id}/elements?id=2016"]
143
-
144
- ids = GoodData::SmallGoodZilla.get_uris(@variable.values.first.expression).map { |v| v.split('/')[-2..-1].join('/') }
145
- expect(ids).to eq ["obj/#{year_obj_id}", "#{year_obj_id}/elements?id=2015", "#{year_obj_id}/elements?id=2016"]
146
-
147
- # Swap the dims
148
- bp = @project.blueprint
149
- bp.swap_date_dimension!('created_on', 'created_on_2')
150
- @project.update_from_blueprint(bp)
151
- expect(bp.datasets.flat_map(&:references).map(&:reference).include?('created_on')).to be_falsey
152
- expect(bp.datasets.flat_map(&:references).map(&:reference).include?('created_on_2')).to be_truthy
153
- end
154
- end