gooddata 0.6.49 → 0.6.50

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 (390) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -4
  3. data/CLI.md +0 -4
  4. data/DEPENDENCIES.md +0 -8
  5. data/Dockerfile.jruby +19 -0
  6. data/Dockerfile.ruby +19 -0
  7. data/LICENSE +2 -2
  8. data/LICENSE.rb +1 -1
  9. data/Rakefile +1 -1
  10. data/gooddata.gemspec +29 -28
  11. data/lib/gooddata.rb +2 -1
  12. data/lib/gooddata/app/app.rb +1 -1
  13. data/lib/gooddata/bricks/base_downloader.rb +1 -1
  14. data/lib/gooddata/bricks/brick.rb +3 -4
  15. data/lib/gooddata/bricks/bricks.rb +3 -1
  16. data/lib/gooddata/bricks/middleware/aws_middleware.rb +6 -8
  17. data/lib/gooddata/bricks/middleware/base_middleware.rb +2 -1
  18. data/lib/gooddata/bricks/middleware/bench_middleware.rb +2 -1
  19. data/lib/gooddata/bricks/middleware/bulk_salesforce_middleware.rb +3 -3
  20. data/lib/gooddata/bricks/middleware/decode_params_middleware.rb +3 -2
  21. data/lib/gooddata/bricks/middleware/dwh_middleware.rb +28 -0
  22. data/lib/gooddata/bricks/middleware/fs_download_middleware.rb +2 -2
  23. data/lib/gooddata/bricks/middleware/fs_upload_middleware.rb +2 -2
  24. data/lib/gooddata/bricks/middleware/gooddata_middleware.rb +84 -21
  25. data/lib/gooddata/bricks/middleware/logger_middleware.rb +1 -1
  26. data/lib/gooddata/bricks/middleware/middleware.rb +1 -1
  27. data/lib/gooddata/bricks/middleware/params_inspect_middleware.rb +21 -0
  28. data/lib/gooddata/bricks/middleware/restforce_middleware.rb +26 -26
  29. data/lib/gooddata/bricks/middleware/stdout_middleware.rb +1 -1
  30. data/lib/gooddata/bricks/middleware/twitter_middleware.rb +1 -1
  31. data/lib/gooddata/bricks/middleware/undot_params_middleware.rb +1 -1
  32. data/lib/gooddata/bricks/pipeline.rb +6 -13
  33. data/lib/gooddata/bricks/utils.rb +3 -3
  34. data/lib/gooddata/cli/cli.rb +1 -1
  35. data/lib/gooddata/cli/commands/auth_cmd.rb +1 -1
  36. data/lib/gooddata/cli/commands/domain_cmd.rb +1 -1
  37. data/lib/gooddata/cli/commands/project_cmd.rb +1 -18
  38. data/lib/gooddata/cli/hooks.rb +1 -2
  39. data/lib/gooddata/cli/shared.rb +1 -1
  40. data/lib/gooddata/cli/terminal.rb +1 -1
  41. data/lib/gooddata/client.rb +1 -1
  42. data/lib/gooddata/commands/api.rb +1 -1
  43. data/lib/gooddata/commands/auth.rb +1 -1
  44. data/lib/gooddata/commands/base.rb +1 -1
  45. data/lib/gooddata/commands/commands.rb +1 -1
  46. data/lib/gooddata/commands/datasets.rb +1 -1
  47. data/lib/gooddata/commands/datawarehouse.rb +1 -1
  48. data/lib/gooddata/commands/domain.rb +1 -1
  49. data/lib/gooddata/commands/process.rb +1 -1
  50. data/lib/gooddata/commands/project.rb +2 -31
  51. data/lib/gooddata/commands/projects.rb +1 -1
  52. data/lib/gooddata/commands/role.rb +1 -1
  53. data/lib/gooddata/commands/runners.rb +1 -1
  54. data/lib/gooddata/commands/scaffold.rb +1 -1
  55. data/lib/gooddata/commands/user.rb +1 -1
  56. data/lib/gooddata/connection.rb +1 -1
  57. data/lib/gooddata/core/core.rb +1 -1
  58. data/lib/gooddata/core/logging.rb +1 -1
  59. data/lib/gooddata/core/nil_logger.rb +1 -1
  60. data/lib/gooddata/core/project.rb +1 -1
  61. data/lib/gooddata/core/rest.rb +1 -1
  62. data/lib/gooddata/core/user.rb +1 -1
  63. data/lib/gooddata/data/data.rb +1 -1
  64. data/lib/gooddata/data/guesser.rb +1 -1
  65. data/lib/gooddata/exceptions/attr_element_not_found.rb +1 -1
  66. data/lib/gooddata/exceptions/command_failed.rb +1 -1
  67. data/lib/gooddata/exceptions/exceptions.rb +1 -1
  68. data/lib/gooddata/exceptions/execution_limit_exceeded.rb +1 -1
  69. data/lib/gooddata/exceptions/export_clone.rb +4 -0
  70. data/lib/gooddata/exceptions/filter_maqlization.rb +1 -1
  71. data/lib/gooddata/exceptions/import_clone.rb +4 -0
  72. data/lib/gooddata/exceptions/malformed_user.rb +1 -1
  73. data/lib/gooddata/exceptions/maql_execution.rb +1 -1
  74. data/lib/gooddata/exceptions/no_project_error.rb +1 -1
  75. data/lib/gooddata/exceptions/object_migration.rb +1 -1
  76. data/lib/gooddata/exceptions/project_not_found.rb +1 -1
  77. data/lib/gooddata/exceptions/segment_not_empty.rb +1 -1
  78. data/lib/gooddata/exceptions/uncomputable_report.rb +1 -1
  79. data/lib/gooddata/exceptions/user_in_different_domain.rb +1 -1
  80. data/lib/gooddata/exceptions/validation_error.rb +1 -1
  81. data/lib/gooddata/extensions/big_decimal.rb +1 -1
  82. data/lib/gooddata/extensions/class.rb +11 -0
  83. data/lib/gooddata/extensions/enumerable.rb +1 -1
  84. data/lib/gooddata/extensions/extensions.rb +1 -1
  85. data/lib/gooddata/extensions/false.rb +9 -1
  86. data/lib/gooddata/extensions/hash.rb +12 -1
  87. data/lib/gooddata/extensions/integer.rb +5 -0
  88. data/lib/gooddata/extensions/nil.rb +5 -1
  89. data/lib/gooddata/extensions/numeric.rb +1 -1
  90. data/lib/gooddata/extensions/object.rb +5 -1
  91. data/lib/gooddata/extensions/symbol.rb +1 -1
  92. data/lib/gooddata/extensions/true.rb +9 -1
  93. data/lib/gooddata/extract.rb +1 -1
  94. data/lib/gooddata/goodzilla/goodzilla.rb +1 -1
  95. data/lib/gooddata/helpers/auth_helpers.rb +1 -1
  96. data/lib/gooddata/helpers/csv_helper.rb +1 -1
  97. data/lib/gooddata/helpers/data_helper.rb +19 -10
  98. data/lib/gooddata/helpers/erb_helper.rb +23 -0
  99. data/lib/gooddata/helpers/global_helpers.rb +5 -73
  100. data/lib/gooddata/helpers/global_helpers_params.rb +73 -7
  101. data/lib/gooddata/helpers/helpers.rb +1 -1
  102. data/lib/gooddata/lcm/actions/actions.rb +12 -0
  103. data/lib/gooddata/lcm/actions/associate_clients.rb +46 -0
  104. data/lib/gooddata/lcm/actions/base_action.rb +23 -0
  105. data/lib/gooddata/lcm/actions/collect_clients.rb +89 -0
  106. data/lib/gooddata/lcm/actions/collect_segment_clients.rb +103 -0
  107. data/lib/gooddata/lcm/actions/collect_segments.rb +59 -0
  108. data/lib/gooddata/lcm/actions/create_segment_masters.rb +167 -0
  109. data/lib/gooddata/lcm/actions/ensure_release_table.rb +56 -0
  110. data/lib/gooddata/lcm/actions/ensure_segments.rb +35 -0
  111. data/lib/gooddata/lcm/actions/ensure_technical_users_domain.rb +66 -0
  112. data/lib/gooddata/lcm/actions/ensure_technical_users_project.rb +68 -0
  113. data/lib/gooddata/lcm/actions/ensure_titles.rb +54 -0
  114. data/lib/gooddata/lcm/actions/hello_world.rb +44 -0
  115. data/lib/gooddata/lcm/actions/print_actions.rb +61 -0
  116. data/lib/gooddata/lcm/actions/print_modes.rb +72 -0
  117. data/lib/gooddata/lcm/actions/print_types.rb +55 -0
  118. data/lib/gooddata/lcm/actions/provision_clients.rb +80 -0
  119. data/lib/gooddata/lcm/actions/purge_clients.rb +78 -0
  120. data/lib/gooddata/lcm/actions/segments_filter.rb +50 -0
  121. data/lib/gooddata/lcm/actions/synchronize_attribute_drillpaths.rb +60 -0
  122. data/lib/gooddata/lcm/actions/synchronize_clients.rb +87 -0
  123. data/lib/gooddata/lcm/actions/synchronize_color_palette.rb +59 -0
  124. data/lib/gooddata/lcm/actions/synchronize_label_types.rb +61 -0
  125. data/lib/gooddata/lcm/actions/synchronize_ldm.rb +64 -0
  126. data/lib/gooddata/lcm/actions/synchronize_meta.rb +55 -0
  127. data/lib/gooddata/lcm/actions/synchronize_new_segments.rb +55 -0
  128. data/lib/gooddata/lcm/actions/synchronize_processes.rb +66 -0
  129. data/lib/gooddata/lcm/actions/synchronize_schedules.rb +81 -0
  130. data/lib/gooddata/lcm/actions/update_release_table.rb +80 -0
  131. data/lib/gooddata/lcm/data/create_lcm_release.sql.erb +5 -0
  132. data/lib/gooddata/lcm/data/insert_into_lcm_release.sql.erb +11 -0
  133. data/lib/gooddata/lcm/data/select_from_lcm_release.sql.erb +8 -0
  134. data/lib/gooddata/lcm/data/update_lcm_release.sql.erb +7 -0
  135. data/lib/gooddata/lcm/dsl/dsl.rb +50 -0
  136. data/lib/gooddata/lcm/dsl/params_dsl.rb +61 -0
  137. data/lib/gooddata/lcm/dsl/type_dsl.rb +61 -0
  138. data/lib/gooddata/lcm/helpers/check_helper.rb +37 -0
  139. data/lib/gooddata/lcm/helpers/helpers.rb +12 -0
  140. data/lib/gooddata/lcm/lcm.rb +161 -20
  141. data/lib/gooddata/lcm/lcm2.rb +260 -0
  142. data/lib/gooddata/lcm/types/base_type.rb +29 -0
  143. data/lib/gooddata/lcm/types/class/ads_client.rb +35 -0
  144. data/lib/gooddata/lcm/types/class/class.rb +21 -0
  145. data/lib/gooddata/lcm/types/class/gd_client.rb +35 -0
  146. data/lib/gooddata/lcm/types/class/types.rb +12 -0
  147. data/lib/gooddata/lcm/types/complex/complex.rb +33 -0
  148. data/lib/gooddata/lcm/types/complex/release_query.rb +35 -0
  149. data/lib/gooddata/lcm/types/complex/segment.rb +37 -0
  150. data/lib/gooddata/lcm/types/complex/synchronization_info.rb +32 -0
  151. data/lib/gooddata/lcm/types/complex/tokens.rb +31 -0
  152. data/lib/gooddata/lcm/types/complex/types.rb +12 -0
  153. data/lib/gooddata/lcm/types/complex/update_preference.rb +32 -0
  154. data/lib/gooddata/lcm/types/param.rb +16 -0
  155. data/lib/gooddata/lcm/types/scalar/bool.rb +22 -0
  156. data/lib/gooddata/lcm/types/scalar/hash.rb +22 -0
  157. data/lib/gooddata/lcm/types/scalar/integer.rb +22 -0
  158. data/lib/gooddata/lcm/types/scalar/object.rb +22 -0
  159. data/lib/gooddata/lcm/types/scalar/string.rb +22 -0
  160. data/lib/gooddata/lcm/types/scalar/types.rb +12 -0
  161. data/lib/gooddata/lcm/types/special/array.rb +35 -0
  162. data/lib/gooddata/lcm/types/special/enum.rb +17 -0
  163. data/lib/gooddata/lcm/types/special/types.rb +12 -0
  164. data/lib/gooddata/lcm/types/types.rb +12 -0
  165. data/lib/gooddata/mixins/author.rb +1 -1
  166. data/lib/gooddata/mixins/content_getter.rb +1 -1
  167. data/lib/gooddata/mixins/content_property_reader.rb +1 -1
  168. data/lib/gooddata/mixins/content_property_writer.rb +1 -1
  169. data/lib/gooddata/mixins/contributor.rb +1 -1
  170. data/lib/gooddata/mixins/data_getter.rb +1 -1
  171. data/lib/gooddata/mixins/data_property_reader.rb +1 -1
  172. data/lib/gooddata/mixins/data_property_writer.rb +1 -1
  173. data/lib/gooddata/mixins/inspector.rb +1 -1
  174. data/lib/gooddata/mixins/is_attribute.rb +1 -1
  175. data/lib/gooddata/mixins/is_dimension.rb +1 -1
  176. data/lib/gooddata/mixins/is_fact.rb +1 -1
  177. data/lib/gooddata/mixins/is_label.rb +1 -1
  178. data/lib/gooddata/mixins/links.rb +1 -1
  179. data/lib/gooddata/mixins/md_finders.rb +1 -1
  180. data/lib/gooddata/mixins/md_grantees.rb +1 -1
  181. data/lib/gooddata/mixins/md_id_to_uri.rb +9 -3
  182. data/lib/gooddata/mixins/md_json.rb +1 -1
  183. data/lib/gooddata/mixins/md_lock.rb +1 -1
  184. data/lib/gooddata/mixins/md_object_id.rb +1 -1
  185. data/lib/gooddata/mixins/md_object_indexer.rb +1 -1
  186. data/lib/gooddata/mixins/md_object_query.rb +1 -1
  187. data/lib/gooddata/mixins/md_relations.rb +1 -1
  188. data/lib/gooddata/mixins/meta_getter.rb +1 -1
  189. data/lib/gooddata/mixins/meta_property_reader.rb +1 -1
  190. data/lib/gooddata/mixins/meta_property_writer.rb +1 -1
  191. data/lib/gooddata/mixins/mixins.rb +1 -1
  192. data/lib/gooddata/mixins/not_attribute.rb +1 -1
  193. data/lib/gooddata/mixins/not_exportable.rb +1 -1
  194. data/lib/gooddata/mixins/not_fact.rb +1 -1
  195. data/lib/gooddata/mixins/not_group.rb +1 -1
  196. data/lib/gooddata/mixins/not_label.rb +1 -1
  197. data/lib/gooddata/mixins/not_metric.rb +1 -1
  198. data/lib/gooddata/mixins/obj_id.rb +1 -1
  199. data/lib/gooddata/mixins/rest_getters.rb +1 -1
  200. data/lib/gooddata/mixins/rest_resource.rb +1 -1
  201. data/lib/gooddata/mixins/root_key_getter.rb +1 -1
  202. data/lib/gooddata/mixins/root_key_setter.rb +1 -1
  203. data/lib/gooddata/mixins/timestamps.rb +1 -1
  204. data/lib/gooddata/models/ads_output_stage.rb +85 -0
  205. data/lib/gooddata/models/automated_data_distribution.rb +36 -0
  206. data/lib/gooddata/models/blueprint/anchor_field.rb +4 -3
  207. data/lib/gooddata/models/blueprint/attribute_field.rb +18 -2
  208. data/lib/gooddata/models/blueprint/blueprint.rb +1 -1
  209. data/lib/gooddata/models/blueprint/blueprint_field.rb +1 -1
  210. data/lib/gooddata/models/blueprint/dashboard_builder.rb +1 -1
  211. data/lib/gooddata/models/blueprint/dataset_blueprint.rb +6 -1
  212. data/lib/gooddata/models/blueprint/date_dimension.rb +1 -1
  213. data/lib/gooddata/models/blueprint/fact_field.rb +1 -1
  214. data/lib/gooddata/models/blueprint/label_field.rb +5 -1
  215. data/lib/gooddata/models/blueprint/project_blueprint.rb +1 -1
  216. data/lib/gooddata/models/blueprint/project_builder.rb +1 -1
  217. data/lib/gooddata/models/blueprint/reference_field.rb +1 -1
  218. data/lib/gooddata/models/blueprint/schema_blueprint.rb +1 -1
  219. data/lib/gooddata/models/blueprint/schema_builder.rb +1 -1
  220. data/lib/gooddata/models/blueprint/to_manifest.rb +7 -3
  221. data/lib/gooddata/models/blueprint/to_wire.rb +12 -1
  222. data/lib/gooddata/models/channel_configuration.rb +112 -0
  223. data/lib/gooddata/models/client.rb +42 -6
  224. data/lib/gooddata/models/client_synchronization_result.rb +1 -1
  225. data/lib/gooddata/models/client_synchronization_result_details.rb +1 -1
  226. data/lib/gooddata/models/datawarehouse.rb +25 -3
  227. data/lib/gooddata/models/domain.rb +29 -4
  228. data/lib/gooddata/models/execution.rb +1 -1
  229. data/lib/gooddata/models/execution_detail.rb +1 -1
  230. data/lib/gooddata/models/from_wire.rb +8 -1
  231. data/lib/gooddata/models/invitation.rb +1 -1
  232. data/lib/gooddata/models/links.rb +1 -1
  233. data/lib/gooddata/models/membership.rb +1 -1
  234. data/lib/gooddata/models/metadata.rb +3 -2
  235. data/lib/gooddata/models/metadata/attribute.rb +7 -1
  236. data/lib/gooddata/models/metadata/dashboard.rb +3 -3
  237. data/lib/gooddata/models/metadata/dashboard/dashboard_item.rb +1 -1
  238. data/lib/gooddata/models/metadata/dashboard/filter_apply_item.rb +2 -2
  239. data/lib/gooddata/models/metadata/dashboard/filter_item.rb +2 -2
  240. data/lib/gooddata/models/metadata/dashboard/geo_chart_item.rb +2 -2
  241. data/lib/gooddata/models/metadata/dashboard/headline_item.rb +2 -2
  242. data/lib/gooddata/models/metadata/dashboard/iframe_item.rb +2 -2
  243. data/lib/gooddata/models/metadata/dashboard/report_item.rb +2 -2
  244. data/lib/gooddata/models/metadata/dashboard/text_item.rb +2 -2
  245. data/lib/gooddata/models/metadata/dashboard_tab.rb +2 -2
  246. data/lib/gooddata/models/metadata/dataset.rb +1 -1
  247. data/lib/gooddata/models/metadata/dimension.rb +1 -1
  248. data/lib/gooddata/models/metadata/fact.rb +1 -1
  249. data/lib/gooddata/models/metadata/folder.rb +1 -1
  250. data/lib/gooddata/models/metadata/label.rb +1 -1
  251. data/lib/gooddata/models/metadata/metadata.rb +1 -1
  252. data/lib/gooddata/models/metadata/metric.rb +1 -1
  253. data/lib/gooddata/models/metadata/report.rb +1 -1
  254. data/lib/gooddata/models/metadata/report_definition.rb +1 -1
  255. data/lib/gooddata/models/metadata/scheduled_mail.rb +2 -2
  256. data/lib/gooddata/models/metadata/scheduled_mail/dashboard_attachment.rb +1 -1
  257. data/lib/gooddata/models/metadata/scheduled_mail/report_attachment.rb +1 -1
  258. data/lib/gooddata/models/metadata/variable.rb +1 -1
  259. data/lib/gooddata/models/model.rb +1 -1
  260. data/lib/gooddata/models/models.rb +1 -1
  261. data/lib/gooddata/models/module_constants.rb +1 -1
  262. data/lib/gooddata/models/notification_rule.rb +113 -0
  263. data/lib/gooddata/models/process.rb +10 -3
  264. data/lib/gooddata/models/profile.rb +9 -1
  265. data/lib/gooddata/models/project.rb +248 -50
  266. data/lib/gooddata/models/project_creator.rb +2 -2
  267. data/lib/gooddata/models/project_metadata.rb +1 -1
  268. data/lib/gooddata/models/project_role.rb +1 -1
  269. data/lib/gooddata/models/report_data_result.rb +1 -1
  270. data/lib/gooddata/models/schedule.rb +49 -13
  271. data/lib/gooddata/models/segment.rb +3 -3
  272. data/lib/gooddata/models/style_setting.rb +71 -0
  273. data/lib/gooddata/models/subscription.rb +181 -0
  274. data/lib/gooddata/models/tab_builder.rb +1 -1
  275. data/lib/gooddata/models/user_filters/mandatory_user_filter.rb +1 -1
  276. data/lib/gooddata/models/user_filters/user_filter.rb +1 -1
  277. data/lib/gooddata/models/user_filters/user_filter_builder.rb +11 -5
  278. data/lib/gooddata/models/user_filters/user_filters.rb +1 -1
  279. data/lib/gooddata/models/user_filters/variable_user_filter.rb +1 -1
  280. data/lib/gooddata/models/user_group.rb +19 -12
  281. data/lib/gooddata/rest/client.rb +9 -1
  282. data/lib/gooddata/rest/connection.rb +18 -9
  283. data/lib/gooddata/rest/object.rb +1 -1
  284. data/lib/gooddata/rest/object_factory.rb +1 -1
  285. data/lib/gooddata/rest/resource.rb +1 -1
  286. data/lib/gooddata/rest/rest.rb +1 -1
  287. data/lib/gooddata/version.rb +2 -2
  288. data/spec/.rubocop.yml +16 -0
  289. data/spec/bricks/bricks_spec.rb +13 -15
  290. data/spec/data/blueprints/attribute_sort_order_blueprint.json +72 -0
  291. data/spec/data/gooddata_version_process/gooddata_version.rb +1 -1
  292. data/spec/data/hello_world_process/hello_world.rb +2 -2
  293. data/spec/data/ruby_params_process/ruby_params.rb +1 -1
  294. data/spec/data/ruby_process/process.rb +2 -2
  295. data/spec/data/wire_models/attribute_sort_by_model.json +73 -0
  296. data/spec/environment/default.rb +14 -13
  297. data/spec/environment/develop.rb +26 -11
  298. data/spec/environment/environment.rb +2 -1
  299. data/spec/environment/hotfix.rb +15 -7
  300. data/spec/environment/production.rb +6 -14
  301. data/spec/environment/staging.rb +9 -10
  302. data/spec/helpers/blueprint_helper.rb +11 -10
  303. data/spec/helpers/cli_helper.rb +26 -24
  304. data/spec/helpers/connection_helper.rb +28 -26
  305. data/spec/helpers/crypto_helper.rb +8 -6
  306. data/spec/helpers/csv_helper.rb +7 -5
  307. data/spec/helpers/process_helper.rb +13 -11
  308. data/spec/helpers/project_helper.rb +36 -34
  309. data/spec/helpers/schedule_helper.rb +13 -11
  310. data/spec/helpers/spec_helper.rb +8 -6
  311. data/spec/integration/ads_output_stage_spec.rb +55 -0
  312. data/spec/integration/blueprint_updates_spec.rb +22 -16
  313. data/spec/integration/blueprint_with_grain_spec.rb +5 -3
  314. data/spec/integration/channel_configuration_spec.rb +67 -0
  315. data/spec/integration/clients_spec.rb +31 -22
  316. data/spec/integration/command_datawarehouse_spec.rb +4 -4
  317. data/spec/integration/command_projects_spec.rb +6 -6
  318. data/spec/integration/create_from_template_spec.rb +4 -3
  319. data/spec/integration/create_project_spec.rb +7 -4
  320. data/spec/integration/date_dim_switch_spec.rb +25 -28
  321. data/spec/integration/deprecated_load_spec.rb +11 -9
  322. data/spec/integration/full_process_schedule_spec.rb +82 -13
  323. data/spec/integration/full_project_spec.rb +67 -45
  324. data/spec/integration/lcm_spec.rb +41 -0
  325. data/spec/integration/over_to_user_filters_spec.rb +14 -10
  326. data/spec/integration/partial_md_export_import_spec.rb +3 -4
  327. data/spec/integration/project_spec.rb +101 -42
  328. data/spec/integration/rest_spec.rb +5 -4
  329. data/spec/integration/schedule_spec.rb +28 -39
  330. data/spec/integration/segments_spec.rb +42 -31
  331. data/spec/integration/subscription_spec.rb +63 -0
  332. data/spec/integration/user_filters_spec.rb +49 -39
  333. data/spec/integration/user_group_spec.rb +25 -5
  334. data/spec/integration/variables_spec.rb +34 -32
  335. data/spec/logging_in_logging_out_spec.rb +6 -8
  336. data/spec/spec_helper.rb +3 -3
  337. data/spec/unit/bricks/bricks_spec.rb +3 -4
  338. data/spec/unit/bricks/middleware/aws_middelware_spec.rb +8 -15
  339. data/spec/unit/bricks/middleware/bench_middleware_spec.rb +2 -2
  340. data/spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb +2 -2
  341. data/spec/unit/bricks/middleware/gooddata_middleware_spec.rb +2 -2
  342. data/spec/unit/bricks/middleware/logger_middleware_spec.rb +2 -2
  343. data/spec/unit/bricks/middleware/restforce_middleware_spec.rb +3 -3
  344. data/spec/unit/bricks/middleware/stdout_middleware_spec.rb +3 -3
  345. data/spec/unit/bricks/middleware/twitter_middleware_spec.rb +3 -3
  346. data/spec/unit/cli/cli_spec.rb +3 -3
  347. data/spec/unit/cli/commands/cmd_auth_spec.rb +2 -2
  348. data/spec/unit/commands/command_projects_spec.rb +3 -3
  349. data/spec/unit/core/connection_spec.rb +3 -4
  350. data/spec/unit/core/logging_spec.rb +2 -5
  351. data/spec/unit/core/nil_logger_spec.rb +2 -2
  352. data/spec/unit/core/project_spec.rb +4 -4
  353. data/spec/unit/extensions/hash_spec.rb +3 -4
  354. data/spec/unit/godzilla/goodzilla_spec.rb +22 -26
  355. data/spec/unit/helpers/csv_helper_spec.rb +3 -3
  356. data/spec/unit/helpers/data_helper_spec.rb +6 -18
  357. data/spec/unit/helpers/global_helpers_spec.rb +112 -28
  358. data/spec/unit/helpers_spec.rb +139 -2
  359. data/spec/unit/models/blueprint/attribute_sort_by_spec.rb +20 -0
  360. data/spec/unit/models/blueprint/attributes_spec.rb +1 -2
  361. data/spec/unit/models/blueprint/dataset_spec.rb +2 -3
  362. data/spec/unit/models/blueprint/labels_spec.rb +1 -2
  363. data/spec/unit/models/blueprint/project_blueprint_spec.rb +34 -35
  364. data/spec/unit/models/blueprint/reference_spec.rb +1 -2
  365. data/spec/unit/models/blueprint/schema_builder_spec.rb +5 -7
  366. data/spec/unit/models/blueprint/to_wire_spec.rb +76 -55
  367. data/spec/unit/models/domain_spec.rb +4 -5
  368. data/spec/unit/models/execution_spec.rb +16 -15
  369. data/spec/unit/models/from_wire_spec.rb +24 -19
  370. data/spec/unit/models/invitation_spec.rb +1 -1
  371. data/spec/unit/models/membership_spec.rb +36 -41
  372. data/spec/unit/models/metadata_spec.rb +20 -18
  373. data/spec/unit/models/metric_spec.rb +67 -55
  374. data/spec/unit/models/model_spec.rb +32 -37
  375. data/spec/unit/models/params_spec.rb +1 -1
  376. data/spec/unit/models/profile_spec.rb +40 -45
  377. data/spec/unit/models/project_creator_spec.rb +27 -29
  378. data/spec/unit/models/project_role_spec.rb +1 -1
  379. data/spec/unit/models/project_spec.rb +65 -2
  380. data/spec/unit/models/report_result_data_spec.rb +7 -12
  381. data/spec/unit/models/schedule_spec.rb +71 -35
  382. data/spec/unit/models/to_manifest_spec.rb +69 -4
  383. data/spec/unit/models/unit_project_spec.rb +12 -12
  384. data/spec/unit/models/user_filters_spec.rb +40 -40
  385. data/spec/unit/models/variable_spec.rb +108 -93
  386. data/spec/unit/rest/polling_spec.rb +7 -7
  387. data/spec/unit/rest/resource_spec.rb +2 -2
  388. metadata +145 -228
  389. data/spec/environment/release.rb +0 -21
  390. data/spec/environment/staging_3.rb +0 -36
@@ -1,14 +1,12 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
7
- require 'pry'
8
7
  require 'gooddata/models/model'
9
8
 
10
9
  describe GoodData::Model::SchemaBuilder do
11
-
12
10
  it "should create a schema" do
13
11
  builder = GoodData::Model::SchemaBuilder.new("a_title")
14
12
  blueprint = builder.to_blueprint
@@ -21,7 +19,7 @@ describe GoodData::Model::SchemaBuilder do
21
19
  builder.add_fact("amount", :title => "Amount")
22
20
 
23
21
  blueprint = builder.to_blueprint
24
- blueprint.attributes.count == 1
22
+ expect(blueprint.attributes.count).to eq(1)
25
23
  end
26
24
 
27
25
  it "should be able to create from block" do
@@ -32,7 +30,7 @@ describe GoodData::Model::SchemaBuilder do
32
30
  end
33
31
 
34
32
  blueprint = builder.to_blueprint
35
- blueprint.attributes.count == 1
36
- blueprint.facts.count == 1
33
+ expect(blueprint.attributes.count).to eq(1)
34
+ expect(blueprint.facts.count).to eq(1)
37
35
  end
38
- end
36
+ end
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
@@ -9,7 +9,6 @@ require 'gooddata'
9
9
  include GoodData::Model
10
10
 
11
11
  describe GoodData::Model::ProjectBlueprint do
12
-
13
12
  before(:each) do
14
13
  @spec = JSON.parse(File.read("./spec/data/blueprints/big_blueprint_not_pruned.json"), :symbolize_names => true)
15
14
  @blueprint = GoodData::Model::ProjectBlueprint.new(@spec)
@@ -26,13 +25,13 @@ describe GoodData::Model::ProjectBlueprint do
26
25
 
27
26
  it 'it should turn into wire another project' do
28
27
  spec = JSON.parse(File.read("./spec/data/blueprints/test_project_model_spec.json"), :symbolize_names => true)
29
- res = ToWire.to_wire(spec)
28
+ ToWire.to_wire(spec)
30
29
  end
31
30
 
32
31
  it 'should create manifest' do
33
32
  spec = JSON.parse(File.read("./spec/data/blueprints/test_blueprint.json"), :symbolize_names => true)
34
33
  wire_spec = JSON.parse(File.read("./spec/data/wire_models/test_blueprint.json"), :symbolize_names => true)
35
- manifest_spec = JSON.parse(File.read("./spec/data/manifests/test_blueprint.json"))
34
+ JSON.parse(File.read("./spec/data/manifests/test_blueprint.json"))
36
35
  expect(ToWire.to_wire(spec)).to eq wire_spec
37
36
  end
38
37
  end
@@ -42,71 +41,95 @@ describe GoodData::Model::ProjectBlueprint do
42
41
  dataset = ProjectBlueprint.find_dataset(@spec, 'dataset.stage_history')
43
42
 
44
43
  result = ToWire.anchor_to_wire(@spec, dataset)
45
- expect(result).to eq ({
44
+ expect(result).to eq(
46
45
  attribute: {
47
46
  identifier: "attr.dataset.stage_history.factsof",
48
47
  title: "Records of stage_history",
49
- folder: "stage_history"}})
48
+ folder: "stage_history"
49
+ }
50
+ )
50
51
  end
51
52
 
52
53
  it 'should generate anchor with label' do
53
54
  dataset = ProjectBlueprint.find_dataset(@spec, 'dataset.opportunityanalysis')
54
55
  result = ToWire.anchor_to_wire(nil, dataset)
55
- expect(result).to eq ({
56
+ expect(result).to eq(
56
57
  attribute: {
57
- :identifier=>"attr.opportunityanalysis.techoppanalysis",
58
- :title=>"Tech Opp. Analysis",
59
- :folder=>"Opportunity Benchmark",
60
- :labels=>[
61
- {:label=>
62
- {:identifier=>"label.opportunityanalysis.techoppanalysis",
63
- :title=>"Tech Opp. Analysis",
64
- :type=>"GDC.text",
65
- :dataType=>"VARCHAR(128)"}}],
66
- :defaultLabel=>"label.opportunityanalysis.techoppanalysis"}})
58
+ :identifier => "attr.opportunityanalysis.techoppanalysis",
59
+ :title => "Tech Opp. Analysis",
60
+ :folder => "Opportunity Benchmark",
61
+ :labels => [
62
+ {
63
+ :label => {
64
+ :identifier => "label.opportunityanalysis.techoppanalysis",
65
+ :title => "Tech Opp. Analysis",
66
+ :type => "GDC.text",
67
+ :dataType => "VARCHAR(128)"
68
+ }
69
+ }
70
+ ],
71
+ :defaultLabel => "label.opportunityanalysis.techoppanalysis"
72
+ }
73
+ )
67
74
  end
68
75
  end
69
76
 
70
77
  describe '#anchor_to_attribute' do
71
78
  it 'should generate attribute without label' do
72
79
  dataset = ProjectBlueprint.find_dataset(@spec, 'dataset.stage_history')
73
- a = DatasetBlueprint.attributes(dataset).find {|a| a[:id] == 'attr.stage_history.currentstatus'}
80
+ a = DatasetBlueprint.attributes(dataset).find { |attribute| attribute[:id] == 'attr.stage_history.currentstatus' }
74
81
  result = ToWire.attribute_to_wire(dataset, a)
75
- expect(result).to eq ({
76
- :attribute=>
77
- {:identifier=>"attr.stage_history.currentstatus",
78
- :title=>"Current Stage",
79
- :folder=>"stage_history",
80
- :labels=>
81
- [{:label=>
82
- {:identifier=>"label.stage_history.currentstatus",
83
- :title=>"Current Stage",
84
- :type=>"GDC.text",
85
- :dataType=>"VARCHAR(128)"}}],
86
- :defaultLabel=>"label.stage_history.currentstatus"}})
82
+ expect(result).to eq(
83
+ :attribute => {
84
+ :identifier => "attr.stage_history.currentstatus",
85
+ :title => "Current Stage",
86
+ :folder => "stage_history",
87
+ :labels => [
88
+ {
89
+ :label => {
90
+ :identifier => "label.stage_history.currentstatus",
91
+ :title => "Current Stage",
92
+ :type => "GDC.text",
93
+ :dataType => "VARCHAR(128)"
94
+ }
95
+ }
96
+ ],
97
+ :defaultLabel => "label.stage_history.currentstatus"
98
+ }
99
+ )
87
100
  end
88
101
 
89
102
  it 'should generate attributes with label' do
90
103
  dataset = ProjectBlueprint.find_dataset(@spec, 'dataset.opportunityanalysis')
91
- a = DatasetBlueprint.attributes(dataset).find {|a| a[:id] == 'attr.opportunityanalysis.month'}
104
+ a = DatasetBlueprint.attributes(dataset).find { |attribute| attribute[:id] == 'attr.opportunityanalysis.month' }
92
105
 
93
106
  result = ToWire.attribute_to_wire(dataset, a)
94
- expect(result).to eq ({:attribute=>
95
- {:identifier=>"attr.opportunityanalysis.month",
96
- :title=>"Month",
97
- :folder=>"Opportunity Benchmark",
98
- :labels=>
99
- [{:label=>
100
- {:identifier=>"label.opportunityanalysis.month",
101
- :title=>"Month",
102
- :type=>"GDC.text",
103
- :dataType=>"VARCHAR(128)"}},
104
- {:label=>
105
- {:identifier=>"label.opportunityanalysis.month.monthsortingnew",
106
- :title=>"MonthSortingNew",
107
- :type=>"GDC.text",
108
- :dataType=>"INT"}}],
109
- :defaultLabel=>"label.opportunityanalysis.month" }})
107
+ expect(result).to eq(
108
+ :attribute => {
109
+ :identifier => "attr.opportunityanalysis.month",
110
+ :title => "Month",
111
+ :folder => "Opportunity Benchmark",
112
+ :labels => [
113
+ {
114
+ :label => {
115
+ :identifier => "label.opportunityanalysis.month",
116
+ :title => "Month",
117
+ :type => "GDC.text",
118
+ :dataType => "VARCHAR(128)"
119
+ }
120
+ },
121
+ {
122
+ :label => {
123
+ :identifier => "label.opportunityanalysis.month.monthsortingnew",
124
+ :title => "MonthSortingNew",
125
+ :type => "GDC.text",
126
+ :dataType => "INT"
127
+ }
128
+ }
129
+ ],
130
+ :defaultLabel => "label.opportunityanalysis.month"
131
+ }
132
+ )
110
133
  end
111
134
  end
112
135
 
@@ -121,13 +144,15 @@ describe GoodData::Model::ProjectBlueprint do
121
144
  gd_data_type: "DECIMAL(12,2)"
122
145
  }
123
146
  result = ToWire.fact_to_wire(nil, fact_def)
124
- expect(result).to eq ({
147
+ expect(result).to eq(
125
148
  fact: {
126
149
  identifier: "fact.stage_history.stage_velocity",
127
150
  title: "Stage Velocity",
128
151
  dataType: "DECIMAL(12,2)",
129
152
  folder: "My Folder",
130
- description: "Velocity description"}})
153
+ description: "Velocity description"
154
+ }
155
+ )
131
156
  end
132
157
  end
133
158
 
@@ -163,12 +188,8 @@ describe GoodData::Model::ProjectBlueprint do
163
188
 
164
189
  describe '#date_dimension_to_wire' do
165
190
  it 'should be able to generate date dimension' do
166
- res = ToWire.date_dimension_to_wire(@spec, {
167
- type: "date_dimension",
168
- id: "timeline",
169
- title: "Timeline"
170
- })
171
- expect(res).to eq({:dateDimension=>{:name=>"timeline", :title=>"Timeline"}})
191
+ res = ToWire.date_dimension_to_wire(@spec, type: "date_dimension", id: "timeline", title: "Timeline")
192
+ expect(res).to eq(:dateDimension => { :name => "timeline", :title => "Timeline" })
172
193
  end
173
194
  end
174
195
  end
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
@@ -30,7 +30,7 @@ describe GoodData::Domain do
30
30
  args = {
31
31
  :domain => ConnectionHelper::DEFAULT_DOMAIN,
32
32
  :login => "gemtest_#{rand(1e6)}@gooddata.com",
33
- :password => CryptoHelper.generate_password,
33
+ :password => CryptoHelper.generate_password
34
34
  }
35
35
 
36
36
  @user = GoodData::Domain.add_user(args)
@@ -70,7 +70,7 @@ describe GoodData::Domain do
70
70
 
71
71
  describe '#create_users' do
72
72
  it 'Creates new users from list' do
73
- list = (0..1).to_a.map { |i| ProjectHelper.create_random_user(@client) }
73
+ list = (0..1).to_a.map { ProjectHelper.create_random_user(@client) }
74
74
  res = @domain.create_users(list)
75
75
 
76
76
  # no errors
@@ -91,7 +91,6 @@ describe GoodData::Domain do
91
91
  modes = user.authentication_modes
92
92
  possible_modes = [:sso, :password]
93
93
 
94
-
95
94
  user.first_name = name.reverse
96
95
  choice = SpecHelper.random_choice(possible_modes, user.authentication_modes)
97
96
  user.authentication_modes = choice
@@ -108,7 +107,7 @@ describe GoodData::Domain do
108
107
  expect(reverted_user.authentication_modes).to eq modes
109
108
  end
110
109
 
111
- it 'Fails with an exception if you try to create a user that is in a different domain' do
110
+ it 'Fails with an exception if you try to create a user that is in a different domain', broken: true do
112
111
  user = ProjectHelper.create_random_user(@client)
113
112
  user.login = 'svarovsky@gooddata.com'
114
113
  expect do
@@ -1,25 +1,26 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
7
7
  require 'gooddata/models/schedule'
8
8
 
9
9
  describe GoodData::Execution do
10
-
11
10
  before(:each) do
12
- @data = {"execution"=>
13
- {"startTime"=>"2015-02-27T15:44:21.759Z",
14
- "endTime"=>"2015-02-27T15:47:49.383Z",
15
- "log"=>
16
- "/gdc/projects/tk3b994vmdpcb0xjwexc9moen8t5bpiw/dataload/processes/2b031451-b1a2-4039-8e36-0672542a0e60/executions/54f090d5e4b0c9cbdcb0f45b/log",
17
- "status"=>"OK",
18
- "trigger"=>"MANUAL",
19
- "links"=>
20
- {"self"=>
21
- "/gdc/projects/tk3b994vmdpcb0xjwexc9moen8t5bpiw/schedules/54f08d1de4b0c9cbdcb0f323/executions/54f090d5e4b0c9cbdcb0f45b"},
22
- "createdTime"=>"2015-02-27T15:44:21.361Z"}}
11
+ @data = {
12
+ "execution" => {
13
+ "startTime" => "2015-02-27T15:44:21.759Z",
14
+ "endTime" => "2015-02-27T15:47:49.383Z",
15
+ "log" => "/gdc/projects/tk3b994vmdpcb0xjwexc9moen8t5bpiw/dataload/processes/2b031451-b1a2-4039-8e36-0672542a0e60/executions/54f090d5e4b0c9cbdcb0f45b/log",
16
+ "status" => "OK",
17
+ "trigger" => "MANUAL",
18
+ "links" => {
19
+ "self" => "/gdc/projects/tk3b994vmdpcb0xjwexc9moen8t5bpiw/schedules/54f08d1de4b0c9cbdcb0f323/executions/54f090d5e4b0c9cbdcb0f45b"
20
+ },
21
+ "createdTime" => "2015-02-27T15:44:21.361Z"
22
+ }
23
+ }
23
24
  @execution = GoodData::Execution.new(@data)
24
25
  end
25
26
 
@@ -32,7 +33,7 @@ describe GoodData::Execution do
32
33
 
33
34
  describe '#error?' do
34
35
  it 'returns true if executione errored out' do
35
- expect(@execution.error?).to be_falsy
36
+ expect(@execution.error?).to be_falsey
36
37
  end
37
38
  end
38
39
 
@@ -64,7 +65,7 @@ describe GoodData::Execution do
64
65
 
65
66
  describe '#running?' do
66
67
  it 'returns false if executione is already finished' do
67
- expect(@execution.running?).to be_falsy
68
+ expect(@execution.running?).to be_falsey
68
69
  end
69
70
 
70
71
  it 'returns true if executione is currently finished' do
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
@@ -9,7 +9,6 @@ require 'gooddata'
9
9
  include GoodData::Model
10
10
 
11
11
  describe GoodData::Model::FromWire do
12
-
13
12
  before(:each) do
14
13
  @model_view = MultiJson.load(File.read('./spec/data/wire_models/model_view.json'))
15
14
  @blueprint = FromWire.from_wire(@model_view)
@@ -26,6 +25,7 @@ describe GoodData::Model::FromWire do
26
25
  title: "Month",
27
26
  folder: "Opportunity Benchmark",
28
27
  description: nil,
28
+ order_by: "label.opportunityanalysis.month.monthsortingnew - ASC"
29
29
  },
30
30
  {
31
31
  type: :label,
@@ -43,7 +43,8 @@ describe GoodData::Model::FromWire do
43
43
  title: "MonthSortingNew",
44
44
  gd_data_type: "INT",
45
45
  gd_type: "GDC.text"
46
- }])
46
+ }
47
+ ])
47
48
  end
48
49
 
49
50
  it "should be able to parse the anchor" do
@@ -55,7 +56,7 @@ describe GoodData::Model::FromWire do
55
56
  id: "attr.opportunityanalysis.techoppanalysis",
56
57
  title: "Tech Opp. Analysis",
57
58
  folder: "Opportunity Benchmark",
58
- description: nil,
59
+ description: nil
59
60
  },
60
61
  {
61
62
  type: :label,
@@ -65,7 +66,8 @@ describe GoodData::Model::FromWire do
65
66
  gd_data_type: "VARCHAR(128)",
66
67
  gd_type: "GDC.text",
67
68
  default_label: true
68
- }])
69
+ }
70
+ ])
69
71
  end
70
72
  end
71
73
 
@@ -102,7 +104,8 @@ describe GoodData::Model::FromWire do
102
104
  id: "attr.opportunityanalysis.month",
103
105
  title: "Month",
104
106
  description: nil,
105
- folder: "Opportunity Benchmark"
107
+ folder: "Opportunity Benchmark",
108
+ order_by: "label.opportunityanalysis.month.monthsortingnew - ASC"
106
109
  },
107
110
  {
108
111
  type: :label,
@@ -143,7 +146,7 @@ describe GoodData::Model::FromWire do
143
146
  it "should be able to parse the attributes with no labels" do
144
147
  model = @model_view['projectModelView']['model']['projectModel']['datasets'][7]
145
148
  x = FromWire.parse_attributes(model)
146
- expect(x.to_set).to eq Set.new()
149
+ expect(x.to_set).to eq Set.new
147
150
  end
148
151
  end
149
152
 
@@ -151,13 +154,15 @@ describe GoodData::Model::FromWire do
151
154
  it "should be able to parse the anchor without label" do
152
155
  model = @model_view['projectModelView']['model']['projectModel']['datasets'].first
153
156
  x = FromWire.parse_anchor(model)
154
- expect(x.to_set).to eq Set.new([{
155
- type: :anchor,
156
- id: "attr.stage_history.factsof",
157
- title: "Records of stage_history",
158
- description: nil,
159
- folder: nil
160
- }])
157
+ expect(x.to_set).to eq Set.new([
158
+ {
159
+ type: :anchor,
160
+ id: "attr.stage_history.factsof",
161
+ title: "Records of stage_history",
162
+ description: nil,
163
+ folder: nil
164
+ }
165
+ ])
161
166
  end
162
167
 
163
168
  it "should be able to parse the anchor out of dataset when there are multiple labels" do
@@ -180,7 +185,7 @@ describe GoodData::Model::FromWire do
180
185
  gd_type: "GDC.text",
181
186
  default_label: true
182
187
  },
183
- {
188
+ {
184
189
  type: :label,
185
190
  id: "label.opp_records.factsof",
186
191
  reference: "attr.opp_records.factsof",
@@ -247,7 +252,7 @@ describe GoodData::Model::FromWire do
247
252
  describe '#from_wire' do
248
253
  it 'should be able to parse dataset' do
249
254
  model_view = MultiJson.load(File.read('./spec/data/wire_models/nu_model.json'))
250
- bp = GoodData::Model::FromWire.from_wire(model_view)
255
+ GoodData::Model::FromWire.from_wire(model_view)
251
256
  end
252
257
  end
253
258
 
@@ -256,7 +261,7 @@ describe GoodData::Model::FromWire do
256
261
  end
257
262
 
258
263
  it "should have a datatype if defined" do
259
- dataset = @blueprint.datasets.find {|d| d.id == 'dataset.account' }
264
+ dataset = @blueprint.datasets.find { |d| d.id == 'dataset.account' }
260
265
  dataset.labels_for_attribute('attr.account.accountemployeecount')
261
266
 
262
267
  dataset = @blueprint.find_dataset('dataset.stage_history')
@@ -290,7 +295,7 @@ describe GoodData::Model::FromWire do
290
295
 
291
296
  it "should be able to parse description from both attributes and facts" do
292
297
  expect(@blueprint.find_dataset('dataset.opportunity').anchor.description).to eq 'This is opportunity attribute description'
293
- expect(@blueprint.find_dataset('dataset.stage_history').facts.find {|f| f.id == 'fact.stage_history.stage_velocity'}.description).to eq 'Velocity description'
294
- expect(@blueprint.find_dataset('dataset.opp_owner').attributes.find {|f| f.id == 'attr.opp_owner.region'}.description).to eq 'Owner Region description'
298
+ expect(@blueprint.find_dataset('dataset.stage_history').facts.find { |f| f.id == 'fact.stage_history.stage_velocity' }.description).to eq 'Velocity description'
299
+ expect(@blueprint.find_dataset('dataset.opp_owner').attributes.find { |f| f.id == 'attr.opp_owner.region' }.description).to eq 'Owner Region description'
295
300
  end
296
301
  end