veye 0.0.9 → 0.1
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 +4 -4
- data/Gemfile.lock +80 -29
- data/Makefile +6 -0
- data/README.md +12 -224
- data/bin/veye +13 -22
- data/changelogs.md +95 -0
- data/lib/veye/api/base_resource.rb +8 -9
- data/lib/veye/api/github.rb +77 -0
- data/lib/veye/api/json_response.rb +21 -25
- data/lib/veye/api/package.rb +98 -0
- data/lib/veye/api/project.rb +107 -0
- data/lib/veye/api/resource.rb +9 -8
- data/lib/veye/api/service.rb +15 -0
- data/lib/veye/api/user.rb +32 -0
- data/lib/veye/api.rb +22 -2
- data/lib/veye/base_executor.rb +13 -9
- data/lib/veye/github/delete.rb +10 -20
- data/lib/veye/github/import.rb +7 -14
- data/lib/veye/github/info.rb +6 -12
- data/lib/veye/github/list.rb +9 -19
- data/lib/veye/github/search.rb +9 -17
- data/lib/veye/github/sync.rb +9 -18
- data/lib/veye/github.rb +1 -1
- data/lib/veye/helpers/format_helpers.rb +15 -5
- data/lib/veye/package/follow.rb +24 -47
- data/lib/veye/package/info.rb +8 -25
- data/lib/veye/package/references.rb +9 -36
- data/lib/veye/package/search.rb +14 -24
- data/lib/veye/package.rb +14 -6
- data/lib/veye/pagination.rb +2 -0
- data/lib/veye/project/check.rb +39 -117
- data/lib/veye/project/license.rb +23 -0
- data/lib/veye/project.rb +4 -3
- data/lib/veye/service.rb +13 -17
- data/lib/veye/user/me.rb +11 -30
- data/lib/veye/user.rb +2 -1
- data/lib/veye/version.rb +1 -1
- data/lib/veye/views/github/info_csv.rb +3 -3
- data/lib/veye/views/github/info_json.rb +4 -0
- data/lib/veye/views/github/list_csv.rb +5 -3
- data/lib/veye/views/github/list_pretty.rb +2 -2
- data/lib/veye/views/github/list_table.rb +3 -2
- data/lib/veye/views/package/info_pretty.rb +1 -1
- data/lib/veye/views/package/search_csv.rb +2 -3
- data/lib/veye/views/package/search_table.rb +1 -3
- data/lib/veye/views/package.rb +1 -1
- data/lib/veye/views/project/licence_csv.rb +3 -3
- data/lib/veye/views/project/licence_json.rb +1 -1
- data/lib/veye/views/project/licence_pretty.rb +1 -1
- data/lib/veye/views/project/licence_table.rb +3 -3
- data/lib/veye/views/user/profile_table.rb +4 -1
- data/lib/veye/views/user.rb +3 -1
- data/lib/veye.rb +29 -61
- data/test/api/github_test.rb +84 -0
- data/test/api/package_test.rb +80 -0
- data/test/api/project_test.rb +118 -0
- data/test/api/service_test.rb +15 -0
- data/test/api/user_test.rb +30 -0
- data/test/fixtures/vcr_cassettes/github_delete.yml +48 -0
- data/test/fixtures/vcr_cassettes/github_import.yml +53 -0
- data/test/fixtures/vcr_cassettes/github_info.yml +49 -0
- data/test/fixtures/vcr_cassettes/github_list.yml +80 -0
- data/test/fixtures/vcr_cassettes/github_sync.yml +48 -0
- data/test/fixtures/vcr_cassettes/package_follow.yml +52 -0
- data/test/fixtures/vcr_cassettes/package_follow_status.yml +48 -0
- data/test/fixtures/vcr_cassettes/package_info.yml +56 -0
- data/test/fixtures/vcr_cassettes/package_reference.yml +46 -0
- data/test/fixtures/vcr_cassettes/package_search.yml +46 -0
- data/test/fixtures/vcr_cassettes/package_unfollow.yml +48 -0
- data/test/fixtures/vcr_cassettes/project_delete.yml +48 -0
- data/test/fixtures/vcr_cassettes/project_get.yml +49 -0
- data/test/fixtures/vcr_cassettes/project_license.yml +49 -0
- data/test/fixtures/vcr_cassettes/project_list.yml +48 -0
- data/test/fixtures/vcr_cassettes/project_update.yml +105 -0
- data/test/fixtures/vcr_cassettes/project_upload.yml +104 -0
- data/test/fixtures/vcr_cassettes/services_ping.yml +46 -0
- data/test/fixtures/vcr_cassettes/user_get_favorites.yml +48 -0
- data/test/fixtures/vcr_cassettes/user_get_profile.yml +48 -0
- data/test/github_delete_test.rb +31 -0
- data/test/github_import_test.rb +94 -0
- data/test/github_info_test.rb +73 -0
- data/test/github_list_test.rb +84 -0
- data/test/github_sync_test.rb +20 -0
- data/test/package_follow_test.rb +38 -0
- data/test/package_info_test.rb +73 -0
- data/test/package_reference_test.rb +67 -0
- data/test/package_search_test.rb +66 -0
- data/test/project_check_test.rb +326 -0
- data/test/project_license_test.rb +72 -0
- data/test/service_test.rb +29 -0
- data/test/test_helper.rb +29 -4
- data/test/user_me_test.rb +126 -0
- data/veye.gemspec +45 -0
- metadata +163 -37
- data/DEPENDENCIES.md +0 -25
- data/lib/veye/helpers/repo_helpers.rb +0 -5
- data/lib/veye/project/licence.rb +0 -38
- data/test/default_test.rb +0 -14
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'csv'
|
|
3
|
+
|
|
4
|
+
class PackageInfoTest < Minitest::Test
|
|
5
|
+
def setup
|
|
6
|
+
init_environment
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def test_info_default
|
|
10
|
+
VCR.use_cassette('package_info') do
|
|
11
|
+
output = capture_stdout {|| Veye::Package::Info.get_package('ruby/veye')}
|
|
12
|
+
refute_nil output, "No command output"
|
|
13
|
+
|
|
14
|
+
rows = output.split(/\n/)
|
|
15
|
+
assert_equal "\t\e[32m\e[1mveye\e[0m - \e[1m0.0.9\e[0m", rows[0]
|
|
16
|
+
assert_equal "\tLanguage : ruby", rows[1]
|
|
17
|
+
assert_equal "\tLicense : MIT", rows[2]
|
|
18
|
+
assert_equal "\tProduct type : RubyGem", rows[3]
|
|
19
|
+
assert_equal "\tProduct key : \e[1mveye\e[0m", rows[4]
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_info_csv_format
|
|
24
|
+
VCR.use_cassette('package_info') do
|
|
25
|
+
output = capture_stdout do
|
|
26
|
+
Veye::Package::Info.get_package('ruby/veye', {format: 'csv'})
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
refute_nil output, "No command output"
|
|
30
|
+
rows = CSV.parse(output)
|
|
31
|
+
assert_equal ["name", "version", "language", "prod_key", "licence", "prod_type", "description", "link"], rows[0]
|
|
32
|
+
assert_equal ["veye", "0.0.9", "ruby", "veye", nil, "RubyGem", nil, nil], rows[1]
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_info_json_format
|
|
37
|
+
VCR.use_cassette('package_info') do
|
|
38
|
+
output = capture_stdout do
|
|
39
|
+
Veye::Package::Info.get_package('ruby/veye', {format: 'json'})
|
|
40
|
+
end
|
|
41
|
+
refute_nil output
|
|
42
|
+
dt = JSON.parse(output)
|
|
43
|
+
package = dt["package"]
|
|
44
|
+
assert_equal "veye", package["name"]
|
|
45
|
+
assert_equal "ruby", package["language"]
|
|
46
|
+
assert_equal "veye", package["prod_key"]
|
|
47
|
+
assert_equal "0.0.9", package["version"]
|
|
48
|
+
assert_equal "RubyGem", package["prod_type"]
|
|
49
|
+
assert_equal "MIT", package["license_info"]
|
|
50
|
+
|
|
51
|
+
dep = package["dependencies"].first
|
|
52
|
+
assert_equal "awesome_print", dep["name"]
|
|
53
|
+
assert_equal "~> 1.2", dep["version"]
|
|
54
|
+
|
|
55
|
+
license = package["licenses"].first
|
|
56
|
+
assert_equal "MIT", license["name"]
|
|
57
|
+
assert_equal nil, license["url"]
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def test_info_table_format
|
|
62
|
+
VCR.use_cassette('package_info') do
|
|
63
|
+
output = capture_stdout do
|
|
64
|
+
Veye::Package::Info.get_package('ruby/veye', {format: 'table'})
|
|
65
|
+
end
|
|
66
|
+
refute_nil output, "No command output"
|
|
67
|
+
rows = output.split(/\n/)
|
|
68
|
+
assert_match /\|\s+Package information\s+\|/, rows[1]
|
|
69
|
+
assert_match /\| name \| version \| product_key \| language \| license \| description/, rows[3]
|
|
70
|
+
assert_match /\| veye \| 0.0.9 \| veye\s+\| ruby\s+| MIT\s+\|/, rows[5]
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'csv'
|
|
3
|
+
|
|
4
|
+
class PackageReferenceTest < MiniTest::Test
|
|
5
|
+
def setup
|
|
6
|
+
init_environment
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def test_reference_with_results
|
|
10
|
+
VCR.use_cassette('package_reference') do
|
|
11
|
+
output = capture_stdout do
|
|
12
|
+
Veye::Package::References.get_references('ruby/ruby', {})
|
|
13
|
+
end
|
|
14
|
+
refute_nil output, "Command output was nil"
|
|
15
|
+
rows = output.split(/\n/)
|
|
16
|
+
assert_equal " 1 - \e[32m\e[1macts_as_dasherize_vanity\e[0m", rows[0]
|
|
17
|
+
assert_equal "\tProduct key : \e[1macts_as_dasherize_vanity\e[0m", rows[1]
|
|
18
|
+
assert_equal "\tProduct type : RubyGem", rows[2]
|
|
19
|
+
assert_equal "\tLanguage : ruby", rows[3]
|
|
20
|
+
assert_equal "\tVersion : \e[1m0.0.3\e[0m", rows[4]
|
|
21
|
+
assert_equal " 2 - \e[32m\e[1mblacklisted_password\e[0m", rows[5]
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_reference_csv_format
|
|
26
|
+
VCR.use_cassette('package_reference') do
|
|
27
|
+
output = capture_stdout do
|
|
28
|
+
Veye::Package::References.get_references('ruby/ruby', {format: 'csv'})
|
|
29
|
+
end
|
|
30
|
+
refute_nil output, "Command output was nil"
|
|
31
|
+
rows = CSV.parse(output)
|
|
32
|
+
assert_equal ["nr", "name", "language", "prod_key", "prod_type", "version"], rows[0]
|
|
33
|
+
assert_equal ["1", "acts_as_dasherize_vanity", "ruby", "acts_as_dasherize_vanity", "RubyGem", "0.0.3"], rows[1]
|
|
34
|
+
assert_equal ["2", "blacklisted_password", "ruby", "blacklisted_password", "RubyGem", "1.0.0"], rows[2]
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def test_reference_json_format
|
|
39
|
+
VCR.use_cassette('package_reference') do
|
|
40
|
+
output = capture_stdout do
|
|
41
|
+
Veye::Package::References.get_references('ruby/ruby', {format: 'json'})
|
|
42
|
+
end
|
|
43
|
+
refute_nil output, "Command output was nil"
|
|
44
|
+
dt = JSON.parse(output)
|
|
45
|
+
pkg = dt["results"].first
|
|
46
|
+
assert_equal "acts_as_dasherize_vanity", pkg["name"]
|
|
47
|
+
assert_equal "ruby", pkg["language"]
|
|
48
|
+
assert_equal "acts_as_dasherize_vanity", pkg["prod_key"]
|
|
49
|
+
assert_equal "0.0.3", pkg["version"]
|
|
50
|
+
assert_equal "RubyGem", pkg["prod_type"]
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def test_reference_table_format
|
|
55
|
+
VCR.use_cassette('package_reference') do
|
|
56
|
+
output = capture_stdout do
|
|
57
|
+
Veye::Package::References.get_references('ruby/ruby', {format: 'table'})
|
|
58
|
+
end
|
|
59
|
+
refute_nil output, "Command output was nil"
|
|
60
|
+
rows = output.split(/\n/)
|
|
61
|
+
assert_match /\|\s+Package references\s+\|/, rows[1]
|
|
62
|
+
assert_match /\| index \| name\s+\| version \| product_key\s+\| product_type \| language \|/, rows[3]
|
|
63
|
+
assert_match /\| 1\s+\| acts_as_dasherize_vanity \| 0.0.3\s+\| acts_as_dasherize_vanity \| RubyGem\s+\| ruby\s+\|/, rows[5]
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'csv'
|
|
3
|
+
|
|
4
|
+
class PackageSearchTest < MiniTest::Test
|
|
5
|
+
def setup
|
|
6
|
+
init_environment
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def test_search_when_success
|
|
10
|
+
VCR.use_cassette('package_search') do
|
|
11
|
+
output = capture_stdout do
|
|
12
|
+
Veye::Package::Search.search('veye', {})
|
|
13
|
+
end
|
|
14
|
+
refute_nil output, "Command output was nil"
|
|
15
|
+
rows = output.split(/\n/)
|
|
16
|
+
assert_equal " 1 - \e[32m\e[1mveye\e[0m", rows[0]
|
|
17
|
+
assert_equal "\tProduct key : veye", rows[1]
|
|
18
|
+
assert_equal "\tLatest version : \e[32m\e[1m0.0.9\e[0m", rows[2]
|
|
19
|
+
assert_equal "\tLanguage : ruby", rows[3]
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_search_csv_format
|
|
24
|
+
VCR.use_cassette('package_search') do
|
|
25
|
+
output = capture_stdout do
|
|
26
|
+
Veye::Package::Search.search('veye', {format: "csv"})
|
|
27
|
+
end
|
|
28
|
+
refute_nil output, "Command output was nil"
|
|
29
|
+
|
|
30
|
+
rows = CSV.parse(output)
|
|
31
|
+
assert_equal ["nr", "name", "version", "prod_key", "language", "group_id"], rows[0]
|
|
32
|
+
assert_equal ["1", "veye", "0.0.9", "veye", "ruby", nil], rows[1]
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_search_json_format
|
|
37
|
+
VCR.use_cassette('package_search') do
|
|
38
|
+
output = capture_stdout do
|
|
39
|
+
Veye::Package::Search.search('veye', {format: "json"})
|
|
40
|
+
end
|
|
41
|
+
refute_nil output, "Command output was nil"
|
|
42
|
+
|
|
43
|
+
dt = JSON.parse(output)
|
|
44
|
+
res = dt["results"].first
|
|
45
|
+
assert_equal "veye", res["name"]
|
|
46
|
+
assert_equal "ruby", res["language"]
|
|
47
|
+
assert_equal "veye", res["prod_key"]
|
|
48
|
+
assert_equal "0.0.9", res["version"]
|
|
49
|
+
assert_equal "RubyGem", res["prod_type"]
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def test_search_table_format
|
|
54
|
+
VCR.use_cassette('package_search') do
|
|
55
|
+
output = capture_stdout do
|
|
56
|
+
Veye::Package::Search.search('veye', {format: "table"})
|
|
57
|
+
end
|
|
58
|
+
refute_nil output, "Command output was nil"
|
|
59
|
+
|
|
60
|
+
rows = output.split(/\n/)
|
|
61
|
+
assert_match /\|\s+Package search\s+\|/, rows[1]
|
|
62
|
+
assert_match /\| index \| name \| version \| product_key \| language \|/, rows[3]
|
|
63
|
+
assert_match /\| 1\s+\| veye \| 0.0.9\s+\| veye\s+\| ruby\s+\|/, rows[5]
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'csv'
|
|
3
|
+
|
|
4
|
+
class ProjectCheckTest < Minitest::Test
|
|
5
|
+
def setup
|
|
6
|
+
init_environment
|
|
7
|
+
@api_key = 'ba7d93beb5de7820764e'
|
|
8
|
+
@test_file = "test/files/maven-1.0.1.pom.xml"
|
|
9
|
+
@project_key = "maven2_openejb_maven_plugins_1"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_get_list_default
|
|
13
|
+
VCR.use_cassette('project_list') do
|
|
14
|
+
output = capture_stdout do
|
|
15
|
+
Veye::Project::Check.get_list(@api_key, {})
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
rows = output.split(/\n/)
|
|
19
|
+
assert_equal " 1 - \e[32m\e[1mbugtraqer\e[0m", rows[0]
|
|
20
|
+
assert_equal "\tProject key : \e[1mlein_project_clj_1\e[0m", rows[1]
|
|
21
|
+
assert_equal "\tProject type : Lein", rows[2]
|
|
22
|
+
assert_equal "\tPublic : false", rows[3]
|
|
23
|
+
assert_equal "\tPeriod : weekly", rows[4]
|
|
24
|
+
assert_equal "\tSource : upload", rows[5]
|
|
25
|
+
assert_equal "\tDependencies : \e[1m9\e[0m", rows[6]
|
|
26
|
+
assert_equal "\tOutdated : \e[31m8\e[0m", rows[7]
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_get_list_csv
|
|
31
|
+
VCR.use_cassette("project_list") do
|
|
32
|
+
output = capture_stdout do
|
|
33
|
+
Veye::Project::Check.get_list(@api_key, {format: 'csv'})
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
rows = CSV.parse(output)
|
|
37
|
+
assert_equal ["nr", "name", "project_key", "public", "period", "source",
|
|
38
|
+
"dep_number", "out_number", "created_at"], rows[0]
|
|
39
|
+
assert_equal ["1", "bugtraqer", "lein_project_clj_1", "false", "weekly",
|
|
40
|
+
"upload", "9", "8", "19.08.2013-18:31"], rows[1]
|
|
41
|
+
assert_equal ["2", "Calidu/API", "lein_calidu_api_1", "true", "daily",
|
|
42
|
+
"github", "13", "1"], rows[2].take(8)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_get_list_json
|
|
47
|
+
VCR.use_cassette("project_list") do
|
|
48
|
+
output = capture_stdout do
|
|
49
|
+
Veye::Project::Check.get_list(@api_key, {format: 'json'})
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
res = JSON.parse(output)
|
|
53
|
+
projects = res["projects"]
|
|
54
|
+
assert_equal("bugtraqer", projects[0]["name"])
|
|
55
|
+
assert_equal("lein_project_clj_1", projects[0]["project_key"])
|
|
56
|
+
assert_equal(false, projects[0]["public"])
|
|
57
|
+
assert_equal("upload", projects[0]["source"])
|
|
58
|
+
assert_equal("weekly", projects[0]["period"])
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def test_get_list_table
|
|
63
|
+
VCR.use_cassette("project_list") do
|
|
64
|
+
output = capture_stdout do
|
|
65
|
+
Veye::Project::Check.get_list(@api_key, {format: 'table'})
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
rows = output.split(/\n/)
|
|
69
|
+
assert_match(/\|\s+List of projects\s+\|/, rows[1])
|
|
70
|
+
assert_equal(
|
|
71
|
+
"| index | name | project_key \
|
|
72
|
+
| private | period | source | dependencies | outdated | created_at |",
|
|
73
|
+
rows[3]
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
assert_match(/| 1\s+| bugtraqer\s+| lein_project_clj_1/, rows[5])
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def test_upload_default
|
|
81
|
+
VCR.use_cassette('project_upload') do
|
|
82
|
+
output = capture_stdout do
|
|
83
|
+
Veye::Project::Check.upload(@test_file, @api_key, {})
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
refute_nil output
|
|
87
|
+
rows = output.split(/\n/)
|
|
88
|
+
assert_equal " 1 - \e[32m\e[1mOpenEJB :: Maven Plugins\e[0m", rows[0]
|
|
89
|
+
assert_equal "\tProject key : \e[1mmaven2_openejb_maven_plugins_1\e[0m", rows[1]
|
|
90
|
+
assert_equal "\tProject type : Maven2", rows[2]
|
|
91
|
+
assert_equal "\tPublic : true", rows[3]
|
|
92
|
+
assert_equal "\tPeriod : daily", rows[4]
|
|
93
|
+
assert_equal "\tSource : API", rows[5]
|
|
94
|
+
assert_equal "\tDependencies : \e[1m11\e[0m", rows[6]
|
|
95
|
+
assert_equal "\tOutdated : \e[31m10\e[0m", rows[7]
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def test_upload_csv
|
|
100
|
+
VCR.use_cassette('project_upload') do
|
|
101
|
+
output = capture_stdout do
|
|
102
|
+
Veye::Project::Check.upload(@test_file, @api_key, {format: "csv"})
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
refute_nil output
|
|
106
|
+
rows = CSV.parse(output)
|
|
107
|
+
assert_equal ["nr", "name", "project_key", "public", "period", "source",
|
|
108
|
+
"dep_number", "out_number", "created_at"], rows[0]
|
|
109
|
+
assert_equal ["1", "OpenEJB :: Maven Plugins", "maven2_openejb_maven_plugins_1",
|
|
110
|
+
"true", "daily", "API", "11", "10"],
|
|
111
|
+
rows[1].take(8)
|
|
112
|
+
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def test_upload_json
|
|
117
|
+
VCR.use_cassette('project_upload') do
|
|
118
|
+
output = capture_stdout do
|
|
119
|
+
Veye::Project::Check.upload(@test_file, @api_key, {format: "json"})
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
refute_nil output
|
|
123
|
+
res = JSON.parse(output)
|
|
124
|
+
assert_equal "maven2_openejb_maven_plugins_1", res["projects"]["project_key"]
|
|
125
|
+
assert_equal "OpenEJB :: Maven Plugins", res["projects"]["name"]
|
|
126
|
+
assert_equal "Maven2", res["projects"]["project_type"]
|
|
127
|
+
assert_equal true, res["projects"]["public"]
|
|
128
|
+
assert_equal "daily", res["projects"]["period"]
|
|
129
|
+
assert_equal "API", res["projects"]["source"]
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
def test_upload_table
|
|
134
|
+
VCR.use_cassette('project_upload') do
|
|
135
|
+
output = capture_stdout do
|
|
136
|
+
Veye::Project::Check.upload(@test_file, @api_key, {format: "table"})
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
refute_nil output
|
|
140
|
+
rows = output.split(/\n/)
|
|
141
|
+
assert_match(/\|\s+List of projects\s+\|/, rows[1])
|
|
142
|
+
assert_equal(
|
|
143
|
+
"| index | name | project_key \
|
|
144
|
+
| private | period | source | dependencies | outdated | created_at |",
|
|
145
|
+
rows[3]
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
assert_match(
|
|
149
|
+
/\| 1\s+\| OpenEJB :: Maven Plugins \| maven2_openejb_maven_plugins_1/,
|
|
150
|
+
rows[5]
|
|
151
|
+
)
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
def test_update_default
|
|
156
|
+
VCR.use_cassette('project_update') do
|
|
157
|
+
output = capture_stdout do
|
|
158
|
+
Veye::Project::Check.update(@project_key, @test_file, @api_key, {})
|
|
159
|
+
end
|
|
160
|
+
refute_nil output
|
|
161
|
+
rows = output.split(/\n/)
|
|
162
|
+
assert_equal " 1 - \e[32m\e[1mOpenEJB :: Maven Plugins\e[0m", rows[0]
|
|
163
|
+
assert_equal "\tProject key : \e[1mmaven2_openejb_maven_plugins_1\e[0m", rows[1]
|
|
164
|
+
assert_equal "\tProject type : Maven2", rows[2]
|
|
165
|
+
assert_equal "\tPublic : true", rows[3]
|
|
166
|
+
assert_equal "\tPeriod : daily", rows[4]
|
|
167
|
+
assert_equal "\tSource : API", rows[5]
|
|
168
|
+
assert_equal "\tDependencies : \e[1m11\e[0m", rows[6]
|
|
169
|
+
assert_equal "\tOutdated : \e[31m10\e[0m", rows[7]
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
def test_update_csv
|
|
174
|
+
VCR.use_cassette('project_update') do
|
|
175
|
+
output = capture_stdout do
|
|
176
|
+
Veye::Project::Check.update(@project_key, @test_file, @api_key, {format: 'csv'})
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
refute_nil output
|
|
180
|
+
rows = CSV.parse(output)
|
|
181
|
+
assert_equal ["nr", "name", "project_key", "public", "period", "source",
|
|
182
|
+
"dep_number", "out_number", "created_at"], rows[0]
|
|
183
|
+
assert_equal ["1", "OpenEJB :: Maven Plugins", "maven2_openejb_maven_plugins_1",
|
|
184
|
+
"true", "daily", "API", "11", "10"], rows[1].take(8)
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
def test_update_json
|
|
189
|
+
VCR.use_cassette('project_update') do
|
|
190
|
+
output = capture_stdout do
|
|
191
|
+
Veye::Project::Check.update(@project_key, @test_file, @api_key, {format: 'json'})
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
refute_nil output
|
|
195
|
+
res = JSON.parse(output)
|
|
196
|
+
proj = res["projects"]
|
|
197
|
+
assert_equal @project_key, proj["project_key"]
|
|
198
|
+
assert_equal "OpenEJB :: Maven Plugins", proj["name"]
|
|
199
|
+
assert_equal "Maven2", proj["project_type"]
|
|
200
|
+
assert_equal true, proj["public"]
|
|
201
|
+
assert_equal "API", proj["source"]
|
|
202
|
+
assert_equal 11, proj["dependencies"].count
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
def test_update_table
|
|
207
|
+
VCR.use_cassette('project_update') do
|
|
208
|
+
output = capture_stdout do
|
|
209
|
+
Veye::Project::Check.update(@project_key, @test_file, @api_key, {format: 'table'})
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
refute_nil output
|
|
213
|
+
rows = output.split(/\n/)
|
|
214
|
+
assert_match(
|
|
215
|
+
/| index \| name\s+\| project_key\s\| private \| period \| source \|/,
|
|
216
|
+
rows[4]
|
|
217
|
+
)
|
|
218
|
+
assert_match(
|
|
219
|
+
/\| 1\s+\| OpenEJB :: Maven Plugins \| maven2_openejb_maven_plugins_1 \|/,
|
|
220
|
+
rows[5]
|
|
221
|
+
)
|
|
222
|
+
|
|
223
|
+
assert_match(
|
|
224
|
+
/\| index \| name\s+\| prod_key\s+\| version_current \| version_requested\s+\| outdated | stable/,
|
|
225
|
+
rows[10]
|
|
226
|
+
)
|
|
227
|
+
|
|
228
|
+
assert_match(
|
|
229
|
+
/\| 1\s+\| aether-api\s+\| org.sonatype.aether\/aether-api/,
|
|
230
|
+
rows[12]
|
|
231
|
+
)
|
|
232
|
+
end
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
def test_get_project_default
|
|
236
|
+
VCR.use_cassette("project_get") do
|
|
237
|
+
output = capture_stdout do
|
|
238
|
+
Veye::Project::Check.get_project(@project_key, @api_key, {})
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
refute_nil output
|
|
242
|
+
rows = output.split(/\n/)
|
|
243
|
+
assert_equal " 1 - \e[32m\e[1mOpenEJB :: Maven Plugins\e[0m", rows[0]
|
|
244
|
+
assert_equal "\tProject key : \e[1mmaven2_openejb_maven_plugins_1\e[0m", rows[1]
|
|
245
|
+
assert_equal "\tProject type : Maven2", rows[2]
|
|
246
|
+
assert_equal "\tPublic : true", rows[3]
|
|
247
|
+
assert_equal "\tPeriod : daily", rows[4]
|
|
248
|
+
assert_equal "\tSource : API", rows[5]
|
|
249
|
+
assert_equal "\tDependencies : \e[1m11\e[0m", rows[6]
|
|
250
|
+
assert_equal "\tOutdated : \e[31m10\e[0m", rows[7]
|
|
251
|
+
end
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
def test_get_project_csv
|
|
255
|
+
VCR.use_cassette("project_get") do
|
|
256
|
+
output = capture_stdout do
|
|
257
|
+
Veye::Project::Check.get_project(@project_key, @api_key, {format: 'csv'})
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
refute_nil output
|
|
261
|
+
rows = CSV.parse(output)
|
|
262
|
+
assert_equal ["nr", "name", "project_key", "public", "period", "source", "dep_number", "out_number", "created_at"], rows[0]
|
|
263
|
+
|
|
264
|
+
assert_equal ["1", "OpenEJB :: Maven Plugins", "maven2_openejb_maven_plugins_1", "true", "daily", "API", "11", "10"], rows[1].take(8)
|
|
265
|
+
end
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
def test_get_project_json
|
|
269
|
+
VCR.use_cassette("project_get") do
|
|
270
|
+
output = capture_stdout do
|
|
271
|
+
Veye::Project::Check.get_project(@project_key, @api_key, {format: 'json'})
|
|
272
|
+
end
|
|
273
|
+
|
|
274
|
+
refute_nil output
|
|
275
|
+
doc = JSON.parse(output)
|
|
276
|
+
proj = doc["projects"]
|
|
277
|
+
assert_equal @project_key, proj["project_key"]
|
|
278
|
+
assert_equal "OpenEJB :: Maven Plugins", proj["name"]
|
|
279
|
+
assert_equal true, proj["public"]
|
|
280
|
+
assert_equal "API", proj["source"]
|
|
281
|
+
assert_equal "daily", proj["period"]
|
|
282
|
+
assert_equal 11, proj["dependencies"].count
|
|
283
|
+
end
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
def test_get_project_table
|
|
287
|
+
VCR.use_cassette("project_get") do
|
|
288
|
+
output = capture_stdout do
|
|
289
|
+
Veye::Project::Check.get_project(@project_key, @api_key, {format: 'table'})
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
refute_nil output
|
|
293
|
+
|
|
294
|
+
rows = output.split(/\n/)
|
|
295
|
+
assert_match(
|
|
296
|
+
/| index \| name\s+\| project_key\s\| private \| period \| source \|/,
|
|
297
|
+
rows[4]
|
|
298
|
+
)
|
|
299
|
+
assert_match(
|
|
300
|
+
/\| 1\s+\| OpenEJB :: Maven Plugins \| maven2_openejb_maven_plugins_1 \|/,
|
|
301
|
+
rows[5]
|
|
302
|
+
)
|
|
303
|
+
|
|
304
|
+
assert_match(
|
|
305
|
+
/\| index \| name\s+\| prod_key\s+\| version_current \| version_requested\s+\| outdated | stable/,
|
|
306
|
+
rows[10]
|
|
307
|
+
)
|
|
308
|
+
|
|
309
|
+
assert_match(
|
|
310
|
+
/\| 1\s+\| aether-api\s+\| org.sonatype.aether\/aether-api/,
|
|
311
|
+
rows[12]
|
|
312
|
+
)
|
|
313
|
+
end
|
|
314
|
+
end
|
|
315
|
+
|
|
316
|
+
def test_delete_project_default
|
|
317
|
+
VCR.use_cassette("project_delete") do
|
|
318
|
+
output = capture_stdout do
|
|
319
|
+
Veye::Project::Check.delete_project(@project_key, @api_key)
|
|
320
|
+
end
|
|
321
|
+
|
|
322
|
+
refute_nil output
|
|
323
|
+
assert_equal "\e[32mDeleted\n\e[0m", output
|
|
324
|
+
end
|
|
325
|
+
end
|
|
326
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'csv'
|
|
3
|
+
|
|
4
|
+
class ProjectLicenseTest < MiniTest::Test
|
|
5
|
+
def setup
|
|
6
|
+
init_environment
|
|
7
|
+
@project_key = 'rubygem_gemfile_lock_1'
|
|
8
|
+
@api_key = 'ba7d93beb5de7820764e'
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_get_licenses_default
|
|
12
|
+
VCR.use_cassette("project_license") do
|
|
13
|
+
output = capture_stdout do |x|
|
|
14
|
+
Veye::Project::License.get_licenses(@project_key, @api_key, {})
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
rows = output.split(/\n/)
|
|
18
|
+
assert_equal(" 1 - \e[32m\e[1munknown\e[0m", rows[0])
|
|
19
|
+
assert_equal("\tProducts : gli", rows[1])
|
|
20
|
+
assert_equal(" 2 - \e[32m\e[1mMIT\e[0m", rows[2])
|
|
21
|
+
assert_equal("\tProducts : veye, awesome_print, rainbow, render-as-markdown, \
|
|
22
|
+
rest-client, terminal-table, aruba, childprocess, cucumber, rspec-expectations, builder, \
|
|
23
|
+
gherkin, multi_json, multi_test, rake", rows[3])
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_get_licenses_json
|
|
28
|
+
VCR.use_cassette('project_license') do
|
|
29
|
+
output = capture_stdout do |x|
|
|
30
|
+
Veye::Project::License.get_licenses(@project_key, @api_key, {format: "json"})
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
res = JSON.parse(output)
|
|
34
|
+
unknown_licenses = res["licenses"]["unknown"]
|
|
35
|
+
assert_equal([{"name" => "gli", "prod_key" => "gli"}], unknown_licenses)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_get_licenses_csv
|
|
40
|
+
VCR.use_cassette('project_license') do
|
|
41
|
+
output = capture_stdout do |x|
|
|
42
|
+
Veye::Project::License.get_licenses(@project_key, @api_key, {format: "csv"})
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
rows = CSV.parse(output)
|
|
46
|
+
assert_equal ["nr", "license", "product_keys"], rows[0]
|
|
47
|
+
assert_equal ["1", "unknown", "gli"], rows[1]
|
|
48
|
+
assert_equal ["2", "MIT", "veye", "awesome_print", "rainbow", "render-as-markdown",
|
|
49
|
+
"rest-client", "terminal-table", "aruba", "childprocess", "cucumber",
|
|
50
|
+
"rspec-expectations", "builder", "gherkin", "multi_json", "multi_test", "rake"],
|
|
51
|
+
rows[2]
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def test_get_licenses_table
|
|
57
|
+
VCR.use_cassette('project_license') do
|
|
58
|
+
output = capture_stdout do |x|
|
|
59
|
+
Veye::Project::License.get_licenses(@project_key, @api_key, {format: "table"})
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
rows = output.split(/\n/)
|
|
63
|
+
assert_equal "+-------+----------------------------+--------------------+", rows[0]
|
|
64
|
+
assert_equal "| Licences |", rows[1]
|
|
65
|
+
assert_equal "+-------+----------------------------+--------------------+", rows[2]
|
|
66
|
+
assert_equal "| index | license | product_keys |", rows[3]
|
|
67
|
+
assert_equal "+-------+----------------------------+--------------------+", rows[4]
|
|
68
|
+
assert_equal "| 1 | unknown | gli |", rows[5]
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class ServiceTest < Minitest::Test
|
|
4
|
+
def setup
|
|
5
|
+
init_environment #load config file and set keys
|
|
6
|
+
end
|
|
7
|
+
def test_ping_output_when_success
|
|
8
|
+
VCR.use_cassette('services_ping') do
|
|
9
|
+
output = capture_stdout do
|
|
10
|
+
Veye::Service.ping
|
|
11
|
+
end
|
|
12
|
+
assert_equal "\e[32mpong\e[0m\n", output
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_ping_output_when_failure
|
|
17
|
+
resp = Minitest::Mock.new
|
|
18
|
+
resp.expect :success, false
|
|
19
|
+
resp.expect :code, 503
|
|
20
|
+
resp.expect :message, "Test request failure"
|
|
21
|
+
resp.expect :nil? , false
|
|
22
|
+
|
|
23
|
+
output = capture_stdout do
|
|
24
|
+
Veye::Service.show_result(resp)
|
|
25
|
+
end
|
|
26
|
+
expected = "VersionEye didnt recognized secret word.Answered \e[31m503\e[0m, \e[33mTest request failure\e[0m\n"
|
|
27
|
+
assert_equal expected, output
|
|
28
|
+
end
|
|
29
|
+
end
|
data/test/test_helper.rb
CHANGED
|
@@ -1,9 +1,34 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'minitest/autorun'
|
|
2
|
+
require "minitest/reporters"
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
require 'webmock/minitest'
|
|
5
|
+
require 'vcr'
|
|
6
|
+
require 'veye'
|
|
7
|
+
require "stringio"
|
|
4
8
|
|
|
5
|
-
|
|
9
|
+
def capture_stdout
|
|
10
|
+
begin
|
|
11
|
+
# The output stream must be an IO-like object. In this case we capture it in
|
|
12
|
+
# an in-memory IO object so we can return the string value. You can assign any
|
|
13
|
+
# IO object here.
|
|
14
|
+
previous_stdout, $stdout = $stdout, StringIO.new
|
|
15
|
+
yield
|
|
16
|
+
$stdout.string
|
|
17
|
+
rescue => e
|
|
18
|
+
$stderr.puts "Error during output capture: #{e}"
|
|
19
|
+
ensure
|
|
20
|
+
# Restore the previous value of stdout
|
|
21
|
+
$stdout = previous_stdout
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
Minitest::Reporters.use!
|
|
26
|
+
|
|
27
|
+
VCR.configure do |config|
|
|
28
|
+
config.cassette_library_dir = "test/fixtures/vcr_cassettes"
|
|
29
|
+
config.hook_into :webmock # or :fakeweb
|
|
30
|
+
end
|
|
6
31
|
|
|
32
|
+
class Minitest::Test
|
|
7
33
|
# Add global extensions to the test case class here
|
|
8
|
-
|
|
9
34
|
end
|