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,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
 
@@ -17,14 +17,18 @@ describe GoodData::Helpers do
17
17
  describe '#running_on_windows?' do
18
18
  it 'works' do
19
19
  result = GoodData::Helpers.running_on_windows?
20
+ # rubocop:disable Style/DoubleNegation
20
21
  !!result.should == result
22
+ # rubocop:enable Style/DoubleNegation
21
23
  end
22
24
  end
23
25
 
24
26
  describe '#running_on_mac?' do
25
27
  it 'works' do
26
28
  result = GoodData::Helpers.running_on_a_mac?
29
+ # rubocop:disable Style/DoubleNegation
27
30
  !!result.should == result
31
+ # rubocop:enable Style/DoubleNegation
28
32
  end
29
33
  end
30
34
 
@@ -45,7 +49,7 @@ describe GoodData::Helpers do
45
49
  params = {
46
50
  'param' => 'value',
47
51
  'number_param' => 5,
48
- 'gd_encoded_params' => '{"deep": {"deeper": "deep value"}}',
52
+ 'gd_encoded_params' => '{"deep": {"deeper": "deep value"}}'
49
53
  }
50
54
  expected_result = {
51
55
  'param' => 'value',
@@ -74,6 +78,139 @@ describe GoodData::Helpers do
74
78
  result = GoodData::Helpers.decode_params(params)
75
79
  expect(result).to eq(expected_result)
76
80
  end
81
+
82
+ it 'decodes the reference parameters in gd_encoded_params in String form' do
83
+ params = {
84
+ 'param' => 'value',
85
+ 'number_param' => 5,
86
+ 'ads_password' => 'ads_123',
87
+ 'my_password' => 'login_123',
88
+ 'gd_encoded_params' => '{"login_username": "login_user", "login_password": "${my_password}", "data01": "\\\\${my_password}", "data02":"abc\\\\def"}'
89
+ }
90
+ expected_result = {
91
+ 'param' => 'value',
92
+ 'number_param' => 5,
93
+ 'ads_password' => 'ads_123',
94
+ 'my_password' => 'login_123',
95
+ 'login_username' => 'login_user',
96
+ 'login_password' => 'login_123',
97
+ 'data01' => '\\login_123',
98
+ 'data02' => 'abc\\def'
99
+ }
100
+ result = GoodData::Helpers.decode_params(params, :resolve_reference_params => true)
101
+ expect(result).to eq(expected_result)
102
+ end
103
+
104
+ it 'decodes the reference parameters in gd_encoded_params in Hash form' do
105
+ params = {
106
+ 'param' => 'value',
107
+ 'number_param' => 5,
108
+ 'ads_password' => 'ads_123',
109
+ 'my_password' => 'login_123',
110
+ 'gd_encoded_params' => { "login_username" => "login_user", "login_password" => "${my_password}", "data01" => "\\\\${my_password}", "data02" => "abc\\def" }
111
+ }
112
+ expected_result = {
113
+ 'param' => 'value',
114
+ 'number_param' => 5,
115
+ 'ads_password' => 'ads_123',
116
+ 'my_password' => 'login_123',
117
+ 'login_username' => 'login_user',
118
+ 'login_password' => 'login_123',
119
+ 'data01' => '\\login_123',
120
+ 'data02' => 'abc\\def'
121
+ }
122
+ result = GoodData::Helpers.decode_params(params, :resolve_reference_params => true)
123
+ expect(result).to eq(expected_result)
124
+ end
125
+
126
+ it 'decodes escape the reference parameters in gd_encoded_params in String form' do
127
+ params = {
128
+ 'param' => 'value',
129
+ 'number_param' => 5,
130
+ 'ads_password' => 'ads_123',
131
+ 'my_password' => 'login_123',
132
+ 'gd_encoded_params' => '{"login_username": "login_user", "data01": "\\${abc}"}'
133
+ }
134
+ expected_result = {
135
+ 'param' => 'value',
136
+ 'number_param' => 5,
137
+ 'ads_password' => 'ads_123',
138
+ 'my_password' => 'login_123',
139
+ 'login_username' => 'login_user',
140
+ 'data01' => '${abc}'
141
+ }
142
+ result = GoodData::Helpers.decode_params(params, :resolve_reference_params => true)
143
+ expect(result).to eq(expected_result)
144
+ end
145
+
146
+ it 'decodes escape the reference parameters in gd_encoded_params in Hash form' do
147
+ params = {
148
+ 'param' => 'value',
149
+ 'number_param' => 5,
150
+ 'ads_password' => 'ads_123',
151
+ 'my_password' => 'login_123',
152
+ 'gd_encoded_params' => { "login_username" => "login_user", "data01" => "\\${abc}" }
153
+ }
154
+ expected_result = {
155
+ 'param' => 'value',
156
+ 'number_param' => 5,
157
+ 'ads_password' => 'ads_123',
158
+ 'my_password' => 'login_123',
159
+ 'login_username' => 'login_user',
160
+ 'data01' => '${abc}'
161
+ }
162
+ result = GoodData::Helpers.decode_params(params, :resolve_reference_params => true)
163
+ expect(result).to eq(expected_result)
164
+ end
165
+
166
+ it 'decodes the reference parameters in nested block in gd_encoded_params in String form' do
167
+ params = {
168
+ 'param' => 'value',
169
+ 'number_param' => 5,
170
+ 'ads_password' => 'ads_123',
171
+ 'my_password' => 'login_123',
172
+ 'gd_encoded_params' => '{"login_username": "login_user", "login_password": "${my_password}", "ads_client": {"username": "ads_user", "password": "${ads_password}"}}'
173
+ }
174
+ expected_result = {
175
+ 'param' => 'value',
176
+ 'number_param' => 5,
177
+ 'ads_password' => 'ads_123',
178
+ 'my_password' => 'login_123',
179
+ 'login_username' => 'login_user',
180
+ 'login_password' => 'login_123',
181
+ 'ads_client' => {
182
+ 'username' => 'ads_user',
183
+ 'password' => 'ads_123'
184
+ }
185
+ }
186
+ result = GoodData::Helpers.decode_params(params, :resolve_reference_params => true)
187
+ expect(result).to eq(expected_result)
188
+ end
189
+
190
+ it 'decodes the reference parameters in nested block in gd_encoded_params in Hash form' do
191
+ params = {
192
+ 'param' => 'value',
193
+ 'number_param' => 5,
194
+ 'ads_password' => 'ads_123',
195
+ 'my_password' => 'login_123',
196
+ 'gd_encoded_params' => { "login_username" => "login_user", "login_password" => "${my_password}", "ads_client" => { "username" => "ads_user", "password" => "${ads_password}" } }
197
+ }
198
+ expected_result = {
199
+ 'param' => 'value',
200
+ 'number_param' => 5,
201
+ 'ads_password' => 'ads_123',
202
+ 'my_password' => 'login_123',
203
+ 'login_username' => 'login_user',
204
+ 'login_password' => 'login_123',
205
+ 'ads_client' => {
206
+ 'username' => 'ads_user',
207
+ 'password' => 'ads_123'
208
+ }
209
+ }
210
+ result = GoodData::Helpers.decode_params(params, :resolve_reference_params => true)
211
+ expect(result).to eq(expected_result)
212
+ end
213
+
77
214
  it 'throws an error when data params is not a valid json' do
78
215
  params = {
79
216
  'param' => 'value',
@@ -0,0 +1,20 @@
1
+ # encoding: UTF-8
2
+ #
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
+ # This source code is licensed under the BSD-style license found in the
5
+ # LICENSE file in the root directory of this source tree.
6
+
7
+ require 'gooddata'
8
+
9
+ describe GoodData::Model::AttributeBlueprintField do
10
+ before(:each) do
11
+ @model_view = MultiJson.load(File.read('./spec/data/wire_models/attribute_sort_by_model.json'))
12
+ @blueprint = GoodData::Model::FromWire.from_wire(@model_view)
13
+ @dataset = @blueprint.datasets('dataset.id')
14
+ @attribute = @dataset.attributes('attr.id.name')
15
+ end
16
+
17
+ it 'should return label id and direction of sorted attribute' do
18
+ expect(@attribute.order_by).to eq 'label.id.name.name_label_2 - DESC'
19
+ end
20
+ end
@@ -1,13 +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
7
  require 'gooddata'
8
8
 
9
9
  describe GoodData::Model::AttributeBlueprintField do
10
-
11
10
  before(:each) do
12
11
  @model_view = MultiJson.load(File.read('./spec/data/wire_models/model_view.json'))
13
12
  @blueprint = GoodData::Model::FromWire.from_wire(@model_view)
@@ -1,13 +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
7
  require 'gooddata'
8
8
 
9
9
  describe GoodData::Model::DatasetBlueprint do
10
-
11
10
  before(:each) do
12
11
  @model_view = MultiJson.load(File.read('./spec/data/wire_models/model_view.json'))
13
12
  @blueprint = GoodData::Model::FromWire.from_wire(@model_view)
@@ -80,7 +79,7 @@ describe GoodData::Model::DatasetBlueprint do
80
79
  describe '#references' do
81
80
  it 'should return references on dataset' do
82
81
  expect(@dataset.references.count).to eq 2
83
- expect(@dataset.references.map {|r| r.data[:dataset]}).to eq [
82
+ expect(@dataset.references.map { |r| r.data[:dataset] }).to eq [
84
83
  'dataset.opp_records',
85
84
  'dataset.consolidatedmarketingstatus'
86
85
  ]
@@ -1,13 +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
7
  require 'gooddata'
8
8
 
9
9
  describe GoodData::Model::LabelBlueprintField do
10
-
11
10
  before(:each) do
12
11
  @model_view = MultiJson.load(File.read('./spec/data/wire_models/model_view.json'))
13
12
  @blueprint = GoodData::Model::FromWire.from_wire(@model_view)
@@ -1,13 +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
7
  require 'gooddata'
8
8
 
9
9
  describe GoodData::Model::ProjectBlueprint do
10
-
11
10
  before(:each) do
12
11
  @blueprint = GoodData::Model::ProjectBlueprint.from_json('./spec/data/blueprints/test_project_model_spec.json')
13
12
  @invalid_blueprint = GoodData::Model::ProjectBlueprint.from_json('./spec/data/blueprints/invalid_blueprint.json')
@@ -38,7 +37,7 @@ describe GoodData::Model::ProjectBlueprint do
38
37
  end
39
38
  expect(bp.valid?).to be_falsey
40
39
  errors = bp.validate
41
- expect(errors.map {|x| x[:type]}.to_set).to eq [:attribute_without_label, :more_than_on_anchor].to_set
40
+ expect(errors.map { |x| x[:type] }.to_set).to eq [:attribute_without_label, :more_than_on_anchor].to_set
42
41
  expect(errors.count).to eq 2
43
42
  end
44
43
 
@@ -80,7 +79,7 @@ describe GoodData::Model::ProjectBlueprint do
80
79
  d.add_fact('more_numbers')
81
80
  end
82
81
  end
83
- bp.valid?.should == true
82
+ bp.valid?.should be_truthy
84
83
  errors = bp.validate
85
84
  expect(errors.count).to eq 0
86
85
  facts = bp.to_wire[:diffRequest][:targetModel][:projectModel][:datasets].first[:dataset][:facts]
@@ -92,7 +91,7 @@ describe GoodData::Model::ProjectBlueprint do
92
91
  expect(@invalid_blueprint.valid?).to eq false
93
92
  end
94
93
  end
95
-
94
+
96
95
  describe '#validate' do
97
96
  it 'valid blueprint should give you empty array of errors' do
98
97
  expect(@blueprint.validate).to be_empty
@@ -101,11 +100,13 @@ describe GoodData::Model::ProjectBlueprint do
101
100
  it 'invalid blueprint should give you list of violating references' do
102
101
  errors = @invalid_blueprint.validate
103
102
  expect(errors.size).to eq 1
104
- expect(errors).to eq([{
105
- :type=>:wrong_label_reference,
106
- :label=>"some_label_id",
107
- :wrong_reference=>"attr.repos.repo_id ERROR"
108
- }])
103
+ expect(errors).to eq([
104
+ {
105
+ :type => :wrong_label_reference,
106
+ :label => "some_label_id",
107
+ :wrong_reference => "attr.repos.repo_id ERROR"
108
+ }
109
+ ])
109
110
  end
110
111
 
111
112
  it 'invalid label is caught correctly' do
@@ -124,18 +125,18 @@ describe GoodData::Model::ProjectBlueprint do
124
125
  expect(errors.count).to eq 3
125
126
  expect(errors).to eq [
126
127
  {
127
- :type=>:wrong_label_reference,
128
- :label=>"label.attribute1.name",
129
- :wrong_reference=>"attr.attribute23123"
128
+ :type => :wrong_label_reference,
129
+ :label => "label.attribute1.name",
130
+ :wrong_reference => "attr.attribute23123"
130
131
  },
131
132
  {
132
- :type=>:wrong_label_reference,
133
- :label=>"label.attribute1.ssn",
134
- :wrong_reference=>"attr.attribute23123"
133
+ :type => :wrong_label_reference,
134
+ :label => "label.attribute1.ssn",
135
+ :wrong_reference => "attr.attribute23123"
135
136
  },
136
137
  {
137
- :type=>:attribute_without_label,
138
- :attribute=>"attr.attribute1"
138
+ :type => :attribute_without_label,
139
+ :attribute => "attr.attribute1"
139
140
  }
140
141
  ]
141
142
  end
@@ -274,7 +275,7 @@ describe GoodData::Model::ProjectBlueprint do
274
275
  expect(@blueprint.facts.count).to eq 1
275
276
  end
276
277
  end
277
-
278
+
278
279
  describe '#labels' do
279
280
  it 'Anchor on repos should have a label' do
280
281
  expect(@repos.anchor.labels.size).to eq 1
@@ -286,7 +287,7 @@ describe GoodData::Model::ProjectBlueprint do
286
287
 
287
288
  it "should return labels form all datasets" do
288
289
  expect(@blueprint.labels.count).to eq 4
289
- end
290
+ end
290
291
  end
291
292
 
292
293
  describe '#attributes_and_anchors' do
@@ -297,7 +298,7 @@ describe GoodData::Model::ProjectBlueprint do
297
298
 
298
299
  describe '#merge' do
299
300
  it "should be able to merge models without mutating the original" do
300
- additional_blueprint = GoodData::Model::ProjectBlueprint.from_json("./spec/data/blueprints/additional_dataset_module.json")
301
+ additional_blueprint = GoodData::Model::ProjectBlueprint.from_json("./spec/data/blueprints/additional_dataset_module.json")
301
302
  expect(@blueprint.datasets.count).to eq 3
302
303
  new_bp = @blueprint.merge(additional_blueprint)
303
304
  expect(@blueprint.datasets.count).to eq 3
@@ -373,15 +374,15 @@ describe GoodData::Model::ProjectBlueprint do
373
374
  d.add_date('created_on')
374
375
  end
375
376
  end
376
- expect {
377
- c = a.merge(b)
378
- }.to raise_exception 'Unable to merge date dimensions created_on with defintion {:type=>:date_dimension, :urn=>nil, :id=>"created_on", :title=>"title B"} with {:type=>:date_dimension, :urn=>nil, :id=>"created_on", :title=>"title A"}'
377
+ expect do
378
+ a.merge(b)
379
+ end.to raise_exception 'Unable to merge date dimensions created_on with defintion {:type=>:date_dimension, :urn=>nil, :id=>"created_on", :title=>"title B"} with {:type=>:date_dimension, :urn=>nil, :id=>"created_on", :title=>"title A"}'
379
380
  end
380
381
  end
381
382
 
382
383
  describe '#merge!' do
383
384
  it "should be able to merge models" do
384
- additional_blueprint = GoodData::Model::ProjectBlueprint.from_json("./spec/data/blueprints/additional_dataset_module.json")
385
+ additional_blueprint = GoodData::Model::ProjectBlueprint.from_json("./spec/data/blueprints/additional_dataset_module.json")
385
386
  expect(@blueprint.datasets.count).to eq 3
386
387
  @blueprint.merge!(additional_blueprint)
387
388
  expect(@blueprint.datasets.count).to eq 4
@@ -399,8 +400,6 @@ describe GoodData::Model::ProjectBlueprint do
399
400
  expect(@blueprint.datasets.count).to eq 4
400
401
  end
401
402
 
402
-
403
-
404
403
  it "should be able to serialize itself to a hash" do
405
404
  ser = @blueprint.to_hash
406
405
  ser.is_a?(Hash)
@@ -440,7 +439,7 @@ describe GoodData::Model::ProjectBlueprint do
440
439
  d.add_date('opportunity_comitted', dataset: 'committed_on')
441
440
  end
442
441
  end
443
- expect(bp.datasets.flat_map { |d| d.find_columns_by_type(:date) }.map { |a| a.format }).to eq [GoodData::Model::DEFAULT_DATE_FORMAT]
442
+ expect(bp.datasets.flat_map { |d| d.find_columns_by_type(:date) }.map(&:format)).to eq [GoodData::Model::DEFAULT_DATE_FORMAT]
444
443
  end
445
444
 
446
445
  it 'blueprint can be set with explicit date' do
@@ -458,7 +457,7 @@ describe GoodData::Model::ProjectBlueprint do
458
457
  end
459
458
  end
460
459
  expect(bp.valid?).to be_truthy
461
- expect(bp.datasets.flat_map { |d| d.find_columns_by_type(:date) }.map { |a| a.format }).to eq ['yyyy/MM/dd']
460
+ expect(bp.datasets.flat_map { |d| d.find_columns_by_type(:date) }.map(&:format)).to eq ['yyyy/MM/dd']
462
461
  end
463
462
 
464
463
  describe '#remove' do
@@ -501,21 +500,21 @@ describe GoodData::Model::ProjectBlueprint do
501
500
  end
502
501
 
503
502
  it 'crashes gracefully when nonexistent field is being moved' do
504
- expect {
503
+ expect do
505
504
  @blueprint.move!('nonexistent_field', 'dataset.commits', 'dataset.repos')
506
- }.to raise_exception 'Column nonexistent_field cannot be found in dataset dataset.commits'
505
+ end.to raise_exception 'Column nonexistent_field cannot be found in dataset dataset.commits'
507
506
  end
508
507
 
509
508
  it 'crashes gracefully when datasets does not exist' do
510
- expect {
509
+ expect do
511
510
  @blueprint.move!('nonexistent_field', 'dataset.A', 'dataset.repos')
512
- }.to raise_exception 'Dataset "dataset.A" could not be found'
511
+ end.to raise_exception 'Dataset "dataset.A" could not be found'
513
512
  end
514
513
 
515
514
  it 'crashes gracefully when datasets does not exist' do
516
- expect {
515
+ expect do
517
516
  @blueprint.move!('nonexistent_field', 'dataset.commits', 'dataset.B')
518
- }.to raise_exception 'Dataset "dataset.B" could not be found'
517
+ end.to raise_exception 'Dataset "dataset.B" could not be found'
519
518
  end
520
519
  end
521
520
 
@@ -1,13 +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
7
  require 'gooddata'
8
8
 
9
9
  describe GoodData::Model::ReferenceBlueprintField do
10
-
11
10
  before(:each) do
12
11
  @model_view = MultiJson.load(File.read('./spec/data/wire_models/model_view.json'))
13
12
  @blueprint = GoodData::Model::FromWire.from_wire(@model_view)