gooddata 0.6.20 → 0.6.22

Sign up to get free protection for your applications and to get access to all the features.
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