gooddata 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 6da36eceeef5acc48d61c8ed6df26776eb423fd8
4
- data.tar.gz: 9707a336a20019f1a5264cdfaa518b2f8a87f504
2
+ SHA256:
3
+ metadata.gz: 42cb69099c5d99a0d83aff24779aa7d4c3b25e0863a0e570d8b9cca8d15fd233
4
+ data.tar.gz: 5c9adb5947e1649f7ef447bbed17a3adedda04c7e3e6c8a3b9822952027f1931
5
5
  SHA512:
6
- metadata.gz: c687a01a6096aee1deb769a283bae1f26530687768b9b2b9168b222e301ae8a58060ec757cd6d7616ca17d2c0810e68a4b959b47d3e4229d370100d3288e77cd
7
- data.tar.gz: a1cf87c59d944951516c037d87bd5c44637beb5ad344ec3e021f0b507a3146f4994e6903ad4008f4505ba0a58596c589a8f5fdeb9d11cb9f8b093bae4aaebc57
6
+ metadata.gz: cdbf9d5043c43877ae17bc6fdf9f08e663883aadbea8d441c5ae00baf8504c87551877bcf9964a43cb235554c13b9b95a684403c0e3083716d35152a50b25e4c
7
+ data.tar.gz: 712b361518564bf5004e0a3d5e98ef9210200d5b6949fceb194a50c1640ea458397bd1468443f0ee3f93431b48302180f77ce4dbfd0e009a07fa681acca0781a
data/.gitignore CHANGED
@@ -36,3 +36,6 @@ Gemfile.lock
36
36
  # Temp files
37
37
  tmp/
38
38
  junit.xml
39
+
40
+ # autogenerated file
41
+ deprecations.txt
data/CHANGELOG.md CHANGED
@@ -1,4 +1,13 @@
1
1
  # GoodData Ruby SDK Changelog
2
+ ## 1.0.2
3
+ - TMA-775: smart attribute polling
4
+ - TMA-809: Fix new visualization object in bricks
5
+ - TMA-809: new visualizationObject in replace_from_mapping
6
+ - TMA-690 && TMA-633 tests now verify that synchronize users action fails when supplied with unsupported sync_mode param
7
+ - deprecations.txt is in .gitignore file
8
+ - TMA-691 colect data product action has human readable output
9
+ - TMA-732: fix edge cases for user input sanitized MUFs
10
+
2
11
  ## 1.0.1
3
12
  - Bump version to 1.0.1
4
13
  - TMA-776: Improve error handling of sync clients
data/Rakefile CHANGED
@@ -35,11 +35,12 @@ namespace :gem do
35
35
  gem = "gooddata-#{GoodData::VERSION}.gem"
36
36
 
37
37
  puts "Building #{gem} ..."
38
- res = system('gem build ./gooddata.gemspec')
39
- next unless res
38
+ res = `gem build ./gooddata.gemspec`
39
+ file = res.match('File: (.*)')[1]
40
+ next unless file
40
41
 
41
- puts "Pushing #{gem} ..."
42
- system("gem push #{gem}")
42
+ puts "Pushing #{file} ..."
43
+ system("gem push #{file}")
43
44
  end
44
45
  end
45
46
 
@@ -40,7 +40,7 @@ module GoodData
40
40
  data_product = domain.data_products(data_product_id)
41
41
  results = [
42
42
  {
43
- data_product: data_product
43
+ data_product: data_product_id
44
44
  }
45
45
  ]
46
46
 
@@ -48,7 +48,7 @@ module GoodData
48
48
  production_tags = Helpers.parse_production_tags(params.production_tags || params.production_tag, segment_tags)
49
49
  objects = []
50
50
  if transfer_all
51
- vizs = MdObject.query('visualization', MdObject, client: development_client, project: from_project)
51
+ vizs = MdObject.query('visualizationObject', MdObject, client: development_client, project: from_project)
52
52
  viz_widgets = MdObject.query('visualizationWidget', MdObject, client: development_client, project: from_project)
53
53
  objects = (from_project.reports.to_a + from_project.metrics.to_a + from_project.variables.to_a + vizs.to_a + viz_widgets.to_a).map(&:uri)
54
54
  elsif production_tags.any?
@@ -19,7 +19,7 @@ module GoodData
19
19
  param :input_source, instance_of(Type::HashType), required: true
20
20
 
21
21
  description 'Synchronization Mode (e.g. sync_one_project_based_on_pid)'
22
- param :sync_mode, instance_of(Type::StringType), required: false
22
+ param :sync_mode, instance_of(Type::StringType), required: false, default: 'sync_project'
23
23
 
24
24
  description 'Column That Contains Target Project IDs'
25
25
  param :multiple_projects_column, instance_of(Type::StringType), required: false
@@ -47,6 +47,17 @@ module GoodData
47
47
  end
48
48
 
49
49
  class << self
50
+ MODES = %w(
51
+ add_to_organization
52
+ sync_project
53
+ sync_domain_and_project
54
+ sync_multiple_projects_based_on_pid
55
+ sync_one_project_based_on_pid
56
+ sync_one_project_based_on_custom_id
57
+ sync_multiple_projects_based_on_custom_id
58
+ sync_domain_client_workspaces
59
+ )
60
+
50
61
  def call(params)
51
62
  client = params.gdc_gd_client
52
63
  domain_name = params.organization || params.domain
@@ -63,7 +74,10 @@ module GoodData
63
74
  symbolized_config[:labels] = symbolized_config[:labels].map { |l| GoodData::Helpers.symbolize_keys(l) }
64
75
  headers_in_options = params.csv_headers == 'false' || true
65
76
 
66
- mode = params.sync_mode || 'sync_project'
77
+ mode = params.sync_mode
78
+ unless MODES.include?(mode)
79
+ fail "The parameter \"sync_mode\" has to have one of the values #{MODES.map(&:to_s).join(', ')} or has to be empty."
80
+ end
67
81
  filters = []
68
82
 
69
83
  csv_with_headers = if GoodData::UserFilterBuilder.row_based?(symbolized_config)
@@ -139,6 +153,7 @@ module GoodData
139
153
  CSV.foreach(File.open(data_source.realize(params), 'r:UTF-8'), headers: csv_with_headers, return_headers: false, encoding: 'utf-8') do |row|
140
154
  filters << row.to_hash
141
155
  end
156
+ fail 'The filter set can not be empty when using sync_multiple_projects_based_on_custom_id mode' if filters.empty?
142
157
  filters.group_by { |u| u[multiple_projects_column] }.flat_map do |client_id, new_filters|
143
158
  fail "Client id cannot be empty" if client_id.blank?
144
159
  project = domain.clients(client_id, data_product).project
@@ -52,7 +52,7 @@ module GoodData
52
52
  data_source = GoodData::Helpers::DataSource.new(params.input_source)
53
53
  data_product = params.data_product
54
54
  mode = params.sync_mode
55
- unless mode.nil? || MODES.include?(mode)
55
+ unless MODES.include?(mode)
56
56
  fail "The parameter \"sync_mode\" has to have one of the values #{MODES.map(&:to_s).join(', ')} or has to be empty."
57
57
  end
58
58
 
@@ -14,9 +14,10 @@ module GoodData
14
14
  specification.keys.each do |param_name|
15
15
  value = params.send(param_name)
16
16
  type = specification[param_name][:type]
17
-
18
- if value.nil?
19
- if specification[param_name][:opts][:required]
17
+ if value.nil? || (value.is_a?(String) && value.empty?)
18
+ if specification[param_name][:opts][:default]
19
+ params[param_name] = specification[param_name][:opts][:default]
20
+ elsif specification[param_name][:opts][:required]
20
21
  fail("Mandatory parameter '#{param_name}' of type '#{type}' is not specified")
21
22
  end
22
23
  else
@@ -1422,7 +1422,7 @@ module GoodData
1422
1422
  end
1423
1423
 
1424
1424
  {
1425
- visualizations: MdObject.query('visualization', MdObject, client: client, project: self),
1425
+ visualizations: MdObject.query('visualizationObject', MdObject, client: client, project: self),
1426
1426
  visualization_widgets: MdObject.query('visualizationWidget', MdObject, client: client, project: self),
1427
1427
  kpis: MdObject.query('kpi', MdObject, client: client, project: self)
1428
1428
  }.each do |key, collection|
@@ -140,11 +140,10 @@ module GoodData
140
140
 
141
141
  def self.create_label_cache(result, options = {})
142
142
  project = options[:project]
143
- project_labels = project.labels
144
143
 
145
144
  result.reduce({}) do |a, e|
146
145
  e[:filters].map do |filter|
147
- a[filter[:label]] = project_labels.find { |l| (l.identifier == filter[:label]) || (l.uri == filter[:label]) } unless a.key?(filter[:label])
146
+ a[filter[:label]] = project.labels(filter[:label]) unless a.key?(filter[:label])
148
147
  end
149
148
  a
150
149
  end
@@ -539,6 +538,8 @@ module GoodData
539
538
  end
540
539
 
541
540
  # Removes MUFs from to_delete unless in user is in users_brick_input
541
+ # if this does not happen, users that are about to be deleted by users_brick
542
+ # would have all their filters removed now, which is not desirable
542
543
  def self.sanitize_filters_to_delete(to_delete, users_brick_input, project_users)
543
544
  return to_delete unless users_brick_input && users_brick_input.any?
544
545
  user_profiles = users_brick_input.map do |user|
@@ -546,6 +547,7 @@ module GoodData
546
547
  next unless result
547
548
  result.profile_url
548
549
  end.compact
550
+ return to_delete unless user_profiles.any?
549
551
  to_delete.reject do |_, value|
550
552
  user_profiles.none? { |profile| profile == value.first.json[:related] }
551
553
  end
@@ -6,7 +6,7 @@
6
6
 
7
7
  # GoodData Module
8
8
  module GoodData
9
- VERSION = '1.0.1'
9
+ VERSION = '1.0.2'
10
10
 
11
11
  class << self
12
12
  # Version
@@ -24,3 +24,20 @@ shared_examples 'a user action filtering segments' do
24
24
  subject.class.call(params)
25
25
  end
26
26
  end
27
+
28
+ shared_examples 'when using unsuported sync_mode' do
29
+ before do
30
+ allow(project).to receive(:metadata).and_return(
31
+ 'GOODOT_CUSTOM_PROJECT_ID' => 'project-123'
32
+ )
33
+ allow(project).to receive(:uri).and_return('project-uri')
34
+ allow(data_source).to receive(:realize).and_return('filepath')
35
+ allow(File).to receive(:open).and_return("client_id\n123456789")
36
+ allow(project).to receive(:add_data_permissions)
37
+ allow(domain).to receive(:clients).and_return([])
38
+ end
39
+
40
+ it 'fails' do
41
+ expect { subject.class.call(params) }.to raise_error(/sync_mode/)
42
+ end
43
+ end
@@ -3,6 +3,20 @@ require 'gooddata/lcm/lcm2'
3
3
 
4
4
  require_relative 'shared_examples_for_user_actions'
5
5
 
6
+ shared_context 'using mode with custom_id' do
7
+ let(:CSV) { double('CSV') }
8
+
9
+ before do
10
+ allow(project).to receive(:metadata).and_return(
11
+ 'GOODOT_CUSTOM_PROJECT_ID' => 'project-123'
12
+ )
13
+ allow(project).to receive(:uri).and_return('project-uri')
14
+ allow(project).to receive(:add_data_permissions)
15
+ allow(domain).to receive(:clients).and_return([])
16
+ allow(data_source).to receive(:realize).and_return('filepath')
17
+ end
18
+ end
19
+
6
20
  describe GoodData::LCM2::SynchronizeUserFilters do
7
21
  let(:client) { double('client') }
8
22
  let(:user) { double('user') }
@@ -76,6 +90,7 @@ describe GoodData::LCM2::SynchronizeUserFilters do
76
90
  end
77
91
 
78
92
  context 'when using sync_one_project_based_on_custom_id mode with multiple_projects_column' do
93
+ include_context 'using mode with custom_id'
79
94
  let(:params) do
80
95
  params = {
81
96
  GDC_GD_CLIENT: client,
@@ -88,17 +103,6 @@ describe GoodData::LCM2::SynchronizeUserFilters do
88
103
  }
89
104
  GoodData::LCM2.convert_to_smart_hash(params)
90
105
  end
91
- let(:CSV) { double('CSV') }
92
-
93
- before do
94
- allow(project).to receive(:metadata).and_return(
95
- 'GOODOT_CUSTOM_PROJECT_ID' => 'project-123'
96
- )
97
- allow(project).to receive(:uri).and_return('project-uri')
98
- allow(project).to receive(:add_data_permissions)
99
- allow(domain).to receive(:clients).and_return([])
100
- allow(data_source).to receive(:realize).and_return('filepath')
101
- end
102
106
 
103
107
  context 'when params do not match client data in domain' do
104
108
  before do
@@ -143,4 +147,41 @@ describe GoodData::LCM2::SynchronizeUserFilters do
143
147
  end
144
148
  end
145
149
  end
150
+
151
+ context 'when using sync_multiple_projects_based_on_custom_id mode' do
152
+ include_context 'using mode with custom_id'
153
+ let(:params) do
154
+ params = {
155
+ input_source: 'foo',
156
+ domain: 'bar',
157
+ multiple_projects_column: 'id_column',
158
+ sync_mode: 'sync_multiple_projects_based_on_custom_id',
159
+ gdc_logger: logger,
160
+ GDC_GD_CLIENT: client,
161
+ filters_config: { labels: [] }
162
+ }
163
+ GoodData::LCM2.convert_to_smart_hash(params)
164
+ end
165
+ it 'fails if the MUF set is empty' do
166
+ expect(File).to receive(:open)
167
+ expect(CSV).to receive(:foreach)
168
+ expect { subject.class.call(params) }.to raise_error(/The filter set can not be empty/)
169
+ end
170
+ end
171
+ context 'when using unsuported sync_mode' do
172
+ let(:params) do
173
+ params = {
174
+ filters_config: { labels: [] },
175
+ GDC_GD_CLIENT: client,
176
+ input_source: 'foo',
177
+ domain: 'bar',
178
+ multiple_projects_column: 'id_column',
179
+ sync_mode: 'unsuported_sync_mode', # sync_one_project_based_on_custom_id
180
+ gdc_logger: logger
181
+ }
182
+ GoodData::LCM2.convert_to_smart_hash(params)
183
+ end
184
+
185
+ it_should_behave_like 'when using unsuported sync_mode'
186
+ end
146
187
  end
@@ -46,11 +46,11 @@ describe GoodData::LCM2::SynchronizeUsers do
46
46
 
47
47
  let(:params) do
48
48
  params = {
49
+ sync_mode: 'sync_one_project_based_on_custom_id',
49
50
  GDC_GD_CLIENT: client,
50
51
  input_source: 'foo',
51
52
  domain: 'bar',
52
53
  gdc_logger: logger,
53
- sync_mode: 'sync_one_project_based_on_custom_id'
54
54
  }
55
55
  GoodData::LCM2.convert_to_smart_hash(params)
56
56
  end
@@ -75,11 +75,11 @@ describe GoodData::LCM2::SynchronizeUsers do
75
75
  context 'when mode requires client_id' do
76
76
  let(:params) do
77
77
  params = {
78
+ sync_mode: 'sync_one_project_based_on_pid',
78
79
  GDC_GD_CLIENT: client,
79
80
  input_source: 'foo',
80
81
  domain: 'bar',
81
- gdc_logger: logger,
82
- sync_mode: 'sync_one_project_based_on_pid'
82
+ gdc_logger: logger
83
83
  }
84
84
  GoodData::LCM2.convert_to_smart_hash(params)
85
85
  end
@@ -130,5 +130,51 @@ describe GoodData::LCM2::SynchronizeUsers do
130
130
  let(:message_for_project) { :import_users }
131
131
  end
132
132
  end
133
+ context 'when using mistyped mode' do
134
+ let(:params) do
135
+ params = {
136
+ GDC_GD_CLIENT: client,
137
+ input_source: 'foo',
138
+ domain: 'bar',
139
+ gdc_logger: logger,
140
+ sync_mode: 'unsuported_sync_mode'
141
+ }
142
+ GoodData::LCM2.convert_to_smart_hash(params)
143
+ end
144
+
145
+ before do
146
+ allow(domain).to receive(:clients).and_return(organization)
147
+ end
148
+ it_should_behave_like 'when using unsuported sync_mode'
149
+ end
150
+ context 'when using no mode' do
151
+ let(:params) do
152
+ params = {
153
+ GDC_GD_CLIENT: client,
154
+ input_source: 'foo',
155
+ domain: 'bar',
156
+ gdc_logger: logger
157
+ }
158
+ GoodData::LCM2.convert_to_smart_hash(params)
159
+ end
160
+
161
+ before do
162
+ allow(domain).to receive(:clients).and_return(organization)
163
+ end
164
+ before do
165
+ allow(data_source).to receive(:realize).and_return('filepath')
166
+ allow(File).to receive(:open).and_return("client_id\n123456789")
167
+ allow(project).to receive(:metadata).and_return(
168
+ 'GOODOT_CUSTOM_PROJECT_ID' => 'project-123'
169
+ )
170
+ allow(project).to receive(:uri).and_return('project-uri')
171
+ allow(project).to receive(:add_data_permissions)
172
+ allow(domain).to receive(:clients).and_return([])
173
+ end
174
+
175
+ it 'fails' do
176
+ expect { subject.class.call(params) }.to raise_error(/sync_mode/)
177
+ end
178
+ end
133
179
  end
134
180
  end
@@ -0,0 +1,46 @@
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
+ require 'gooddata/lcm/actions/base_action'
7
+ require 'gooddata/lcm/helpers/check_helper'
8
+ require 'gooddata/lcm/types/types'
9
+
10
+ describe 'GoodData::LCM2::Helpers::Checkout' do
11
+ let(:params) do
12
+ params = {
13
+ test_param_two: 'Testing param two',
14
+ test_param_three: 'Testing param three',
15
+ test_param_four: 4
16
+ }
17
+ GoodData::LCM2.convert_to_smart_hash(params)
18
+ end
19
+ it 'verifies required' do
20
+ PARAMS = GoodData::LCM2::BaseAction.define_params(self) do
21
+ description 'Testing param one'
22
+ param :test_param_one, instance_of(GoodData::LCM2::Type::StringType), required: true
23
+ end
24
+ expect { GoodData::LCM2::Helpers.check_params(PARAMS, params) }.to raise_error(/Mandatory/)
25
+ end
26
+
27
+ it 'fills default' do
28
+ PARAMS_2 = GoodData::LCM2::BaseAction.define_params(self) do
29
+ description 'Testing param one'
30
+ param :test_param_one, instance_of(GoodData::LCM2::Type::StringType), required: true, default: 'filled_default_value'
31
+
32
+ description 'Testing param two'
33
+ param :test_param_two, instance_of(GoodData::LCM2::Type::StringType), required: false
34
+ end
35
+ GoodData::LCM2::Helpers.check_params(PARAMS_2, params)
36
+ expect(params[:test_param_one]).to match(/filled_default_value/)
37
+ end
38
+
39
+ it 'checks types' do
40
+ PARAMS_3 = GoodData::LCM2::BaseAction.define_params(self) do
41
+ description 'Testing param four'
42
+ param :test_param_four, instance_of(GoodData::LCM2::Type::StringType), required: false
43
+ end
44
+ expect { GoodData::LCM2::Helpers.check_params(PARAMS_3, params) }.to raise_error(/has invalid type/)
45
+ end
46
+ end
@@ -36,10 +36,10 @@ describe GoodData::UserFilterBuilder do
36
36
  let(:profile_url) { '/gdc/account/profile/foo' }
37
37
 
38
38
  before do
39
- allow(project).to receive(:labels)
40
- .and_return([label])
41
- allow(project).to receive(:labels)
42
- .and_return([label])
39
+ allow(project).to receive(:labels).with(label_uri)
40
+ .and_return(label)
41
+ allow(project).to receive(:labels).with("label.csv_policies.state")
42
+ .and_return(label)
43
43
  allow(project).to receive(:attributes)
44
44
  allow(project).to receive(:users).and_return(project_users)
45
45
  allow(project).to receive(:data_permissions).and_return([existing_filter])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gooddata
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Kolesnikov
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2018-01-30 00:00:00.000000000 Z
14
+ date: 2018-03-09 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -1027,6 +1027,7 @@ files:
1027
1027
  - spec/unit/core/nil_logger_spec.rb
1028
1028
  - spec/unit/extensions/hash_spec.rb
1029
1029
  - spec/unit/godzilla/goodzilla_spec.rb
1030
+ - spec/unit/helpers/check_helper_spec.rb
1030
1031
  - spec/unit/helpers/csv_helper_spec.rb
1031
1032
  - spec/unit/helpers/data_helper_spec.rb
1032
1033
  - spec/unit/helpers/global_helpers_spec.rb
@@ -1077,188 +1078,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1077
1078
  version: '0'
1078
1079
  requirements: []
1079
1080
  rubyforge_project:
1080
- rubygems_version: 2.6.13
1081
+ rubygems_version: 2.7.4
1081
1082
  signing_key:
1082
1083
  specification_version: 4
1083
1084
  summary: A convenient Ruby wrapper around the GoodData RESTful API
1084
- test_files:
1085
- - spec/bricks/bricks_spec.rb
1086
- - spec/bricks/default-config.json
1087
- - spec/data/.gooddata
1088
- - spec/data/blueprints/additional_dataset_module.json
1089
- - spec/data/blueprints/attribute_sort_order_blueprint.json
1090
- - spec/data/blueprints/big_blueprint_not_pruned.json
1091
- - spec/data/blueprints/invalid_blueprint.json
1092
- - spec/data/blueprints/m_n_model.json
1093
- - spec/data/blueprints/model_module.json
1094
- - spec/data/blueprints/test_blueprint.json
1095
- - spec/data/blueprints/test_project_model_spec.json
1096
- - spec/data/cc/data/source/commits.csv
1097
- - spec/data/cc/data/source/devs.csv
1098
- - spec/data/cc/data/source/repos.csv
1099
- - spec/data/cc/devel.prm
1100
- - spec/data/cc/graph/graph.grf
1101
- - spec/data/cc/workspace.prm
1102
- - spec/data/column_based_permissions.csv
1103
- - spec/data/column_based_permissions2.csv
1104
- - spec/data/dynamic_schedule_params_table.csv
1105
- - spec/data/gd_gse_data_blueprint.json
1106
- - spec/data/gd_gse_data_manifest.json
1107
- - spec/data/gd_gse_data_model.json
1108
- - spec/data/gooddata_version_process/gooddata_version.rb
1109
- - spec/data/gooddata_version_process/gooddata_version.zip
1110
- - spec/data/hello_world_process/hello_world.rb
1111
- - spec/data/hello_world_process/hello_world.zip
1112
- - spec/data/integration_model.json
1113
- - spec/data/integration_policies.csv
1114
- - spec/data/line_based_permissions.csv
1115
- - spec/data/manifests/test_blueprint.json
1116
- - spec/data/manifests/test_project.json
1117
- - spec/data/reports/left_attr_report.json
1118
- - spec/data/reports/metric_only_one_line.json
1119
- - spec/data/reports/report_1.json
1120
- - spec/data/reports/top_attr_report.json
1121
- - spec/data/ruby_params_process/ruby_params.rb
1122
- - spec/data/ruby_process/deep_files/deep_stuff.txt
1123
- - spec/data/ruby_process/process.rb
1124
- - spec/data/ruby_process/stuff.txt
1125
- - spec/data/superfluous_titles_view.json
1126
- - spec/data/test-ci-data.csv
1127
- - spec/data/users.csv
1128
- - spec/data/wire_models/attribute_sort_by_model.json
1129
- - spec/data/wire_models/model_view.json
1130
- - spec/data/wire_models/nu_model.json
1131
- - spec/data/wire_models/test_blueprint.json
1132
- - spec/data/wire_test_project.json
1133
- - spec/data/workspace_table.csv
1134
- - spec/environment/default.rb
1135
- - spec/environment/development.rb
1136
- - spec/environment/environment.rb
1137
- - spec/environment/production.rb
1138
- - spec/environment/staging.rb
1139
- - spec/environment/testing.rb
1140
- - spec/helpers/appstore_project_helper.rb
1141
- - spec/helpers/blueprint_helper.rb
1142
- - spec/helpers/cli_helper.rb
1143
- - spec/helpers/connection_helper.rb
1144
- - spec/helpers/constants.rb
1145
- - spec/helpers/crypto_helper.rb
1146
- - spec/helpers/csv_helper.rb
1147
- - spec/helpers/process_helper.rb
1148
- - spec/helpers/project_helper.rb
1149
- - spec/helpers/schedule_helper.rb
1150
- - spec/helpers/spec_helper.rb
1151
- - spec/integration/ads_output_stage_spec.rb
1152
- - spec/integration/blueprint_updates_spec.rb
1153
- - spec/integration/blueprint_with_ca_spec.rb
1154
- - spec/integration/blueprint_with_grain_spec.rb
1155
- - spec/integration/channel_configuration_spec.rb
1156
- - spec/integration/clients_spec.rb
1157
- - spec/integration/command_datawarehouse_spec.rb
1158
- - spec/integration/command_projects_spec.rb
1159
- - spec/integration/commands/command_projects_spec.rb
1160
- - spec/integration/core/connection_spec.rb
1161
- - spec/integration/core/logging_spec.rb
1162
- - spec/integration/core/project_spec.rb
1163
- - spec/integration/create_from_template_spec.rb
1164
- - spec/integration/create_project_spec.rb
1165
- - spec/integration/date_dim_switch_spec.rb
1166
- - spec/integration/deprecated_load_spec.rb
1167
- - spec/integration/full_process_schedule_spec.rb
1168
- - spec/integration/full_project_spec.rb
1169
- - spec/integration/helpers_spec.rb
1170
- - spec/integration/lcm_spec.rb
1171
- - spec/integration/mixins/id_to_uri_spec.rb
1172
- - spec/integration/models/data_product_spec.rb
1173
- - spec/integration/models/domain_spec.rb
1174
- - spec/integration/models/invitation_spec.rb
1175
- - spec/integration/models/label_spec.rb
1176
- - spec/integration/models/membership_spec.rb
1177
- - spec/integration/models/metadata/report_spec.rb
1178
- - spec/integration/models/params_spec.rb
1179
- - spec/integration/models/profile_spec.rb
1180
- - spec/integration/models/project_role_spec.rb
1181
- - spec/integration/models/project_spec.rb
1182
- - spec/integration/models/schedule_spec.rb
1183
- - spec/integration/models/unit_project_spec.rb
1184
- - spec/integration/over_to_user_filters_spec.rb
1185
- - spec/integration/partial_md_export_import_spec.rb
1186
- - spec/integration/project_spec.rb
1187
- - spec/integration/rest_spec.rb
1188
- - spec/integration/schedule_spec.rb
1189
- - spec/integration/segments_spec.rb
1190
- - spec/integration/subscription_spec.rb
1191
- - spec/integration/urn_date_dim_spec.rb
1192
- - spec/integration/user_filters_spec.rb
1193
- - spec/integration/user_group_spec.rb
1194
- - spec/integration/variables_spec.rb
1195
- - spec/logging_in_logging_out_spec.rb
1196
- - spec/spec_helper.rb
1197
- - spec/unit/actions/associate_clients_spec.rb
1198
- - spec/unit/actions/collect_client_projects_spec.rb
1199
- - spec/unit/actions/collect_clients_spec.rb
1200
- - spec/unit/actions/collect_data_product_spec.rb
1201
- - spec/unit/actions/collect_dynamic_schedule_params_spec.rb
1202
- - spec/unit/actions/collect_meta_spec.rb
1203
- - spec/unit/actions/collect_segment_clients_spec.rb
1204
- - spec/unit/actions/collect_tagged_objects_spec.rb
1205
- - spec/unit/actions/collect_users_brick_users_spec.rb
1206
- - spec/unit/actions/create_segment_masters_spec.rb
1207
- - spec/unit/actions/ensure_data_product_spec.rb
1208
- - spec/unit/actions/ensure_technical_users_domain_spec.rb
1209
- - spec/unit/actions/ensure_technical_users_project_spec.rb
1210
- - spec/unit/actions/execute_schedules_spec.rb
1211
- - spec/unit/actions/provision_clients_spec.rb
1212
- - spec/unit/actions/purge_clients_spec.rb
1213
- - spec/unit/actions/rename_existing_client_projects_spec.rb
1214
- - spec/unit/actions/segments_filter_spec.rb
1215
- - spec/unit/actions/shared_examples_for_user_actions.rb
1216
- - spec/unit/actions/synchronize_cas_spec.rb
1217
- - spec/unit/actions/synchronize_clients_spec.rb
1218
- - spec/unit/actions/synchronize_etls_in_segment_spec.rb
1219
- - spec/unit/actions/synchronize_ldm_spec.rb
1220
- - spec/unit/actions/synchronize_user_filters_spec.rb
1221
- - spec/unit/actions/synchronize_user_groups_spec.rb
1222
- - spec/unit/actions/synchronize_users_spec.rb
1223
- - spec/unit/bricks/bricks_spec.rb
1224
- - spec/unit/bricks/middleware/aws_middelware_spec.rb
1225
- - spec/unit/bricks/middleware/bench_middleware_spec.rb
1226
- - spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb
1227
- - spec/unit/bricks/middleware/gooddata_middleware_spec.rb
1228
- - spec/unit/bricks/middleware/logger_middleware_spec.rb
1229
- - spec/unit/bricks/middleware/restforce_middleware_spec.rb
1230
- - spec/unit/bricks/middleware/stdout_middleware_spec.rb
1231
- - spec/unit/bricks/middleware/twitter_middleware_spec.rb
1232
- - spec/unit/cli/cli_spec.rb
1233
- - spec/unit/cli/commands/cmd_auth_spec.rb
1234
- - spec/unit/core/nil_logger_spec.rb
1235
- - spec/unit/extensions/hash_spec.rb
1236
- - spec/unit/godzilla/goodzilla_spec.rb
1237
- - spec/unit/helpers/csv_helper_spec.rb
1238
- - spec/unit/helpers/data_helper_spec.rb
1239
- - spec/unit/helpers/global_helpers_spec.rb
1240
- - spec/unit/helpers_spec.rb
1241
- - spec/unit/lcm/lcm2_spec.rb
1242
- - spec/unit/lcm/user_bricks_helper_spec.rb
1243
- - spec/unit/models/blueprint/attribute_sort_by_spec.rb
1244
- - spec/unit/models/blueprint/attributes_spec.rb
1245
- - spec/unit/models/blueprint/dataset_spec.rb
1246
- - spec/unit/models/blueprint/label_blueprint_field_spec.rb
1247
- - spec/unit/models/blueprint/project_blueprint_spec.rb
1248
- - spec/unit/models/blueprint/reference_spec.rb
1249
- - spec/unit/models/blueprint/schema_builder_spec.rb
1250
- - spec/unit/models/blueprint/to_wire_spec.rb
1251
- - spec/unit/models/execution_spec.rb
1252
- - spec/unit/models/from_wire_spec.rb
1253
- - spec/unit/models/metadata_spec.rb
1254
- - spec/unit/models/metric_spec.rb
1255
- - spec/unit/models/model_spec.rb
1256
- - spec/unit/models/project_creator_spec.rb
1257
- - spec/unit/models/project_spec.rb
1258
- - spec/unit/models/report_result_data_spec.rb
1259
- - spec/unit/models/to_manifest_spec.rb
1260
- - spec/unit/models/user_filters/user_filter_builder_spec.rb
1261
- - spec/unit/models/user_filters_spec.rb
1262
- - spec/unit/models/variable_spec.rb
1263
- - spec/unit/rest/polling_spec.rb
1264
- - spec/unit/rest/resource_spec.rb
1085
+ test_files: []