gooddata 1.0.1 → 1.0.2

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.
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: []