veye 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +48 -41
  3. data/README.md +36 -17
  4. data/bin/veye +176 -47
  5. data/bundle +0 -0
  6. data/changelogs.md +19 -0
  7. data/lib/veye/api/package.rb +16 -2
  8. data/lib/veye/api/project.rb +41 -6
  9. data/lib/veye/base_executor.rb +81 -16
  10. data/lib/veye/github/delete.rb +2 -4
  11. data/lib/veye/github/import.rb +3 -4
  12. data/lib/veye/package/follow.rb +9 -9
  13. data/lib/veye/package/info.rb +4 -4
  14. data/lib/veye/package/references.rb +4 -6
  15. data/lib/veye/package/search.rb +2 -1
  16. data/lib/veye/package/versions.rb +37 -0
  17. data/lib/veye/package.rb +2 -0
  18. data/lib/veye/project/check.rb +19 -9
  19. data/lib/veye/project.rb +86 -2
  20. data/lib/veye/version.rb +1 -1
  21. data/lib/veye/views/base_csv.rb +1 -1
  22. data/lib/veye/views/github/info_csv.rb +1 -1
  23. data/lib/veye/views/github/info_pretty.rb +1 -1
  24. data/lib/veye/views/github/info_table.rb +2 -2
  25. data/lib/veye/views/package/info_csv.rb +4 -3
  26. data/lib/veye/views/package/info_pretty.rb +4 -2
  27. data/lib/veye/views/package/info_table.rb +4 -1
  28. data/lib/veye/views/package/versions_csv.rb +24 -0
  29. data/lib/veye/views/package/versions_json.rb +15 -0
  30. data/lib/veye/views/package/versions_pretty.rb +23 -0
  31. data/lib/veye/views/package/versions_table.rb +27 -0
  32. data/lib/veye/views/package.rb +4 -0
  33. data/lib/veye/views/project/dependency_csv.rb +18 -10
  34. data/lib/veye/views/project/dependency_pretty.rb +13 -2
  35. data/lib/veye/views/project/dependency_table.rb +8 -2
  36. data/lib/veye/views/project/info_csv.rb +9 -3
  37. data/lib/veye/views/project/info_markdown.rb +7 -2
  38. data/lib/veye/views/project/info_pretty.rb +6 -1
  39. data/lib/veye/views/project/info_table.rb +8 -3
  40. data/lib/veye.rb +26 -3
  41. data/test/api/package_test.rb +15 -0
  42. data/test/api/project_test.rb +83 -19
  43. data/test/base/base_executor_test.rb +87 -0
  44. data/test/fixtures/vcr_cassettes/github_delete.yml +7 -7
  45. data/test/fixtures/vcr_cassettes/github_import.yml +11 -13
  46. data/test/fixtures/vcr_cassettes/github_info.yml +10 -10
  47. data/test/fixtures/vcr_cassettes/github_list.yml +12 -12
  48. data/test/fixtures/vcr_cassettes/github_sync.yml +7 -7
  49. data/test/fixtures/vcr_cassettes/package_follow.yml +10 -10
  50. data/test/fixtures/vcr_cassettes/package_follow_status.yml +7 -7
  51. data/test/fixtures/vcr_cassettes/package_info.yml +17 -18
  52. data/test/fixtures/vcr_cassettes/package_info_default.yml +54 -0
  53. data/test/fixtures/vcr_cassettes/package_info_versioned.yml +54 -0
  54. data/test/fixtures/vcr_cassettes/package_reference.yml +8 -8
  55. data/test/fixtures/vcr_cassettes/package_search.yml +8 -8
  56. data/test/fixtures/vcr_cassettes/package_unfollow.yml +7 -7
  57. data/test/fixtures/vcr_cassettes/package_versions.yml +44 -0
  58. data/test/fixtures/vcr_cassettes/project_check_new.yml +33 -30
  59. data/test/fixtures/vcr_cassettes/project_check_update.yml +29 -30
  60. data/test/fixtures/vcr_cassettes/project_delete.yml +8 -8
  61. data/test/fixtures/vcr_cassettes/project_delete_for_licenses.yml +48 -0
  62. data/test/fixtures/vcr_cassettes/project_delete_for_update.yml +46 -0
  63. data/test/fixtures/vcr_cassettes/project_delete_merge_child.yml +46 -0
  64. data/test/fixtures/vcr_cassettes/project_delete_merge_parent.yml +46 -0
  65. data/test/fixtures/vcr_cassettes/project_get.yml +11 -12
  66. data/test/fixtures/vcr_cassettes/project_license.yml +11 -12
  67. data/test/fixtures/vcr_cassettes/project_license_command.yml +49 -0
  68. data/test/fixtures/vcr_cassettes/project_list.yml +14 -14
  69. data/test/fixtures/vcr_cassettes/project_merge.yml +46 -0
  70. data/test/fixtures/vcr_cassettes/project_unmerge.yml +46 -0
  71. data/test/fixtures/vcr_cassettes/project_update.yml +15 -16
  72. data/test/fixtures/vcr_cassettes/project_upload.yml +17 -16
  73. data/test/fixtures/vcr_cassettes/project_upload_for_licenses.yml +107 -0
  74. data/test/fixtures/vcr_cassettes/project_upload_for_update.yml +105 -0
  75. data/test/fixtures/vcr_cassettes/project_upload_merge_child.yml +65 -0
  76. data/test/fixtures/vcr_cassettes/project_upload_merge_parent.yml +104 -0
  77. data/test/fixtures/vcr_cassettes/project_upload_with_args.yml +106 -0
  78. data/test/fixtures/vcr_cassettes/services_ping.yml +6 -8
  79. data/test/fixtures/vcr_cassettes/user_get_favorites.yml +10 -10
  80. data/test/fixtures/vcr_cassettes/user_get_profile.yml +10 -10
  81. data/test/github_delete_test.rb +5 -3
  82. data/test/github_import_test.rb +8 -15
  83. data/test/github_info_test.rb +2 -2
  84. data/test/package_follow_test.rb +3 -3
  85. data/test/package_info_test.rb +16 -15
  86. data/test/package_reference_test.rb +4 -4
  87. data/test/package_search_test.rb +4 -4
  88. data/test/package_versions_test.rb +73 -0
  89. data/test/project_check_test.rb +107 -79
  90. data/test/project_license_test.rb +29 -11
  91. data/test/project_test.rb +59 -0
  92. data/test/user_me_test.rb +4 -4
  93. data/veye.gemspec +10 -8
  94. data/veye.log +11 -0
  95. metadata +73 -20
@@ -6,67 +6,78 @@ class ProjectCheckTest < Minitest::Test
6
6
  init_environment
7
7
  @api_key = ENV['VEYE_API_KEY']
8
8
  @test_file = "test/files/maven-1.0.1.pom.xml"
9
- @project_key = "maven2_openejb_maven_plugins_2"
9
+ @org_name = 'veye_test'
10
+ @team_name = 'veye_cli_tool'
11
+
12
+ @project_key = upload_project["id"]
13
+ end
14
+
15
+ def upload_project
16
+ VCR.use_cassette('project_upload') do
17
+ res = Veye::API::Project.upload(@api_key, @test_file, @org_name, nil, true)
18
+ res.data
19
+ end
10
20
  end
11
21
 
22
+
12
23
  def test_get_list_default
13
24
  VCR.use_cassette('project_list') do
14
25
  output = capture_stdout do
15
- Veye::Project::Check.get_list(@api_key, {})
26
+ Veye::Project::Check.get_list(@api_key, @org_name, nil, {})
16
27
  end
17
28
 
18
29
  rows = output.split(/\n/)
19
- assert_equal " 1 - \e[32m\e[1mbugtraqer\e[0m", rows[0]
20
- assert_equal "\tProject key : \e[1m52126476632bac1ae3007c88\e[0m", rows[1]
21
- assert_equal "\tProject type : Lein", rows[2]
30
+ assert_equal " 1 - \e[32m\e[1mOpenEJB :: Maven Plugins\e[0m", rows[0]
31
+ #assert_equal "\tProject key : \e[1m#{@project_key}\e[0m", rows[1]
32
+ assert_equal "\tProject type : Maven2", rows[2]
22
33
  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]
34
+ assert_equal "\tPeriod : daily", rows[4]
35
+ assert_equal "\tSource : API", rows[5]
36
+ assert_equal "\tDependencies : \e[1m11\e[0m", rows[6]
37
+ assert_equal "\tOutdated : \e[31m10\e[0m", rows[7]
27
38
  end
28
39
  end
29
40
 
30
41
  def test_get_list_csv
31
42
  VCR.use_cassette("project_list") do
32
43
  output = capture_stdout do
33
- Veye::Project::Check.get_list(@api_key, {format: 'csv'})
44
+ Veye::Project::Check.get_list(@api_key, @org_name, nil, {format: 'csv'})
34
45
  end
35
46
 
36
47
  rows = CSV.parse(output)
37
- assert_equal ["nr", "name", "project_key", "public", "period", "source",
48
+ assert_equal ["nr", "name", "project_id", "public", "period", "source",
38
49
  "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]
50
+ assert_equal ["1", "OpenEJB :: Maven Plugins", "57c05d11864739001066e3f1", "false",
51
+ "daily", "API", "11", "10"], rows[1].take(8)
41
52
  end
42
53
  end
43
54
 
44
55
  def test_get_list_json
45
56
  VCR.use_cassette("project_list") do
46
57
  output = capture_stdout do
47
- Veye::Project::Check.get_list(@api_key, {format: 'json'})
58
+ Veye::Project::Check.get_list(@api_key, @org_name, nil, {format: 'json'})
48
59
  end
49
60
 
50
61
  res = JSON.parse(output)
51
62
  projects = res["projects"]
52
- assert_equal("bugtraqer", projects[0]["name"])
53
- assert_equal("lein_project_clj_1", projects[0]["project_key"])
63
+
64
+ assert_equal("OpenEJB :: Maven Plugins", projects[0]["name"])
54
65
  assert_equal(false, projects[0]["public"])
55
- assert_equal("upload", projects[0]["source"])
56
- assert_equal("weekly", projects[0]["period"])
66
+ assert_equal("API", projects[0]["source"])
67
+ assert_equal("daily", projects[0]["period"])
57
68
  end
58
69
  end
59
70
 
60
71
  def test_get_list_table
61
72
  VCR.use_cassette("project_list") do
62
73
  output = capture_stdout do
63
- Veye::Project::Check.get_list(@api_key, {format: 'table'})
74
+ Veye::Project::Check.get_list(@api_key, @org_name, nil, {format: 'table'})
64
75
  end
65
76
 
66
77
  rows = output.split(/\n/)
67
78
  assert_match(/\|\s+List of projects\s+\|/, rows[1])
68
79
  assert_match(
69
- /\| index\s+\| name\s+\| project_key\s+\| private \| period \| source \| dependencies \| outdated \| created_at\s+\|/,
80
+ /\| index\s+\| name\s+\| project_id\s+\|\s+public\s+\| period \| source \| dependencies \| outdated \| created_at\s+\|/,
70
81
  rows[3]
71
82
  )
72
83
 
@@ -74,16 +85,17 @@ class ProjectCheckTest < Minitest::Test
74
85
  end
75
86
  end
76
87
 
88
+
77
89
  def test_upload_default
78
90
  VCR.use_cassette('project_upload') do
79
91
  output = capture_stdout do
80
- Veye::Project::Check.upload(@api_key, @test_file, {})
92
+ Veye::Project::Check.upload(@api_key, @test_file, @org_name, @team_name, {format: 'pretty'})
81
93
  end
82
94
 
83
95
  refute_nil output
84
96
  rows = output.split(/\n/)
85
97
  assert_equal " 1 - \e[32m\e[1mOpenEJB :: Maven Plugins\e[0m", rows[0]
86
- assert_equal "\tProject key : \e[1m563f7acac5999a000d01a34a\e[0m", rows[1]
98
+ assert_match( /\tProject id\s+:\s+/, rows[1] )
87
99
  assert_equal "\tProject type : Maven2", rows[2]
88
100
  assert_equal "\tPublic : true", rows[3]
89
101
  assert_equal "\tPeriod : daily", rows[4]
@@ -96,16 +108,14 @@ class ProjectCheckTest < Minitest::Test
96
108
  def test_upload_csv
97
109
  VCR.use_cassette('project_upload') do
98
110
  output = capture_stdout do
99
- Veye::Project::Check.upload(@api_key, @test_file, {format: "csv"})
111
+ Veye::Project::Check.upload(@api_key, @test_file, @org_name, @team_name, {format: "csv"})
100
112
  end
101
113
 
102
114
  refute_nil output
103
115
  rows = CSV.parse(output)
104
- assert_equal ["nr", "name", "project_key", "public", "period", "source",
116
+ assert_equal ["nr", "name", "project_id", "public", "period", "source",
105
117
  "dep_number", "out_number", "created_at"], rows[0]
106
- assert_equal ["1", "OpenEJB :: Maven Plugins", "maven2_openejb_maven_plugins_2",
107
- "true", "daily", "API", "11", "10"],
108
- rows[1].take(8)
118
+ assert_equal ["1", "OpenEJB :: Maven Plugins", @project_key, "true"], rows[1].take(4)
109
119
 
110
120
  end
111
121
  end
@@ -113,12 +123,11 @@ class ProjectCheckTest < Minitest::Test
113
123
  def test_upload_json
114
124
  VCR.use_cassette('project_upload') do
115
125
  output = capture_stdout do
116
- Veye::Project::Check.upload(@api_key, @test_file, {format: "json"})
126
+ Veye::Project::Check.upload(@api_key, @test_file, @org_name, @team_name, {format: "json"})
117
127
  end
118
128
 
119
129
  refute_nil output
120
130
  res = JSON.parse(output)
121
- assert_equal "maven2_openejb_maven_plugins_2", res["projects"]["project_key"]
122
131
  assert_equal "OpenEJB :: Maven Plugins", res["projects"]["name"]
123
132
  assert_equal "Maven2", res["projects"]["project_type"]
124
133
  assert_equal true, res["projects"]["public"]
@@ -130,34 +139,45 @@ class ProjectCheckTest < Minitest::Test
130
139
  def test_upload_table
131
140
  VCR.use_cassette('project_upload') do
132
141
  output = capture_stdout do
133
- Veye::Project::Check.upload(@api_key, @test_file, {format: "table"})
142
+ Veye::Project::Check.upload(@api_key, @test_file, @org_name, @team_name, {format: "table"})
134
143
  end
135
144
 
136
145
  refute_nil output
137
146
  rows = output.split(/\n/)
138
147
  assert_match(/\|\s+List of projects\s+\|/, rows[1])
139
- assert_equal(
140
- "| index | name | project_key \
141
- | private | period | source | dependencies | outdated | created_at |",
142
- rows[3]
143
- )
148
+ assert_match(/\|\s+index\s+|\s+name\s+\|\s+project_id\s+\|\s+private\s+\|/, rows[3])
149
+ assert_match(/\| 1\s+\|\s+OpenEJB :: Maven Plugins\s+\|/, rows[5])
150
+ end
151
+ end
144
152
 
145
- assert_match(
146
- /\| 1\s+\| OpenEJB :: Maven Plugins \| maven2_openejb_maven_plugins/,
147
- rows[5]
148
- )
153
+ def upload_update_project
154
+ proj_dt = {}
155
+ VCR.use_cassette('project_upload_for_update') do
156
+ res = Veye::API::Project.upload(@api_key, @test_file, @org_name, @team_name, false)
157
+ refute_nil res, 'upload_update_project: failed to create a project for the update tests'
158
+ proj_dt = res.data
159
+ end
160
+
161
+ proj_dt
162
+ end
163
+
164
+ def delete_update_project(proj_id)
165
+ VCR.use_cassette('project_delete_for_update') do
166
+ Veye::API::Project.delete_project(@api_key, proj_id)
149
167
  end
150
168
  end
151
169
 
152
170
  def test_update_default
171
+ proj_dt = upload_update_project
172
+
153
173
  VCR.use_cassette('project_update') do
154
174
  output = capture_stdout do
155
- Veye::Project::Check.update(@api_key, @project_key, @test_file, {})
175
+ Veye::Project::Check.update(@api_key, proj_dt['id'], @test_file, {})
156
176
  end
157
177
  refute_nil output
158
178
  rows = output.split(/\n/)
159
179
  assert_equal " 1 - \e[32m\e[1mOpenEJB :: Maven Plugins\e[0m", rows[0]
160
- assert_equal "\tProject key : \e[1m563f7a57c5999a000901a55b\e[0m", rows[1]
180
+ assert_equal "\tProject id : \e[1m#{proj_dt['id']}\e[0m", rows[1]
161
181
  assert_equal "\tProject type : Maven2", rows[2]
162
182
  assert_equal "\tPublic : true", rows[3]
163
183
  assert_equal "\tPeriod : daily", rows[4]
@@ -165,65 +185,77 @@ class ProjectCheckTest < Minitest::Test
165
185
  assert_equal "\tDependencies : \e[1m11\e[0m", rows[6]
166
186
  assert_equal "\tOutdated : \e[31m10\e[0m", rows[7]
167
187
  end
188
+
189
+ ensure
190
+ delete_update_project(proj_dt['id'])
168
191
  end
169
192
 
170
193
  def test_update_csv
194
+ proj_dt = upload_update_project
195
+
171
196
  VCR.use_cassette('project_update') do
172
197
  output = capture_stdout do
173
- Veye::Project::Check.update(@api_key, @project_key, @test_file, {format: 'csv'})
198
+ Veye::Project::Check.update(@api_key, proj_dt['id'], @test_file, {format: 'csv'})
174
199
  end
175
200
 
176
201
  refute_nil output
177
202
  rows = CSV.parse(output)
178
- assert_equal ["nr", "name", "project_key", "public", "period", "source",
203
+ assert_equal ["nr", "name", "project_id", "public", "period", "source",
179
204
  "dep_number", "out_number", "created_at"], rows[0]
180
- assert_equal ["1", "OpenEJB :: Maven Plugins", "maven2_openejb_maven_plugins_2",
181
- "true", "daily", "API", "11", "10"], rows[1].take(8)
205
+ assert_equal ["1", "OpenEJB :: Maven Plugins", proj_dt['id'], "true", "daily", "API", "11", "10"], rows[1].take(8)
182
206
  end
207
+
208
+ ensure
209
+ delete_update_project(proj_dt['id'])
183
210
  end
184
211
 
185
212
  def test_update_json
213
+ proj_dt = upload_update_project
214
+
186
215
  VCR.use_cassette('project_update') do
187
216
  output = capture_stdout do
188
- Veye::Project::Check.update(@api_key, @project_key, @test_file, {format: 'json'})
217
+ Veye::Project::Check.update(@api_key, proj_dt['id'], @test_file, {format: 'json'})
189
218
  end
190
219
 
191
220
  refute_nil output
192
221
  res = JSON.parse(output)
193
222
  proj = res["projects"]
194
- assert_equal @project_key, proj["project_key"]
223
+ assert_equal proj_dt['id'], proj['id']
195
224
  assert_equal "OpenEJB :: Maven Plugins", proj["name"]
196
- assert_equal "Maven2", proj["project_type"]
197
- assert_equal true, proj["public"]
198
- assert_equal "API", proj["source"]
199
- assert_equal 11, proj["dependencies"].count
225
+ assert_equal "Maven2", proj["project_type"]
226
+ assert_equal true, proj["public"]
227
+ assert_equal "API", proj["source"]
228
+ assert_equal 11, proj["dependencies"].count
200
229
  end
230
+ ensure
231
+ delete_update_project(proj_dt['id'])
201
232
  end
202
233
 
203
234
  def test_update_table
235
+ proj_dt = upload_update_project
236
+
204
237
  VCR.use_cassette('project_update') do
205
238
  output = capture_stdout do
206
- Veye::Project::Check.update(@api_key, @project_key, @test_file, {format: 'table'})
239
+ Veye::Project::Check.update(@api_key, proj_dt['id'], @test_file, {format: 'table'})
207
240
  end
208
241
 
209
242
  refute_nil output
210
243
  rows = output.split(/\n/)
244
+
211
245
  assert_match(
212
- /| index \| name\s+\| project_key\s\| private \| period \| source \|/,
213
- rows[4]
214
- )
215
- assert_match(
216
- /\| 1\s+\| OpenEJB :: Maven Plugins \| maven2_openejb_maven_plugins_2 \|/,
217
- rows[5]
246
+ /| index \| name\s+\| project_id\s+\| private \| period \| source \|/, rows[4]
218
247
  )
248
+ assert_match(/\| 1\s+\|\s+OpenEJB :: Maven Plugins\s+\|/, rows[5])
219
249
 
220
250
  assert_match(
221
251
  /\| index \| name\s+\| prod_key\s+\| version_current \| version_requested\s+\| outdated | stable/,
222
252
  rows[10]
223
253
  )
224
254
 
225
- assert_match(/\| 1\s+\| openejb-client\s+\|/, rows[12])
255
+ #assert_match(/\| 1\s+\|\s+maven-plugin-annotations\s+\|/, rows[12])
226
256
  end
257
+ ensure
258
+ delete_update_project(proj_dt['id'])
227
259
  end
228
260
 
229
261
  def test_get_project_default
@@ -235,7 +267,7 @@ class ProjectCheckTest < Minitest::Test
235
267
  refute_nil output
236
268
  rows = output.split(/\n/)
237
269
  assert_equal " 1 - \e[32m\e[1mOpenEJB :: Maven Plugins\e[0m", rows[0]
238
- assert_equal "\tProject key : \e[1m563f7a57c5999a000901a55b\e[0m", rows[1]
270
+ assert_equal "\tProject id : \e[1m#{@project_key}\e[0m", rows[1]
239
271
  assert_equal "\tProject type : Maven2", rows[2]
240
272
  assert_equal "\tPublic : true", rows[3]
241
273
  assert_equal "\tPeriod : daily", rows[4]
@@ -253,10 +285,8 @@ class ProjectCheckTest < Minitest::Test
253
285
 
254
286
  refute_nil output
255
287
  rows = CSV.parse(output)
256
- assert_equal ["nr", "name", "project_key", "public", "period", "source", "dep_number", "out_number", "created_at"], rows[0]
257
-
258
- assert_equal ["1", "OpenEJB :: Maven Plugins", "maven2_openejb_maven_plugins_2",
259
- "true", "daily", "API", "11", "10"], rows[1].take(8)
288
+ assert_equal ["nr", "name", "project_id", "public", "period", "source", "dep_number", "out_number", "created_at"], rows[0]
289
+ assert_equal ["1", "OpenEJB :: Maven Plugins", @project_key, "true", "daily", "API", "11", "10"], rows[1].take(8)
260
290
  end
261
291
  end
262
292
 
@@ -269,12 +299,10 @@ class ProjectCheckTest < Minitest::Test
269
299
  refute_nil output, "test_get_project_json output cant be empty"
270
300
  doc = JSON.parse(output)
271
301
  proj = doc["projects"]
272
- assert_equal @project_key, proj["project_key"]
273
- assert_equal "OpenEJB :: Maven Plugins", proj["name"]
274
- assert_equal true, proj["public"]
275
- assert_equal "API", proj["source"]
302
+ assert_equal true, proj["public"]
303
+ assert_equal "API", proj["source"]
276
304
  assert_equal "daily", proj["period"]
277
- assert_equal 11, proj["dependencies"].count
305
+ assert_equal 11, proj["dependencies"].count
278
306
  end
279
307
  end
280
308
 
@@ -288,17 +316,12 @@ class ProjectCheckTest < Minitest::Test
288
316
 
289
317
  rows = output.split(/\n/)
290
318
  assert_match(
291
- /| index \| name\s+\| project_key\s\| private \| period \| source \|/,
292
- rows[4]
293
- )
294
- assert_match(
295
- /\| 1\s+\| OpenEJB :: Maven Plugins \| maven2_openejb_maven_plugins_2\s+\|/,
296
- rows[5]
319
+ /| index \| name\s+\| project_id\s\| private \| period \| source \|/, rows[4]
297
320
  )
321
+ assert_match(/\| 1\s+\| OpenEJB :: Maven Plugins\s+\|/, rows[5])
298
322
 
299
323
  assert_match(
300
- /\| index \| name\s+\| prod_key\s+\| version_current \| version_requested\s+\| outdated | stable/,
301
- rows[10]
324
+ /\| index \| name\s+\| prod_key\s+\| version_current \| version_requested\s+\| outdated | stable/, rows[10]
302
325
  )
303
326
  end
304
327
  end
@@ -339,7 +362,9 @@ class ProjectCheckTest < Minitest::Test
339
362
  refute_nil output, "output of project_check_new cant be empty "
340
363
  rows = output.split(/\n/)
341
364
 
342
- assert_equal " 1 - \e[32m\e[1mcoffee-rails\e[0m", rows[1]
365
+ assert_equal "project ids are saved into `\e[33mveye.json\e[0m`", rows[1]
366
+ assert_equal " 1 - \e[32m\e[1msass-rails\e[0m", rows[3]
367
+ assert_equal "\tSourcefile : Gemfile", rows[4]
343
368
  end
344
369
 
345
370
  Veye::Settings.load(settings_file)
@@ -352,7 +377,10 @@ class ProjectCheckTest < Minitest::Test
352
377
 
353
378
  refute_nil output, "output of project_check_update cant be empty"
354
379
  rows = output.split(/\n/)
355
- assert_equal " 1 - \e[32m\e[1mcoffee-rails\e[0m", rows[1]
380
+ assert_equal "project ids are saved into `\e[33mveye.json\e[0m`", rows[1]
381
+ assert_equal " 1 - \e[32m\e[1msass-rails\e[0m", rows[3]
382
+ assert_equal "\tSourcefile : Gemfile", rows[4]
383
+
356
384
  end
357
385
 
358
386
  delete_file(settings_file)
@@ -4,49 +4,67 @@ require 'csv'
4
4
  class ProjectLicenseTest < MiniTest::Test
5
5
  def setup
6
6
  init_environment
7
- @project_key = '55dc6de68d9c4b00210007bf'
8
- @api_key = ENV["VEYE_API_KEY"]
7
+ @api_key = ENV["VEYE_API_KEY"]
8
+ @test_file = 'test/files/maven-1.0.1.pom.xml'
9
+ @org_name = 'veye_test'
10
+ @project_key = upload_project['id']
11
+ end
12
+
13
+ def teardown
14
+ VCR.use_cassette('project_delete_for_licenses') do
15
+ Veye::Project::Check.delete_project(@api_key, @project_key)
16
+ end
17
+ end
18
+
19
+ def upload_project
20
+ VCR.use_cassette('project_upload_for_licenses') do
21
+ res = Veye::API::Project.upload(@api_key, @test_file, @org_name, nil, false)
22
+ refute_nil 'Failed to create a project for licenses spec'
23
+ res.data
24
+ end
9
25
  end
10
26
 
11
27
  def test_get_licenses_default
12
- VCR.use_cassette("project_license") do
28
+ VCR.use_cassette("project_license_command") do
13
29
  output = capture_stdout do |x|
14
30
  Veye::Project::License.get_licenses(@api_key, @project_key, {})
15
31
  end
16
32
 
17
33
  rows = output.split(/\n/)
18
- assert_equal(" 1 - \e[32m\e[1mMIT\e[0m", rows[0])
19
- assert_match(/\tProducts\s+ : veye, awesome_print/, rows[1])
34
+ assert_equal(" 1 - \e[32m\e[1mApache-2.0\e[0m", rows[0])
35
+ assert_match(/\tProducts\s+:\s+org\.apache\.maven\.plugin-tools\/maven-plugin-annotations/, rows[1])
20
36
  end
21
37
  end
22
38
 
23
39
  def test_get_licenses_json
24
- VCR.use_cassette('project_license') do
40
+ VCR.use_cassette('project_license_command') do
25
41
  output = capture_stdout do |x|
26
42
  Veye::Project::License.get_licenses(@api_key, @project_key, {format: "json"})
27
43
  end
28
44
 
29
45
  res = JSON.parse(output)
30
- unknown_licenses = res["licenses"]["unknown"]
31
- assert_equal({"name" => "gli", "prod_key" => "gli"}, unknown_licenses[1])
46
+ assert_equal(false, res["licenses"].has_key?("unknown") )
32
47
  end
33
48
  end
34
49
 
35
50
  def test_get_licenses_csv
36
- VCR.use_cassette('project_license') do
51
+ VCR.use_cassette('project_license_command') do
37
52
  output = capture_stdout do |x|
38
53
  Veye::Project::License.get_licenses(@api_key, @project_key, {format: "csv"})
39
54
  end
40
55
 
41
56
  rows = CSV.parse(output)
42
57
  assert_equal(["nr", "license", "product_keys"], rows[0])
43
- assert_equal(["1", "MIT", "veye", "awesome_print"], rows[1][0,4])
58
+ assert_equal(
59
+ ["1", "Apache-2.0", "org.apache.maven.plugin-tools/maven-plugin-annotations", "org.codehaus.plexus/plexus-utils"],
60
+ rows[1][0,4]
61
+ )
44
62
  end
45
63
  end
46
64
 
47
65
 
48
66
  def test_get_licenses_table
49
- VCR.use_cassette('project_license') do
67
+ VCR.use_cassette('project_license_command') do
50
68
  output = capture_stdout do |x|
51
69
  Veye::Project::License.get_licenses(@api_key, @project_key, {format: "table"})
52
70
  end
@@ -0,0 +1,59 @@
1
+ require 'test_helper'
2
+
3
+ class ProjectTest < Minitest::Test
4
+ def setup
5
+ init_environment
6
+ @api_key = ENV['VEYE_API_KEY']
7
+ @test_file = "test/files/maven-1.0.1.pom.xml"
8
+ @test_file2 = "test/files/Gemfile"
9
+
10
+ @org_name = "veye_test"
11
+ @team_name = "veye_cli_tool"
12
+ end
13
+
14
+ def upload_project(test_file = nil, is_temporary = true, task_id = nil)
15
+ cassette_name = ( task_id.nil? ? 'project_upload' : "project_upload_#{task_id}" )
16
+ test_file ||= @test_file
17
+ org_name = @org_name
18
+
19
+ VCR.use_cassette(cassette_name) do
20
+ res = Veye::API::Project.upload(@api_key, test_file, org_name, nil, is_temporary)
21
+ res.data
22
+ end
23
+ end
24
+
25
+ def delete_project(project_id, task_id = nil)
26
+ VCR.use_cassette("project_delete_#{task_id.to_s}") do
27
+ res = Veye::API::Project.delete_project(@api_key, project_id)
28
+ res.data
29
+ end
30
+ end
31
+
32
+ def test_merge_and_unmerge_command
33
+ #upload 2projects
34
+ parent_id = upload_project(@test_file, false, 'merge_parent')['id']
35
+ child_id = upload_project(@test_file2, false, 'merge_child')['id']
36
+
37
+ VCR.use_cassette('project_merge') do
38
+ output = capture_stdout do
39
+ Veye::Project.merge(@api_key, parent_id, child_id)
40
+ end
41
+
42
+ assert_equal "success: true\n", output
43
+ end
44
+
45
+ VCR.use_cassette('project_unmerge') do
46
+ output = capture_stdout do
47
+ Veye::Project.unmerge(@api_key, parent_id, child_id)
48
+ end
49
+
50
+ assert_equal "success: true\n", output
51
+ end
52
+
53
+ #delete projects
54
+ delete_project(parent_id, 'merge_parent')
55
+ delete_project(child_id, 'merge_child')
56
+ end
57
+
58
+
59
+ end
data/test/user_me_test.rb CHANGED
@@ -29,7 +29,7 @@ class UserMeTest < Minitest::Test
29
29
  refute_nil out
30
30
  rows = CSV.parse(out)
31
31
  assert_equal ["username", "fullname", "email", "plan_name_id", "admin", "new_notifications", "total_notifications"], rows[0]
32
- assert_equal ["timgluz", "Tim Gluz", "timgluz@gmail.com", nil, "false", "0", "2467"], rows[1]
32
+ assert_equal ["timgluz", "Tim Gluz", "timgluz@gmail.com", nil, "false"], rows[1].take(5)
33
33
  end
34
34
  end
35
35
 
@@ -91,8 +91,8 @@ class UserMeTest < Minitest::Test
91
91
  refute_nil out
92
92
  rows = CSV.parse out
93
93
  assert_equal ["index", "name", "prod_key", "prod_type", "version", "language"], rows[0]
94
- assert_equal ["1", "h2", "com.h2database/h2", "Maven2", "1.4.191", "java"], rows[1]
95
- assert_equal ["2", "mallet", "cc.mallet/mallet", "Maven2", "2.0.7", "java"], rows[2]
94
+ assert_equal ["1", "h2", "com.h2database/h2", "Maven2"], rows[1].take(4)
95
+ assert_equal ["2", "mallet", "cc.mallet/mallet", "Maven2"], rows[2].take(4)
96
96
  end
97
97
  end
98
98
 
@@ -120,7 +120,7 @@ class UserMeTest < Minitest::Test
120
120
  rows = out.split(/\n/)
121
121
  assert_match(/\|\s+Favorite packages\s+\|/, rows[1])
122
122
  assert_match(/\| nr \| name\s+\| product_key\s+\| version\s+\| language\s+\|/, rows[3])
123
- assert_match(/\| 1\s+\| h2\s+\| com\.h2database\/h2\s+\| 1\.4\.191\s+\| java\s+\|/ , rows[5])
123
+ assert_match(/\| 1\s+\| h2\s+\| com\.h2database\/h2\s+\|/ , rows[5])
124
124
  end
125
125
  end
126
126
  end
data/veye.gemspec CHANGED
@@ -27,18 +27,20 @@ spec = Gem::Specification.new do |s|
27
27
  s.executables << 'veye'
28
28
 
29
29
  s.add_development_dependency('rake', '~> 11.1')
30
- s.add_development_dependency('minitest', '~> 5.8')
31
- s.add_development_dependency('minitest-reporters', '~> 1.0')
32
- s.add_development_dependency('vcr', '~> 3.0.1')
33
- s.add_development_dependency('webmock', '~> 1.11')
30
+ s.add_development_dependency('minitest', '~> 5.9')
31
+ s.add_development_dependency('minitest-reporters', '~> 1.1')
32
+ s.add_development_dependency('vcr', '~> 3.0')
33
+ s.add_development_dependency('webmock', '~> 2.1')
34
34
  s.add_development_dependency('rdoc', '~> 4.2')
35
35
  s.add_development_dependency('aruba', '~> 0.14')
36
36
  s.add_development_dependency('rubocop', '~> 0.38')
37
37
 
38
- s.add_runtime_dependency('gli', '= 2.13.4')
39
- s.add_runtime_dependency('rest-client', '~> 1.8')
40
- s.add_runtime_dependency('awesome_print', '~> 1.6')
38
+ s.add_runtime_dependency('gli', '~> 2.14')
39
+ s.add_runtime_dependency('rest-client', '~> 2.0')
40
+ s.add_runtime_dependency('awesome_print', '~> 1.7')
41
41
  s.add_runtime_dependency('rainbow', '~> 2.0')
42
- s.add_runtime_dependency('terminal-table', '~> 1.4')
42
+ s.add_runtime_dependency('terminal-table', '~> 1.7')
43
43
  s.add_runtime_dependency('render-as-markdown','~> 0')
44
+ s.add_runtime_dependency('naturalsorter', '~> 3.0')
45
+ s.add_runtime_dependency('semverly', '~> 1.0')
44
46
  end
data/veye.log ADDED
@@ -0,0 +1,11 @@
1
+ # Logfile created on 2016-09-02 14:31:58 +0200 by logger.rb/47272
2
+ I, [2016-09-02T14:38:26.107103 #7548] INFO -- Veye: Fetching a list of project for private, team:
3
+ I, [2016-09-02T14:43:53.189733 #7638] INFO -- Veye: Fetching a list of project for private, team:
4
+ E, [2016-09-02T13:59:22.897053 #55] ERROR -- Veye: API returned error - 401, {"error"=>"Request not authorized."}
5
+ E, [2016-09-02T14:08:14.835931 #69] ERROR -- Veye: API returned error - 401, {"error"=>"Request not authorized."}
6
+ E, [2016-09-02T14:08:20.128781 #72] ERROR -- Veye: API returned error - 401, {"error"=>"Request not authorized."}
7
+ E, [2016-09-02T14:29:24.592771 #61] ERROR -- Veye: API returned error - 403, {"error"=>"API rate limit exceeded. Unauthenticated API cals are limited to 5 calls per hour. With an API key you can extend your rate limit. Sign up for free and get an API key!"}
8
+ I, [2016-09-02T14:30:17.658099 #72] INFO -- Veye: Fetching a list of project for private, team:
9
+ E, [2016-09-02T14:40:40.243306 #55] ERROR -- Veye: API returned error - 403, {"error"=>"API rate limit exceeded. Unauthenticated API cals are limited to 5 calls per hour. With an API key you can extend your rate limit. Sign up for free and get an API key!"}
10
+ E, [2016-09-02T15:12:02.358710 #54] ERROR -- Veye: API returned error - 403, {"error"=>"API rate limit exceeded. Unauthenticated API cals are limited to 5 calls per hour. With an API key you can extend your rate limit. Sign up for free and get an API key!"}
11
+ I, [2016-09-02T15:12:32.554875 #65] INFO -- Veye: Fetching a list of project for private, team: