gooddata 0.6.0 → 0.6.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 +13 -5
- data/.rubocop.yml +23 -0
- data/.travis.yml +9 -4
- data/CLI.md +439 -0
- data/Gemfile +0 -1
- data/README.md +2 -2
- data/Rakefile +60 -8
- data/doc/templates/default/module/setup.rb +1 -1
- data/examples.rb +2 -0
- data/gooddata +2 -0
- data/gooddata.gemspec +12 -8
- data/lib/gooddata.rb +0 -2
- data/lib/gooddata/bricks/base_downloader.rb +52 -47
- data/lib/gooddata/bricks/brick.rb +20 -31
- data/lib/gooddata/bricks/bricks.rb +1 -1
- data/lib/gooddata/bricks/middleware/base_middleware.rb +9 -7
- data/lib/gooddata/bricks/middleware/bench_middleware.rb +12 -10
- data/lib/gooddata/bricks/middleware/bulk_salesforce_middleware.rb +28 -28
- data/lib/gooddata/bricks/middleware/fs_upload_middleware.rb +20 -16
- data/lib/gooddata/bricks/middleware/gooddata_middleware.rb +21 -19
- data/lib/gooddata/bricks/middleware/logger_middleware.rb +10 -8
- data/lib/gooddata/bricks/middleware/restforce_middleware.rb +36 -34
- data/lib/gooddata/bricks/middleware/stdout_middleware.rb +11 -9
- data/lib/gooddata/bricks/middleware/twitter_middleware.rb +14 -12
- data/lib/gooddata/bricks/pipeline.rb +28 -0
- data/lib/gooddata/bricks/utils.rb +10 -8
- data/lib/gooddata/cli/cli.rb +1 -6
- data/lib/gooddata/cli/commands/auth_cmd.rb +1 -1
- data/lib/gooddata/cli/commands/console_cmd.rb +7 -5
- data/lib/gooddata/cli/commands/domain_cmd.rb +45 -0
- data/lib/gooddata/cli/commands/process_cmd.rb +42 -5
- data/lib/gooddata/cli/commands/project_cmd.rb +96 -36
- data/lib/gooddata/cli/commands/projects_cmd.rb +21 -0
- data/lib/gooddata/cli/commands/role_cmd.rb +28 -0
- data/lib/gooddata/cli/commands/run_ruby_cmd.rb +5 -5
- data/lib/gooddata/cli/commands/scaffold_cmd.rb +1 -1
- data/lib/gooddata/cli/commands/{profile_cmd.rb → user_cmd.rb} +7 -9
- data/lib/gooddata/cli/shared.rb +3 -2
- data/lib/gooddata/client.rb +16 -304
- data/lib/gooddata/commands/api.rb +13 -5
- data/lib/gooddata/commands/auth.rb +47 -40
- data/lib/gooddata/commands/base.rb +4 -2
- data/lib/gooddata/commands/commands.rb +1 -1
- data/lib/gooddata/commands/datasets.rb +20 -7
- data/lib/gooddata/commands/domain.rb +23 -0
- data/lib/gooddata/commands/process.rb +23 -117
- data/lib/gooddata/commands/project.rb +147 -0
- data/lib/gooddata/commands/projects.rb +8 -102
- data/lib/gooddata/commands/role.rb +26 -0
- data/lib/gooddata/commands/runners.rb +41 -38
- data/lib/gooddata/commands/scaffold.rb +46 -43
- data/lib/gooddata/commands/user.rb +33 -0
- data/lib/gooddata/connection.rb +43 -353
- data/lib/gooddata/core/connection.rb +389 -0
- data/lib/gooddata/core/core.rb +5 -4
- data/lib/gooddata/core/logging.rb +48 -0
- data/lib/gooddata/core/nil_logger.rb +13 -0
- data/lib/gooddata/core/project.rb +70 -0
- data/lib/gooddata/core/rest.rb +120 -0
- data/lib/gooddata/core/threaded.rb +14 -0
- data/lib/gooddata/core/user.rb +19 -0
- data/lib/gooddata/data/data.rb +2 -1
- data/lib/gooddata/data/guesser.rb +16 -12
- data/lib/gooddata/exceptions/command_failed.rb +1 -1
- data/lib/gooddata/exceptions/exceptions.rb +2 -1
- data/lib/gooddata/exceptions/no_project_error.rb +11 -0
- data/lib/gooddata/exceptions/project_not_found.rb +1 -1
- data/lib/gooddata/extensions/big_decimal.rb +6 -2
- data/lib/gooddata/extract.rb +10 -8
- data/lib/gooddata/goodzilla/goodzilla.rb +61 -59
- data/lib/gooddata/helpers.rb +15 -9
- data/lib/gooddata/models/account_settings.rb +124 -0
- data/lib/gooddata/models/attributes/anchor.rb +37 -0
- data/lib/gooddata/models/attributes/attributes.rb +8 -0
- data/lib/gooddata/models/attributes/date_attribute.rb +25 -0
- data/lib/gooddata/models/attributes/time_attribute.rb +24 -0
- data/lib/gooddata/models/columns/attribute.rb +71 -0
- data/lib/gooddata/models/columns/columns.rb +8 -0
- data/lib/gooddata/models/columns/date_column.rb +63 -0
- data/lib/gooddata/models/columns/fact_model.rb +54 -0
- data/lib/gooddata/models/columns/label.rb +55 -0
- data/lib/gooddata/models/columns/reference.rb +57 -0
- data/lib/gooddata/models/dashboard_builder.rb +26 -0
- data/lib/gooddata/models/data_result.rb +10 -9
- data/lib/gooddata/models/domain.rb +131 -0
- data/lib/gooddata/models/empty_result.rb +5 -8
- data/lib/gooddata/models/facts/facts.rb +8 -0
- data/lib/gooddata/models/facts/time_fact.rb +20 -0
- data/lib/gooddata/models/folders/attribute_folder.rb +20 -0
- data/lib/gooddata/models/folders/fact_folder.rb +20 -0
- data/lib/gooddata/models/folders/folders.rb +8 -0
- data/lib/gooddata/models/invitation.rb +78 -0
- data/lib/gooddata/models/links.rb +6 -6
- data/lib/gooddata/models/md_object.rb +25 -0
- data/lib/gooddata/models/metadata.rb +160 -62
- data/lib/gooddata/models/metadata/attribute.rb +81 -0
- data/lib/gooddata/models/metadata/column.rb +61 -0
- data/lib/gooddata/models/{dashboard.rb → metadata/dashboard.rb} +12 -7
- data/lib/gooddata/models/{data_set.rb → metadata/data_set.rb} +5 -4
- data/lib/gooddata/models/metadata/date_dimension.rb +26 -0
- data/lib/gooddata/models/metadata/display_form.rb +61 -0
- data/lib/gooddata/models/metadata/fact.rb +36 -0
- data/lib/gooddata/models/metadata/folder.rb +24 -0
- data/lib/gooddata/models/metadata/metadata.rb +8 -0
- data/lib/gooddata/models/metadata/metric.rb +197 -0
- data/lib/gooddata/models/metadata/report.rb +115 -0
- data/lib/gooddata/models/{report_definition.rb → metadata/report_definition.rb} +16 -10
- data/lib/gooddata/models/metadata/schema.rb +227 -0
- data/lib/gooddata/models/model.rb +38 -1339
- data/lib/gooddata/models/models.rb +5 -2
- data/lib/gooddata/models/module_constants.rb +29 -0
- data/lib/gooddata/models/process.rb +142 -13
- data/lib/gooddata/models/profile.rb +4 -6
- data/lib/gooddata/models/project.rb +406 -136
- data/lib/gooddata/models/project_blueprint.rb +221 -0
- data/lib/gooddata/models/project_builder.rb +136 -0
- data/lib/gooddata/models/project_creator.rb +138 -0
- data/lib/gooddata/models/project_metadata.rb +11 -10
- data/lib/gooddata/models/project_role.rb +92 -0
- data/lib/gooddata/models/references/date_reference.rb +44 -0
- data/lib/gooddata/models/references/references.rb +8 -0
- data/lib/gooddata/models/references/time_reference.rb +13 -0
- data/lib/gooddata/models/report_data_result.rb +11 -11
- data/lib/gooddata/models/schedule.rb +284 -0
- data/lib/gooddata/models/schema_blueprint.rb +158 -0
- data/lib/gooddata/models/schema_builder.rb +81 -0
- data/lib/gooddata/models/tab_builder.rb +23 -0
- data/lib/gooddata/models/user.rb +165 -0
- data/lib/gooddata/version.rb +1 -1
- data/lib/templates/project/data/devs.csv +1 -1
- data/lib/templates/project/data/repos.csv +1 -1
- data/lib/templates/project/model/model.rb.erb +7 -11
- data/spec/bricks/bricks_spec.rb +2 -0
- data/spec/data/test-ci-data.csv +2 -0
- data/spec/data/test_project_model_spec.json +7 -27
- data/spec/helpers/blueprint_helper.rb +2 -0
- data/spec/helpers/cli_helper.rb +2 -0
- data/spec/helpers/connection_helper.rb +14 -1
- data/spec/helpers/project_helper.rb +16 -0
- data/spec/helpers/schema_helper.rb +16 -0
- data/spec/integration/command_projects_spec.rb +7 -7
- data/spec/integration/create_from_template_spec.rb +2 -2
- data/spec/integration/full_project_spec.rb +160 -7
- data/spec/integration/partial_md_export_import_spec.rb +3 -3
- data/spec/logging_in_logging_out_spec.rb +2 -1
- data/spec/spec_helper.rb +26 -4
- data/spec/unit/bricks/bricks_spec.rb +15 -7
- data/spec/unit/bricks/middleware/bench_middleware_spec.rb +2 -0
- data/spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb +2 -0
- data/spec/unit/bricks/middleware/gooddata_middleware_spec.rb +2 -0
- data/spec/unit/bricks/middleware/logger_middleware_spec.rb +2 -0
- data/spec/unit/bricks/middleware/restforce_middleware_spec.rb +2 -0
- data/spec/unit/bricks/middleware/stdout_middleware_spec.rb +2 -0
- data/spec/unit/bricks/middleware/twitter_middleware_spec.rb +2 -0
- data/spec/unit/cli/cli_spec.rb +2 -0
- data/spec/unit/cli/commands/cmd_api_spec.rb +23 -15
- data/spec/unit/cli/commands/cmd_auth_spec.rb +8 -4
- data/spec/unit/cli/commands/cmd_domain_spec.rb +82 -0
- data/spec/unit/cli/commands/cmd_process_spec.rb +29 -13
- data/spec/unit/cli/commands/cmd_project_spec.rb +51 -30
- data/spec/unit/cli/commands/cmd_role_spec.rb +44 -0
- data/spec/unit/cli/commands/cmd_run_ruby_spec.rb +8 -4
- data/spec/unit/cli/commands/cmd_scaffold_spec.rb +48 -11
- data/spec/unit/cli/commands/cmd_user_spec.rb +29 -0
- data/spec/unit/commands/command_api_spec.rb +1 -1
- data/spec/unit/commands/command_auth_spec.rb +100 -18
- data/spec/unit/commands/command_dataset_spec.rb +4 -0
- data/spec/unit/commands/command_process_spec.rb +9 -4
- data/spec/unit/commands/command_projects_spec.rb +10 -6
- data/spec/unit/commands/command_scaffold_spec.rb +5 -1
- data/spec/unit/commands/command_user_spec.rb +22 -0
- data/spec/unit/core/connection_spec.rb +35 -6
- data/spec/unit/core/logging_spec.rb +65 -0
- data/spec/unit/core/nil_logger_spec.rb +9 -0
- data/spec/unit/core/project_spec.rb +51 -0
- data/spec/unit/core/rest_spec.rb +33 -0
- data/spec/unit/data/guesser_spec.rb +5 -0
- data/spec/unit/godzilla/goodzilla_spec.rb +2 -0
- data/spec/unit/models/account_settings_spec.rb +28 -0
- data/spec/unit/models/anchor_spec.rb +32 -0
- data/spec/unit/models/attribute_column_spec.rb +7 -0
- data/spec/unit/models/domain_spec.rb +45 -0
- data/spec/unit/models/invitation_spec.rb +13 -0
- data/spec/unit/models/md_object_spec.rb +47 -0
- data/spec/unit/models/metric.rb +92 -0
- data/spec/unit/{model → models}/model_spec.rb +9 -7
- data/spec/unit/models/project_blueprint_spec.rb +202 -0
- data/spec/unit/models/project_creator.rb +73 -0
- data/spec/unit/models/project_role_spec.rb +90 -0
- data/spec/unit/models/project_spec.rb +143 -0
- data/spec/unit/models/schedule_spec.rb +491 -0
- data/spec/unit/{model → models}/schema_builder_spec.rb +2 -0
- data/spec/unit/{model → models}/tools_spec.rb +13 -7
- data/spec/unit/models/user_spec.rb +16 -0
- data/test/test_upload.rb +2 -0
- metadata +189 -86
- data/lib/gooddata/commands/profile.rb +0 -11
- data/lib/gooddata/models/attribute.rb +0 -29
- data/lib/gooddata/models/display_form.rb +0 -9
- data/lib/gooddata/models/fact.rb +0 -19
- data/lib/gooddata/models/metric.rb +0 -99
- data/lib/gooddata/models/report.rb +0 -89
- data/spec/data/blueprint_valid.json +0 -37
- data/spec/unit/cli/commands/cmd_profile_spec.rb +0 -16
- data/spec/unit/commands/command_profile_spec.rb +0 -18
- data/spec/unit/core/core_spec.rb +0 -7
- data/spec/unit/model/blueprint_spec.rb +0 -132
- data/spec/unit/model/project_blueprint_spec.rb +0 -44
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
|
|
3
|
+
require 'gooddata/cli/cli'
|
|
4
|
+
|
|
5
|
+
describe GoodData::CLI do
|
|
6
|
+
describe 'role' do
|
|
7
|
+
it 'Complains when no parameters specified' do
|
|
8
|
+
args = %w(role)
|
|
9
|
+
|
|
10
|
+
out = run_cli(args)
|
|
11
|
+
out.should include "Command 'role' requires a subcommand list"
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
describe 'role list' do
|
|
15
|
+
it 'Complains when no project ID specified' do
|
|
16
|
+
args = %w(role list)
|
|
17
|
+
|
|
18
|
+
out = run_cli(args)
|
|
19
|
+
out.should include 'Project ID has to be provided'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'List roles when passing project ID' do
|
|
23
|
+
pending 'Investignate which project to use'
|
|
24
|
+
|
|
25
|
+
args = [
|
|
26
|
+
'-p',
|
|
27
|
+
ProjectHelper::PROJECT_ID,
|
|
28
|
+
'role',
|
|
29
|
+
'list',
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
out = run_cli(args)
|
|
33
|
+
|
|
34
|
+
expected_roles = [
|
|
35
|
+
'adminRole,/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles/2'
|
|
36
|
+
]
|
|
37
|
+
|
|
38
|
+
expected_roles.each do |expected_role|
|
|
39
|
+
out.should include expected_role
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
|
|
1
3
|
require 'gooddata/cli/cli'
|
|
2
4
|
|
|
3
|
-
describe GoodData::CLI do
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
describe 'GoodData::CLI - run_ruby' do
|
|
6
|
+
describe 'run_ruby' do
|
|
7
|
+
it 'Can be called without arguments' do
|
|
8
|
+
args = %w(run_ruby)
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
run_cli(args)
|
|
11
|
+
end
|
|
8
12
|
end
|
|
9
13
|
end
|
|
@@ -1,21 +1,58 @@
|
|
|
1
|
+
require 'fileutils'
|
|
2
|
+
|
|
1
3
|
require 'gooddata/cli/cli'
|
|
2
4
|
|
|
3
|
-
describe GoodData::CLI do
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
describe 'GoodData::CLI - scaffold' do
|
|
6
|
+
TEST_PROJECT_NAME = 'test-project'
|
|
7
|
+
TEST_BRICK_NAME = 'test-brick'
|
|
8
|
+
|
|
9
|
+
describe 'scaffold' do
|
|
10
|
+
it 'Complains when no subcommand specified' do
|
|
11
|
+
args = %w(scaffold)
|
|
6
12
|
|
|
7
|
-
|
|
13
|
+
out = run_cli(args)
|
|
14
|
+
out.should include "Command 'scaffold' requires a subcommand project,brick"
|
|
15
|
+
end
|
|
8
16
|
end
|
|
9
17
|
|
|
10
|
-
|
|
11
|
-
|
|
18
|
+
describe 'scaffold brick' do
|
|
19
|
+
it 'Complains when brick name is not specified' do
|
|
20
|
+
args = %w(scaffold brick)
|
|
21
|
+
|
|
22
|
+
out = run_cli(args)
|
|
23
|
+
out.should include 'Name of the brick has to be provided'
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'Scaffolds brick if the name is specified' do
|
|
27
|
+
args = [
|
|
28
|
+
'scaffold',
|
|
29
|
+
'brick',
|
|
30
|
+
TEST_BRICK_NAME
|
|
31
|
+
]
|
|
12
32
|
|
|
13
|
-
|
|
33
|
+
run_cli(args)
|
|
34
|
+
FileUtils.rm_rf(TEST_BRICK_NAME)
|
|
35
|
+
end
|
|
14
36
|
end
|
|
15
37
|
|
|
16
|
-
|
|
17
|
-
|
|
38
|
+
describe 'scaffold project' do
|
|
39
|
+
it 'Complains when project name is not specified' do
|
|
40
|
+
args = %w(scaffold project)
|
|
18
41
|
|
|
19
|
-
|
|
42
|
+
out = run_cli(args)
|
|
43
|
+
out.should include 'Name of the project has to be provided'
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "Scaffolds project if the name is specified" do
|
|
47
|
+
args = [
|
|
48
|
+
'scaffold',
|
|
49
|
+
'project',
|
|
50
|
+
TEST_PROJECT_NAME
|
|
51
|
+
]
|
|
52
|
+
|
|
53
|
+
run_cli(args)
|
|
54
|
+
FileUtils.rm_rf(TEST_PROJECT_NAME)
|
|
55
|
+
end
|
|
20
56
|
end
|
|
21
|
-
|
|
57
|
+
|
|
58
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require 'gooddata/cli/cli'
|
|
2
|
+
|
|
3
|
+
describe 'GoodData::CLI - user' do
|
|
4
|
+
describe 'user' do
|
|
5
|
+
it 'Complains when no subcommand specified' do
|
|
6
|
+
args = %w(user)
|
|
7
|
+
|
|
8
|
+
out = run_cli(args)
|
|
9
|
+
out.should include "Command 'user' requires a subcommand show"
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe 'user list' do
|
|
14
|
+
it "Has working 'user list' command" do
|
|
15
|
+
args = %w(user list)
|
|
16
|
+
|
|
17
|
+
run_cli(args)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe 'user show' do
|
|
22
|
+
it "Has working 'user show' command" do
|
|
23
|
+
args = %w(user show)
|
|
24
|
+
|
|
25
|
+
run_cli(args)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
@@ -6,6 +6,20 @@ require 'gooddata/commands/auth'
|
|
|
6
6
|
describe GoodData::Command::Auth do
|
|
7
7
|
ORIG_TERMINAL = GoodData::CLI::DEFAULT_TERMINAL
|
|
8
8
|
|
|
9
|
+
DEFAULT_CREDENTIALS = {
|
|
10
|
+
:email => 'joedoe@example.com',
|
|
11
|
+
:password => 'secretPassword',
|
|
12
|
+
:token => 't0k3n1sk0',
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
DEFAULT_CREDENTIALS_OVER = {
|
|
16
|
+
:email => 'pepa@depo.com',
|
|
17
|
+
:password => 'lokomotiva',
|
|
18
|
+
:token => 'briketa',
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
DEFAULT_CREDENTIALS_TEMP_FILE_NAME = 'credentials'
|
|
22
|
+
|
|
9
23
|
before(:all) do
|
|
10
24
|
@input = StringIO.new
|
|
11
25
|
@output = StringIO.new
|
|
@@ -20,7 +34,11 @@ describe GoodData::Command::Auth do
|
|
|
20
34
|
|
|
21
35
|
|
|
22
36
|
before(:each) do
|
|
23
|
-
ConnectionHelper::create_default_connection
|
|
37
|
+
@connection = ConnectionHelper::create_default_connection
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
after(:each) do
|
|
41
|
+
GoodData.disconnect
|
|
24
42
|
end
|
|
25
43
|
|
|
26
44
|
it "Is Possible to create GoodData::Command::Auth instance" do
|
|
@@ -34,40 +52,104 @@ describe GoodData::Command::Auth do
|
|
|
34
52
|
end
|
|
35
53
|
end
|
|
36
54
|
|
|
37
|
-
describe "#
|
|
38
|
-
it
|
|
55
|
+
describe "#ask_for_credentials" do
|
|
56
|
+
it 'Interactively asks user for crendentials' do
|
|
39
57
|
pending("Mock STDIO")
|
|
58
|
+
@input.string = ''
|
|
59
|
+
@input << DEFAULT_CREDENTIALS[:email] << "\n"
|
|
60
|
+
@input << DEFAULT_CREDENTIALS[:password] << "\n"
|
|
61
|
+
@input << DEFAULT_CREDENTIALS[:token] << "\n"
|
|
62
|
+
@input.rewind
|
|
63
|
+
|
|
64
|
+
GoodData::Command::Auth.ask_for_credentials
|
|
40
65
|
end
|
|
41
66
|
end
|
|
42
67
|
|
|
43
|
-
describe "#
|
|
44
|
-
credentials
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
:token => 't0k3n1sk0',
|
|
48
|
-
}
|
|
68
|
+
describe "#read_credentials" do
|
|
69
|
+
it 'Reads credentials from default file if no path specified' do
|
|
70
|
+
GoodData::Command::Auth.read_credentials
|
|
71
|
+
end
|
|
49
72
|
|
|
50
|
-
it '
|
|
51
|
-
|
|
73
|
+
it 'Reads credentials from file specified' do
|
|
74
|
+
temp_path = Tempfile.new(DEFAULT_CREDENTIALS_TEMP_FILE_NAME).path
|
|
52
75
|
|
|
53
|
-
|
|
54
|
-
@input << credentials[:password] << "\n"
|
|
55
|
-
@input << credentials[:token] << "\n"
|
|
56
|
-
@input.rewind
|
|
76
|
+
GoodData::Command::Auth.write_credentials(DEFAULT_CREDENTIALS, temp_path)
|
|
57
77
|
|
|
58
|
-
GoodData::Command::Auth.
|
|
78
|
+
result = GoodData::Command::Auth.read_credentials(temp_path)
|
|
79
|
+
GoodData::Command::Auth.unstore(temp_path)
|
|
80
|
+
|
|
81
|
+
result.should == DEFAULT_CREDENTIALS
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
it 'Returns empty hash if invalid path specified' do
|
|
85
|
+
expect = {}
|
|
86
|
+
result = GoodData::Command::Auth.read_credentials('/some/invalid/path')
|
|
87
|
+
result.should == expect
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
describe "#write_credentials" do
|
|
92
|
+
it 'Writes credentials' do
|
|
93
|
+
temp_path = Tempfile.new(DEFAULT_CREDENTIALS_TEMP_FILE_NAME).path
|
|
94
|
+
|
|
95
|
+
result = GoodData::Command::Auth.write_credentials(DEFAULT_CREDENTIALS, temp_path)
|
|
96
|
+
GoodData::Command::Auth.unstore(temp_path)
|
|
97
|
+
|
|
98
|
+
result.should == DEFAULT_CREDENTIALS
|
|
59
99
|
end
|
|
60
100
|
end
|
|
61
101
|
|
|
62
102
|
describe "#store" do
|
|
63
103
|
it 'Stores credentials' do
|
|
64
|
-
|
|
104
|
+
@input.string = ''
|
|
105
|
+
@input << DEFAULT_CREDENTIALS[:email] << "\n"
|
|
106
|
+
@input << DEFAULT_CREDENTIALS[:password] << "\n"
|
|
107
|
+
@input << DEFAULT_CREDENTIALS[:token] << "\n"
|
|
108
|
+
@input << 'y' << "\n"
|
|
109
|
+
@input.rewind
|
|
110
|
+
|
|
111
|
+
temp_path = Tempfile.new(DEFAULT_CREDENTIALS_TEMP_FILE_NAME).path
|
|
112
|
+
GoodData::Command::Auth.unstore(temp_path)
|
|
113
|
+
GoodData::Command::Auth.store(temp_path)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
it 'Overwrites credentials if confirmed' do
|
|
117
|
+
@input.string = ''
|
|
118
|
+
@input << DEFAULT_CREDENTIALS[:email] << "\n"
|
|
119
|
+
@input << DEFAULT_CREDENTIALS[:password] << "\n"
|
|
120
|
+
@input << DEFAULT_CREDENTIALS[:token] << "\n"
|
|
121
|
+
@input << 'y' << "\n"
|
|
122
|
+
@input.rewind
|
|
123
|
+
|
|
124
|
+
temp_path = Tempfile.new(DEFAULT_CREDENTIALS_TEMP_FILE_NAME).path
|
|
125
|
+
GoodData::Command::Auth.write_credentials(DEFAULT_CREDENTIALS, temp_path)
|
|
126
|
+
|
|
127
|
+
GoodData::Command::Auth.store(temp_path)
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
it 'Do not overwrites credentials if not confirmed' do
|
|
131
|
+
@input.string = ''
|
|
132
|
+
@input << DEFAULT_CREDENTIALS_OVER[:email] << "\n"
|
|
133
|
+
@input << DEFAULT_CREDENTIALS_OVER[:password] << "\n"
|
|
134
|
+
@input << DEFAULT_CREDENTIALS_OVER[:token] << "\n"
|
|
135
|
+
@input << 'n' << "\n"
|
|
136
|
+
@input.rewind
|
|
137
|
+
|
|
138
|
+
temp_path = Tempfile.new(DEFAULT_CREDENTIALS_TEMP_FILE_NAME).path
|
|
139
|
+
GoodData::Command::Auth.write_credentials(DEFAULT_CREDENTIALS, temp_path)
|
|
140
|
+
|
|
141
|
+
GoodData::Command::Auth.store(temp_path)
|
|
142
|
+
result = GoodData::Command::Auth.read_credentials(temp_path)
|
|
143
|
+
|
|
144
|
+
result.should == DEFAULT_CREDENTIALS
|
|
65
145
|
end
|
|
66
146
|
end
|
|
67
147
|
|
|
68
148
|
describe "#unstore" do
|
|
69
149
|
it 'Removes stored credentials' do
|
|
70
|
-
|
|
150
|
+
temp_path = Tempfile.new(DEFAULT_CREDENTIALS_TEMP_FILE_NAME).path
|
|
151
|
+
GoodData::Command::Auth.write_credentials(DEFAULT_CREDENTIALS, temp_path)
|
|
152
|
+
GoodData::Command::Auth.unstore(temp_path)
|
|
71
153
|
end
|
|
72
154
|
end
|
|
73
155
|
end
|
|
@@ -6,6 +6,10 @@ describe GoodData::Command::Datasets do
|
|
|
6
6
|
@cmd = GoodData::Command::Datasets.new()
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
+
after(:each) do
|
|
10
|
+
GoodData.disconnect
|
|
11
|
+
end
|
|
12
|
+
|
|
9
13
|
it "Is Possible to create GoodData::Command::Datasets instance" do
|
|
10
14
|
@cmd.should be_a(GoodData::Command::Datasets)
|
|
11
15
|
end
|
|
@@ -4,7 +4,11 @@ describe GoodData::Command::Process do
|
|
|
4
4
|
deploy_dir = './'
|
|
5
5
|
|
|
6
6
|
before(:each) do
|
|
7
|
-
ConnectionHelper
|
|
7
|
+
ConnectionHelper.create_default_connection
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
after(:each) do
|
|
11
|
+
GoodData.disconnect
|
|
8
12
|
end
|
|
9
13
|
|
|
10
14
|
it "Is Possible to create GoodData::Command::Process instance" do
|
|
@@ -25,7 +29,8 @@ describe GoodData::Command::Process do
|
|
|
25
29
|
|
|
26
30
|
describe "#deploy" do
|
|
27
31
|
it "Throws exception if no project specified" do
|
|
28
|
-
|
|
32
|
+
pending('Flickering test result, investigate why')
|
|
33
|
+
expect { GoodData::Command::Process.deploy(deploy_dir) }.to_not raise_error
|
|
29
34
|
end
|
|
30
35
|
|
|
31
36
|
it "Deploys graph" do
|
|
@@ -56,12 +61,12 @@ describe GoodData::Command::Process do
|
|
|
56
61
|
|
|
57
62
|
describe "#run" do
|
|
58
63
|
it "Throws exception if no project specified" do
|
|
59
|
-
expect { GoodData::Command::Process.run(deploy_dir) }.to raise_error
|
|
64
|
+
expect { GoodData::Command::Process.run(deploy_dir, './main.grf') }.to raise_error
|
|
60
65
|
end
|
|
61
66
|
|
|
62
67
|
it "Runs process" do
|
|
63
68
|
pending('Project ID needed')
|
|
64
|
-
GoodData::Command::Process.run(deploy_dir)
|
|
69
|
+
GoodData::Command::Process.run(deploy_dir, './main.grf')
|
|
65
70
|
end
|
|
66
71
|
end
|
|
67
72
|
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
require 'gooddata/commands/
|
|
1
|
+
require 'gooddata/commands/project'
|
|
2
2
|
|
|
3
|
-
describe GoodData::Command::
|
|
3
|
+
describe GoodData::Command::Project do
|
|
4
4
|
before(:each) do
|
|
5
|
-
ConnectionHelper
|
|
5
|
+
ConnectionHelper.create_default_connection
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
after(:each) do
|
|
9
|
+
GoodData.disconnect
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it "Is Possible to create GoodData::Command::Project instance" do
|
|
13
|
+
cmd = GoodData::Command::Project.new()
|
|
14
|
+
cmd.should be_a(GoodData::Command::Project)
|
|
11
15
|
end
|
|
12
16
|
end
|
|
@@ -6,7 +6,11 @@ describe GoodData::Command::Scaffold do
|
|
|
6
6
|
end
|
|
7
7
|
|
|
8
8
|
before(:each) do
|
|
9
|
-
ConnectionHelper
|
|
9
|
+
ConnectionHelper.create_default_connection
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
after(:each) do
|
|
13
|
+
GoodData.disconnect
|
|
10
14
|
end
|
|
11
15
|
|
|
12
16
|
it "Is Possible to create GoodData::Command::Scaffold instance" do
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'gooddata/commands/user'
|
|
2
|
+
|
|
3
|
+
describe GoodData::Command::User do
|
|
4
|
+
before(:each) do
|
|
5
|
+
ConnectionHelper.create_default_connection
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
after(:each) do
|
|
9
|
+
GoodData.disconnect
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it "Is Possible to create GoodData::Command::User instance" do
|
|
13
|
+
cmd = GoodData::Command::User.new()
|
|
14
|
+
cmd.should be_a(GoodData::Command::User)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
describe "#show" do
|
|
18
|
+
it "Shows profile" do
|
|
19
|
+
GoodData::Command::User.show
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
require 'gooddata/connection'
|
|
2
|
+
require 'gooddata/core/connection'
|
|
2
3
|
|
|
3
4
|
describe GoodData::Connection do
|
|
4
5
|
before(:all) do
|
|
5
|
-
USERNAME = DEFAULT_USERNAME
|
|
6
|
-
PASSWORD = DEFAULT_PASSWORD
|
|
6
|
+
USERNAME = ConnectionHelper::DEFAULT_USERNAME
|
|
7
|
+
PASSWORD = ConnectionHelper::DEFAULT_PASSWORD
|
|
7
8
|
end
|
|
8
9
|
|
|
9
10
|
it "Has DEFAULT_URL defined" do
|
|
@@ -18,9 +19,37 @@ describe GoodData::Connection do
|
|
|
18
19
|
GoodData::Connection::TOKEN_PATH.should be_a(String)
|
|
19
20
|
end
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
describe '#connect' do
|
|
23
|
+
it "Connects using username and password" do
|
|
24
|
+
c = GoodData.connect(ConnectionHelper::DEFAULT_USERNAME, ConnectionHelper::DEFAULT_PASSWORD)
|
|
25
|
+
c.should be_a(GoodData::Connection)
|
|
26
|
+
GoodData.disconnect
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe '#disconnect' do
|
|
31
|
+
it "Connects using username and password" do
|
|
32
|
+
GoodData.connect(ConnectionHelper::DEFAULT_USERNAME, ConnectionHelper::DEFAULT_PASSWORD)
|
|
33
|
+
GoodData.disconnect
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
describe '#connect_with_sst' do
|
|
38
|
+
it 'Connects using SST' do
|
|
39
|
+
pending('Get SST')
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
describe '#create_authenticated_connection' do
|
|
44
|
+
it "Creates authenticated connection" do
|
|
45
|
+
pending('Investigate how the credentials should be passed')
|
|
46
|
+
GoodData.connect(ConnectionHelper::DEFAULT_USERNAME, ConnectionHelper::DEFAULT_PASSWORD)
|
|
47
|
+
opts = {
|
|
48
|
+
:username => ConnectionHelper::DEFAULT_USERNAME,
|
|
49
|
+
:password => ConnectionHelper::DEFAULT_PASSWORD
|
|
50
|
+
}
|
|
51
|
+
GoodData.create_authenticated_connection(opts)
|
|
52
|
+
GoodData.disconnect
|
|
53
|
+
end
|
|
25
54
|
end
|
|
26
55
|
end
|