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.
Files changed (316) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -1
  3. data/DEPENDENCIES.md +816 -0
  4. data/LICENSE +1 -1
  5. data/LICENSE.rb +5 -0
  6. data/Rakefile +74 -22
  7. data/dependency_decisions.yml +102 -0
  8. data/gooddata.gemspec +39 -38
  9. data/lib/gooddata.rb +4 -0
  10. data/lib/gooddata/app/app.rb +4 -0
  11. data/lib/gooddata/bricks/base_downloader.rb +5 -1
  12. data/lib/gooddata/bricks/brick.rb +4 -0
  13. data/lib/gooddata/bricks/bricks.rb +5 -0
  14. data/lib/gooddata/bricks/middleware/aws_middleware.rb +5 -0
  15. data/lib/gooddata/bricks/middleware/base_middleware.rb +5 -0
  16. data/lib/gooddata/bricks/middleware/bench_middleware.rb +5 -0
  17. data/lib/gooddata/bricks/middleware/bulk_salesforce_middleware.rb +5 -0
  18. data/lib/gooddata/bricks/middleware/decode_params_middleware.rb +6 -0
  19. data/lib/gooddata/bricks/middleware/fs_download_middleware.rb +6 -0
  20. data/lib/gooddata/bricks/middleware/fs_upload_middleware.rb +6 -0
  21. data/lib/gooddata/bricks/middleware/gooddata_middleware.rb +6 -0
  22. data/lib/gooddata/bricks/middleware/logger_middleware.rb +5 -0
  23. data/lib/gooddata/bricks/middleware/middleware.rb +5 -0
  24. data/lib/gooddata/bricks/middleware/restforce_middleware.rb +4 -0
  25. data/lib/gooddata/bricks/middleware/stdout_middleware.rb +5 -0
  26. data/lib/gooddata/bricks/middleware/twitter_middleware.rb +5 -0
  27. data/lib/gooddata/bricks/middleware/undot_params_middleware.rb +4 -0
  28. data/lib/gooddata/bricks/pipeline.rb +4 -0
  29. data/lib/gooddata/bricks/utils.rb +4 -0
  30. data/lib/gooddata/cli/cli.rb +4 -0
  31. data/lib/gooddata/cli/commands/api_cmd.rb +4 -0
  32. data/lib/gooddata/cli/commands/auth_cmd.rb +4 -0
  33. data/lib/gooddata/cli/commands/console_cmd.rb +4 -0
  34. data/lib/gooddata/cli/commands/domain_cmd.rb +4 -0
  35. data/lib/gooddata/cli/commands/process_cmd.rb +4 -0
  36. data/lib/gooddata/cli/commands/project_cmd.rb +4 -0
  37. data/lib/gooddata/cli/commands/projects_cmd.rb +4 -0
  38. data/lib/gooddata/cli/commands/run_ruby_cmd.rb +4 -0
  39. data/lib/gooddata/cli/commands/scaffold_cmd.rb +4 -0
  40. data/lib/gooddata/cli/commands/user_cmd.rb +4 -0
  41. data/lib/gooddata/cli/hooks.rb +4 -0
  42. data/lib/gooddata/cli/shared.rb +4 -0
  43. data/lib/gooddata/cli/terminal.rb +4 -0
  44. data/lib/gooddata/client.rb +4 -0
  45. data/lib/gooddata/commands/api.rb +4 -0
  46. data/lib/gooddata/commands/auth.rb +4 -0
  47. data/lib/gooddata/commands/base.rb +4 -0
  48. data/lib/gooddata/commands/commands.rb +5 -0
  49. data/lib/gooddata/commands/datasets.rb +5 -1
  50. data/lib/gooddata/commands/datawarehouse.rb +4 -0
  51. data/lib/gooddata/commands/domain.rb +4 -0
  52. data/lib/gooddata/commands/process.rb +4 -0
  53. data/lib/gooddata/commands/project.rb +7 -9
  54. data/lib/gooddata/commands/projects.rb +4 -0
  55. data/lib/gooddata/commands/role.rb +4 -0
  56. data/lib/gooddata/commands/runners.rb +4 -0
  57. data/lib/gooddata/commands/scaffold.rb +4 -0
  58. data/lib/gooddata/commands/user.rb +4 -0
  59. data/lib/gooddata/connection.rb +83 -0
  60. data/lib/gooddata/core/core.rb +4 -0
  61. data/lib/gooddata/core/logging.rb +4 -0
  62. data/lib/gooddata/core/nil_logger.rb +4 -0
  63. data/lib/gooddata/core/project.rb +4 -0
  64. data/lib/gooddata/core/rest.rb +14 -16
  65. data/lib/gooddata/core/user.rb +4 -0
  66. data/lib/gooddata/data/data.rb +4 -0
  67. data/lib/gooddata/data/guesser.rb +4 -0
  68. data/lib/gooddata/exceptions/attr_element_not_found.rb +4 -0
  69. data/lib/gooddata/exceptions/command_failed.rb +4 -0
  70. data/lib/gooddata/exceptions/exceptions.rb +4 -0
  71. data/lib/gooddata/exceptions/execution_limit_exceeded.rb +4 -0
  72. data/lib/gooddata/exceptions/filter_maqlization.rb +16 -0
  73. data/lib/gooddata/exceptions/malformed_user.rb +15 -0
  74. data/lib/gooddata/exceptions/no_project_error.rb +4 -0
  75. data/lib/gooddata/exceptions/object_migration.rb +28 -0
  76. data/lib/gooddata/exceptions/project_not_found.rb +5 -0
  77. data/lib/gooddata/exceptions/uncomputable_report.rb +5 -0
  78. data/lib/gooddata/exceptions/user_in_different_domain.rb +4 -0
  79. data/lib/gooddata/exceptions/validation_error.rb +4 -0
  80. data/lib/gooddata/extensions/big_decimal.rb +4 -0
  81. data/lib/gooddata/extensions/enumerable.rb +4 -0
  82. data/lib/gooddata/extensions/extensions.rb +4 -0
  83. data/lib/gooddata/extensions/false.rb +4 -0
  84. data/lib/gooddata/extensions/hash.rb +4 -0
  85. data/lib/gooddata/extensions/nil.rb +4 -0
  86. data/lib/gooddata/extensions/numeric.rb +4 -0
  87. data/lib/gooddata/extensions/object.rb +4 -0
  88. data/lib/gooddata/extensions/symbol.rb +4 -0
  89. data/lib/gooddata/extensions/true.rb +4 -0
  90. data/lib/gooddata/extract.rb +4 -0
  91. data/lib/gooddata/goodzilla/goodzilla.rb +87 -77
  92. data/lib/gooddata/helpers/auth_helpers.rb +6 -2
  93. data/lib/gooddata/helpers/csv_helper.rb +4 -0
  94. data/lib/gooddata/helpers/data_helper.rb +4 -0
  95. data/lib/gooddata/helpers/global_helpers.rb +35 -6
  96. data/lib/gooddata/helpers/global_helpers_params.rb +34 -7
  97. data/lib/gooddata/helpers/helpers.rb +4 -0
  98. data/lib/gooddata/mixins/author.rb +4 -0
  99. data/lib/gooddata/mixins/content_getter.rb +4 -0
  100. data/lib/gooddata/mixins/content_property_reader.rb +4 -0
  101. data/lib/gooddata/mixins/content_property_writer.rb +4 -0
  102. data/lib/gooddata/mixins/contributor.rb +4 -0
  103. data/lib/gooddata/mixins/data_getter.rb +4 -0
  104. data/lib/gooddata/mixins/data_property_reader.rb +4 -0
  105. data/lib/gooddata/mixins/data_property_writer.rb +4 -0
  106. data/lib/gooddata/mixins/inspector.rb +4 -0
  107. data/lib/gooddata/mixins/is_attribute.rb +4 -0
  108. data/lib/gooddata/mixins/is_dimension.rb +4 -0
  109. data/lib/gooddata/mixins/is_fact.rb +4 -0
  110. data/lib/gooddata/mixins/is_label.rb +4 -0
  111. data/lib/gooddata/mixins/links.rb +4 -0
  112. data/lib/gooddata/mixins/md_finders.rb +4 -0
  113. data/lib/gooddata/mixins/md_id_to_uri.rb +4 -0
  114. data/lib/gooddata/mixins/md_json.rb +4 -0
  115. data/lib/gooddata/mixins/md_lock.rb +4 -0
  116. data/lib/gooddata/mixins/md_object_id.rb +5 -1
  117. data/lib/gooddata/mixins/md_object_indexer.rb +4 -0
  118. data/lib/gooddata/mixins/md_object_query.rb +4 -0
  119. data/lib/gooddata/mixins/md_relations.rb +4 -0
  120. data/lib/gooddata/mixins/meta_getter.rb +4 -0
  121. data/lib/gooddata/mixins/meta_property_reader.rb +4 -0
  122. data/lib/gooddata/mixins/meta_property_writer.rb +4 -0
  123. data/lib/gooddata/mixins/mixins.rb +4 -0
  124. data/lib/gooddata/mixins/not_attribute.rb +4 -0
  125. data/lib/gooddata/mixins/not_exportable.rb +4 -0
  126. data/lib/gooddata/mixins/not_fact.rb +4 -0
  127. data/lib/gooddata/mixins/not_label.rb +4 -0
  128. data/lib/gooddata/mixins/not_metric.rb +6 -0
  129. data/lib/gooddata/mixins/obj_id.rb +4 -0
  130. data/lib/gooddata/mixins/rest_getters.rb +4 -0
  131. data/lib/gooddata/mixins/rest_resource.rb +4 -0
  132. data/lib/gooddata/mixins/root_key_getter.rb +4 -0
  133. data/lib/gooddata/mixins/root_key_setter.rb +4 -0
  134. data/lib/gooddata/mixins/timestamps.rb +4 -0
  135. data/lib/gooddata/models/blueprint/anchor_field.rb +4 -0
  136. data/lib/gooddata/models/blueprint/attribute_field.rb +4 -0
  137. data/lib/gooddata/models/blueprint/blueprint.rb +4 -0
  138. data/lib/gooddata/models/blueprint/blueprint_field.rb +4 -0
  139. data/lib/gooddata/models/blueprint/dashboard_builder.rb +4 -0
  140. data/lib/gooddata/models/blueprint/dataset_blueprint.rb +6 -0
  141. data/lib/gooddata/models/blueprint/date_dimension.rb +4 -0
  142. data/lib/gooddata/models/blueprint/fact_field.rb +4 -0
  143. data/lib/gooddata/models/blueprint/label_field.rb +4 -0
  144. data/lib/gooddata/models/blueprint/project_blueprint.rb +6 -0
  145. data/lib/gooddata/models/blueprint/project_builder.rb +4 -0
  146. data/lib/gooddata/models/blueprint/reference_field.rb +4 -0
  147. data/lib/gooddata/models/blueprint/schema_blueprint.rb +4 -0
  148. data/lib/gooddata/models/blueprint/schema_builder.rb +4 -0
  149. data/lib/gooddata/models/blueprint/to_manifest.rb +17 -1
  150. data/lib/gooddata/models/blueprint/to_wire.rb +4 -0
  151. data/lib/gooddata/models/datawarehouse.rb +5 -0
  152. data/lib/gooddata/models/domain.rb +25 -7
  153. data/lib/gooddata/models/execution.rb +4 -0
  154. data/lib/gooddata/models/execution_detail.rb +4 -0
  155. data/lib/gooddata/models/from_wire.rb +4 -0
  156. data/lib/gooddata/models/invitation.rb +4 -0
  157. data/lib/gooddata/models/links.rb +4 -0
  158. data/lib/gooddata/models/membership.rb +4 -0
  159. data/lib/gooddata/models/metadata.rb +37 -10
  160. data/lib/gooddata/models/metadata/attribute.rb +6 -0
  161. data/lib/gooddata/models/metadata/dashboard.rb +54 -16
  162. data/lib/gooddata/models/metadata/dashboard/dashboard_item.rb +60 -0
  163. data/lib/gooddata/models/metadata/dashboard/filter_item.rb +15 -0
  164. data/lib/gooddata/models/metadata/dashboard/report_item.rb +51 -0
  165. data/lib/gooddata/models/metadata/dashboard_tab.rb +88 -0
  166. data/lib/gooddata/models/metadata/dataset.rb +4 -0
  167. data/lib/gooddata/models/metadata/dimension.rb +4 -0
  168. data/lib/gooddata/models/metadata/fact.rb +6 -0
  169. data/lib/gooddata/models/metadata/label.rb +15 -0
  170. data/lib/gooddata/models/metadata/metadata.rb +4 -0
  171. data/lib/gooddata/models/metadata/metric.rb +5 -4
  172. data/lib/gooddata/models/metadata/report.rb +62 -16
  173. data/lib/gooddata/models/metadata/report_definition.rb +44 -47
  174. data/lib/gooddata/models/metadata/variable.rb +4 -0
  175. data/lib/gooddata/models/model.rb +85 -36
  176. data/lib/gooddata/models/models.rb +4 -0
  177. data/lib/gooddata/models/module_constants.rb +4 -0
  178. data/lib/gooddata/models/process.rb +4 -0
  179. data/lib/gooddata/models/profile.rb +13 -0
  180. data/lib/gooddata/models/project.rb +173 -92
  181. data/lib/gooddata/models/project_creator.rb +18 -10
  182. data/lib/gooddata/models/project_metadata.rb +4 -0
  183. data/lib/gooddata/models/project_role.rb +4 -0
  184. data/lib/gooddata/models/report_data_result.rb +217 -125
  185. data/lib/gooddata/models/schedule.rb +140 -65
  186. data/lib/gooddata/models/tab_builder.rb +4 -0
  187. data/lib/gooddata/models/user_filters/mandatory_user_filter.rb +4 -0
  188. data/lib/gooddata/models/user_filters/user_filter.rb +4 -0
  189. data/lib/gooddata/models/user_filters/user_filter_builder.rb +98 -56
  190. data/lib/gooddata/models/user_filters/user_filters.rb +4 -0
  191. data/lib/gooddata/models/user_filters/variable_user_filter.rb +4 -0
  192. data/lib/gooddata/rest/client.rb +41 -38
  193. data/lib/gooddata/rest/connection.rb +91 -20
  194. data/lib/gooddata/rest/connections/rest_client_connection.rb +5 -1
  195. data/lib/gooddata/rest/object.rb +9 -1
  196. data/lib/gooddata/rest/object_factory.rb +5 -1
  197. data/lib/gooddata/rest/resource.rb +5 -1
  198. data/lib/gooddata/rest/rest.rb +4 -0
  199. data/lib/gooddata/version.rb +5 -1
  200. data/spec/bricks/bricks_spec.rb +4 -0
  201. data/spec/data/blueprints/test_project_model_spec.json +2 -2
  202. data/spec/data/gooddata_version_process/gooddata_version.rb +6 -0
  203. data/spec/data/hello_world_process/hello_world.rb +6 -0
  204. data/spec/data/manifests/test_project.json +5 -5
  205. data/spec/data/reports/left_attr_report.json +108 -0
  206. data/spec/data/reports/metric_only_one_line.json +83 -0
  207. data/spec/data/reports/report_1.json +197 -0
  208. data/spec/data/reports/top_attr_report.json +108 -0
  209. data/spec/data/ruby_params_process/ruby_params.rb +6 -0
  210. data/spec/data/ruby_process/process.rb +6 -0
  211. data/spec/environment/default.rb +5 -0
  212. data/spec/environment/develop.rb +10 -5
  213. data/spec/environment/environment.rb +4 -0
  214. data/spec/environment/hotfix.rb +5 -1
  215. data/spec/environment/production.rb +4 -0
  216. data/spec/environment/release.rb +4 -0
  217. data/spec/environment/staging.rb +30 -0
  218. data/spec/environment/staging_3.rb +37 -0
  219. data/spec/helpers/blueprint_helper.rb +4 -0
  220. data/spec/helpers/cli_helper.rb +4 -0
  221. data/spec/helpers/connection_helper.rb +24 -17
  222. data/spec/helpers/crypto_helper.rb +6 -0
  223. data/spec/helpers/csv_helper.rb +4 -0
  224. data/spec/helpers/process_helper.rb +5 -1
  225. data/spec/helpers/project_helper.rb +34 -29
  226. data/spec/helpers/schedule_helper.rb +4 -0
  227. data/spec/helpers/spec_helper.rb +4 -0
  228. data/spec/integration/blueprint_updates_spec.rb +28 -20
  229. data/spec/integration/command_datawarehouse_spec.rb +6 -0
  230. data/spec/integration/command_projects_spec.rb +6 -4
  231. data/spec/integration/create_from_template_spec.rb +6 -0
  232. data/spec/integration/create_project_spec.rb +6 -0
  233. data/spec/integration/deprecated_load_spec.rb +58 -0
  234. data/spec/integration/full_process_schedule_spec.rb +9 -0
  235. data/spec/integration/full_project_spec.rb +63 -9
  236. data/spec/integration/over_to_user_filters_spec.rb +7 -2
  237. data/spec/integration/partial_md_export_import_spec.rb +6 -0
  238. data/spec/integration/project_spec.rb +12 -6
  239. data/spec/integration/rest_spec.rb +6 -2
  240. data/spec/integration/schedule_spec.rb +627 -0
  241. data/spec/integration/user_filters_spec.rb +122 -21
  242. data/spec/integration/variables_spec.rb +8 -15
  243. data/spec/logging_in_logging_out_spec.rb +58 -0
  244. data/spec/spec_helper.rb +10 -5
  245. data/spec/unit/bricks/bricks_spec.rb +4 -0
  246. data/spec/unit/bricks/middleware/aws_middelware_spec.rb +4 -0
  247. data/spec/unit/bricks/middleware/bench_middleware_spec.rb +4 -0
  248. data/spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb +4 -0
  249. data/spec/unit/bricks/middleware/gooddata_middleware_spec.rb +4 -0
  250. data/spec/unit/bricks/middleware/logger_middleware_spec.rb +4 -0
  251. data/spec/unit/bricks/middleware/restforce_middleware_spec.rb +4 -0
  252. data/spec/unit/bricks/middleware/stdout_middleware_spec.rb +4 -0
  253. data/spec/unit/bricks/middleware/twitter_middleware_spec.rb +4 -0
  254. data/spec/unit/cli/cli_spec.rb +4 -0
  255. data/spec/unit/cli/commands/cmd_api_spec.rb +4 -0
  256. data/spec/unit/cli/commands/cmd_auth_spec.rb +4 -0
  257. data/spec/unit/cli/commands/cmd_domain_spec.rb +4 -0
  258. data/spec/unit/cli/commands/cmd_process_spec.rb +4 -0
  259. data/spec/unit/cli/commands/cmd_project_spec.rb +4 -0
  260. data/spec/unit/cli/commands/cmd_role_spec.rb +4 -0
  261. data/spec/unit/cli/commands/cmd_run_ruby_spec.rb +4 -0
  262. data/spec/unit/cli/commands/cmd_scaffold_spec.rb +6 -0
  263. data/spec/unit/cli/commands/cmd_user_spec.rb +6 -0
  264. data/spec/unit/commands/command_api_spec.rb +6 -0
  265. data/spec/unit/commands/command_auth_spec.rb +6 -0
  266. data/spec/unit/commands/command_dataset_spec.rb +10 -4
  267. data/spec/unit/commands/command_process_spec.rb +6 -0
  268. data/spec/unit/commands/command_projects_spec.rb +6 -0
  269. data/spec/unit/commands/command_scaffold_spec.rb +6 -0
  270. data/spec/unit/commands/command_user_spec.rb +6 -0
  271. data/spec/unit/core/connection_spec.rb +6 -0
  272. data/spec/unit/core/logging_spec.rb +4 -0
  273. data/spec/unit/core/nil_logger_spec.rb +4 -0
  274. data/spec/unit/core/project_spec.rb +4 -0
  275. data/spec/unit/data/guesser_spec.rb +6 -2
  276. data/spec/unit/extensions/hash_spec.rb +4 -0
  277. data/spec/unit/godzilla/goodzilla_spec.rb +4 -0
  278. data/spec/unit/helpers/csv_helper_spec.rb +4 -0
  279. data/spec/unit/helpers/data_helper_spec.rb +4 -0
  280. data/spec/unit/helpers/global_helpers_spec.rb +54 -0
  281. data/spec/unit/helpers_spec.rb +6 -1
  282. data/spec/unit/models/blueprint/attributes_spec.rb +5 -0
  283. data/spec/unit/models/blueprint/dataset_spec.rb +5 -0
  284. data/spec/unit/models/blueprint/labels_spec.rb +5 -0
  285. data/spec/unit/models/blueprint/project_blueprint_spec.rb +5 -0
  286. data/spec/unit/models/blueprint/reference_spec.rb +5 -0
  287. data/spec/unit/models/blueprint/schema_builder_spec.rb +4 -0
  288. data/spec/unit/models/blueprint/to_wire_spec.rb +5 -0
  289. data/spec/unit/models/domain_spec.rb +9 -7
  290. data/spec/unit/models/execution_spec.rb +6 -0
  291. data/spec/unit/models/from_wire_spec.rb +4 -0
  292. data/spec/unit/models/invitation_spec.rb +4 -0
  293. data/spec/unit/models/membership_spec.rb +4 -0
  294. data/spec/unit/models/metadata_spec.rb +46 -0
  295. data/spec/unit/models/metric_spec.rb +4 -0
  296. data/spec/unit/models/model_spec.rb +4 -0
  297. data/spec/unit/models/params_spec.rb +4 -0
  298. data/spec/unit/models/profile_spec.rb +4 -0
  299. data/spec/unit/models/project_creator_spec.rb +127 -0
  300. data/spec/unit/models/project_role_spec.rb +4 -0
  301. data/spec/unit/models/project_spec.rb +4 -0
  302. data/spec/unit/models/report_result_data_spec.rb +193 -0
  303. data/spec/unit/models/schedule_spec.rb +241 -386
  304. data/spec/unit/models/to_manifest_spec.rb +21 -0
  305. data/spec/unit/models/{unit_project.rb → unit_project_spec.rb} +21 -18
  306. data/spec/unit/models/user_filters_spec.rb +7 -1
  307. data/spec/unit/models/variable_spec.rb +6 -0
  308. data/spec/unit/rest/polling_spec.rb +8 -5
  309. data/spec/unit/rest/resource_spec.rb +4 -0
  310. metadata +190 -129
  311. data/.autotest +0 -2
  312. data/.travis.yml +0 -22
  313. data/examples.rb +0 -69
  314. data/lib/gooddata/models/data_result.rb +0 -38
  315. data/lib/gooddata/models/empty_result.rb +0 -57
  316. data/spec/unit/models/project_creator.rb +0 -73
@@ -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
 
@@ -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
- ['dev_id', 'email'],
18
- ['1', 'tomas'],
19
- ['2', 'petr'],
20
- ['3', 'jirka']]
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
- ['anchor_label', 'some_id_name', 'lines_changed', 'committed_on', 'dev_id', 'repo_id'],
49
- ['111', 1, 3, '01/01/2011', '1', '1'],
50
- ['222', 2, 9, '01/01/2011', '2', '2'],
51
- ['333', 3, 4, '01/01/2011', '3', '3']]
52
- @project.upload(data, @blueprint, 'dataset.commits')
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', 'petr@gmail.com', 'tomas@gmail.com'],
73
- [3.0, 2.0, 1.0]]
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', 'email'],
82
- [1, '01/01/2011', '1', '1', 'tomas'],
83
- [2, '01/01/2011', '2', '2', 'petr'],
84
- [3, '01/01/2011', '3', '3', 'jirka']]
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 [['jirka@gmail.com', 'petr@gmail.com', 'tomas@gmail.com'],
91
- [3.0, 2.0, 1.0]]
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[1][1]).to eq 3
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[1][1]).to eq 3
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 proejct'
477
- cloned_project = @project.clone(title: title, auth_token: ConnectionHelper::GD_PROJECT_TOKEN, environment: ProjectHelper::ENVIRONMENT)
478
- expect(cloned_project.title).to eq title
479
- expect(cloned_project.facts.first.create_metric.execute).to eq 9
480
- cloned_project.delete
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 apossible to delete data from a dataset' do
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 "Variables implementation", :constraint => 'slow' do
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
- expect(@project.member?(res['projectUsersUpdateResult']['successful'].first)).to be_truthy
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.all? { |x| x[:type] == :error }).to eq true
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[:uri]}
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