wright 0.3.2 → 0.4.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 (99) hide show
  1. checksums.yaml +4 -4
  2. data/NEWS.md +7 -0
  3. data/README.md +60 -54
  4. data/lib/wright/cli.rb +44 -18
  5. data/lib/wright/dry_run.rb +7 -0
  6. data/lib/wright/provider/directory.rb +26 -30
  7. data/lib/wright/provider/file.rb +34 -34
  8. data/lib/wright/provider/group/darwin_directory_service.rb +8 -7
  9. data/lib/wright/provider/group/gnu_passwd.rb +5 -5
  10. data/lib/wright/provider/group.rb +53 -36
  11. data/lib/wright/provider/package/apt.rb +32 -8
  12. data/lib/wright/provider/package/homebrew.rb +6 -5
  13. data/lib/wright/provider/package/yum.rb +39 -0
  14. data/lib/wright/provider/package.rb +30 -16
  15. data/lib/wright/provider/symlink.rb +32 -33
  16. data/lib/wright/provider/user/darwin_directory_service.rb +14 -17
  17. data/lib/wright/provider/user/gnu_passwd.rb +20 -21
  18. data/lib/wright/provider/user.rb +58 -41
  19. data/lib/wright/resource/group.rb +1 -0
  20. data/lib/wright/resource/package.rb +16 -3
  21. data/lib/wright/resource/user.rb +1 -0
  22. data/lib/wright/resource.rb +4 -2
  23. data/lib/wright/util/user.rb +34 -2
  24. data/lib/wright/version.rb +1 -1
  25. data/man/wright.1 +15 -11
  26. data/spec/cli_spec.rb +18 -0
  27. data/spec/provider/group/darwin_directory_service_spec.rb +76 -220
  28. data/spec/provider/group/gnu_passwd_spec.rb +36 -189
  29. data/spec/provider/group_spec.rb +180 -27
  30. data/spec/provider/package/apt/apt-cache_policy_dmenu.return +1 -0
  31. data/spec/provider/package/apt/apt-cache_policy_dmenu.stderr +0 -0
  32. data/spec/provider/package/apt/apt-cache_policy_dmenu.stdout +4 -0
  33. data/spec/provider/package/apt/apt-cache_policy_htop.stdout +3 -3
  34. data/spec/provider/package/apt/apt-cache_policy_linux-image-3.2.0-4-amd64.return +1 -0
  35. data/spec/provider/package/apt/apt-cache_policy_linux-image-3.2.0-4-amd64.stderr +0 -0
  36. data/spec/provider/package/apt/apt-cache_policy_linux-image-3.2.0-4-amd64.stdout +6 -0
  37. data/spec/provider/package/apt/apt-cache_policy_linux-image.return +1 -0
  38. data/spec/provider/package/apt/apt-cache_policy_linux-image.stderr +0 -0
  39. data/spec/provider/package/apt/apt-cache_policy_linux-image.stdout +4 -0
  40. data/spec/provider/package/apt/apt-cache_policy_suckless-tools.return +1 -0
  41. data/spec/provider/package/apt/apt-cache_policy_suckless-tools.stderr +0 -0
  42. data/spec/provider/package/apt/apt-cache_policy_suckless-tools.stdout +6 -0
  43. data/spec/provider/package/apt/apt-cache_showpkg_dmenu.return +1 -0
  44. data/spec/provider/package/apt/apt-cache_showpkg_dmenu.stderr +0 -0
  45. data/spec/provider/package/apt/apt-cache_showpkg_dmenu.stdout +9 -0
  46. data/spec/provider/package/apt/apt-cache_showpkg_htop.return +1 -0
  47. data/spec/provider/package/apt/apt-cache_showpkg_htop.stderr +0 -0
  48. data/spec/provider/package/apt/apt-cache_showpkg_htop.stdout +20 -0
  49. data/spec/provider/package/apt/apt-cache_showpkg_linux-image.return +1 -0
  50. data/spec/provider/package/apt/apt-cache_showpkg_linux-image.stderr +0 -0
  51. data/spec/provider/package/apt/apt-cache_showpkg_linux-image.stdout +11 -0
  52. data/spec/provider/package/apt/apt-cache_showpkg_not-a-real-package.return +1 -0
  53. data/spec/provider/package/apt/apt-cache_showpkg_not-a-real-package.stderr +0 -0
  54. data/spec/provider/package/apt/apt-cache_showpkg_not-a-real-package.stdout +1 -0
  55. data/spec/provider/package/apt/apt-cache_showpkg_suckless-tools.return +1 -0
  56. data/spec/provider/package/apt/apt-cache_showpkg_suckless-tools.stderr +0 -0
  57. data/spec/provider/package/apt/apt-cache_showpkg_suckless-tools.stdout +26 -0
  58. data/spec/provider/package/apt/apt-get_--purge_remove_-qy_abcde.return +1 -0
  59. data/spec/provider/package/apt/apt-get_--purge_remove_-qy_abcde.stderr +0 -0
  60. data/spec/provider/package/apt/apt-get_--purge_remove_-qy_abcde.stdout +15 -0
  61. data/spec/provider/package/apt_spec.rb +82 -14
  62. data/spec/provider/package/homebrew/brew_install_--with-default-names_gnu-units.return +1 -0
  63. data/spec/provider/package/homebrew/brew_install_--with-default-names_gnu-units.stderr +0 -0
  64. data/spec/provider/package/homebrew/brew_install_--with-default-names_gnu-units.stdout +7 -0
  65. data/spec/provider/package/homebrew/brew_uninstall_--force_lame.return +1 -0
  66. data/spec/provider/package/homebrew/brew_uninstall_--force_lame.stderr +0 -0
  67. data/spec/provider/package/homebrew/brew_uninstall_--force_lame.stdout +1 -0
  68. data/spec/provider/package/homebrew_spec.rb +33 -6
  69. data/spec/provider/package/yum/rpm_-q_httpd.return +1 -0
  70. data/spec/provider/package/yum/rpm_-q_httpd.stderr +0 -0
  71. data/spec/provider/package/yum/rpm_-q_httpd.stdout +1 -0
  72. data/spec/provider/package/yum/rpm_-q_zsh.return +1 -0
  73. data/spec/provider/package/yum/rpm_-q_zsh.stderr +0 -0
  74. data/spec/provider/package/yum/rpm_-q_zsh.stdout +1 -0
  75. data/spec/provider/package/yum/yum_install_-y_mc-4.8.7-8.el7.return +1 -0
  76. data/spec/provider/package/yum/yum_install_-y_mc-4.8.7-8.el7.stderr +0 -0
  77. data/spec/provider/package/yum/yum_install_-y_mc-4.8.7-8.el7.stdout +37 -0
  78. data/spec/provider/package/yum/yum_install_-y_nano.return +1 -0
  79. data/spec/provider/package/yum/yum_install_-y_nano.stderr +0 -0
  80. data/spec/provider/package/yum/yum_install_-y_nano.stdout +36 -0
  81. data/spec/provider/package/yum/yum_install_-y_not-a-real-package.return +1 -0
  82. data/spec/provider/package/yum/yum_install_-y_not-a-real-package.stderr +1 -0
  83. data/spec/provider/package/yum/yum_install_-y_not-a-real-package.stdout +6 -0
  84. data/spec/provider/package/yum/yum_install_with_options.return +1 -0
  85. data/spec/provider/package/yum/yum_install_with_options.stderr +0 -0
  86. data/spec/provider/package/yum/yum_install_with_options.stdout +53 -0
  87. data/spec/provider/package/yum/yum_remove_-y_screen.return +1 -0
  88. data/spec/provider/package/yum/yum_remove_-y_screen.stderr +0 -0
  89. data/spec/provider/package/yum/yum_remove_-y_screen.stdout +31 -0
  90. data/spec/provider/package/yum/yum_remove_with_options.return +1 -0
  91. data/spec/provider/package/yum/yum_remove_with_options.stderr +0 -0
  92. data/spec/provider/package/yum/yum_remove_with_options.stdout +30 -0
  93. data/spec/provider/package/yum_spec.rb +130 -0
  94. data/spec/provider/user/darwin_directory_service_spec.rb +12 -10
  95. data/spec/provider/user/gnu_passwd_spec.rb +9 -9
  96. data/spec/provider/user_spec.rb +26 -18
  97. data/spec/resource/package_spec.rb +8 -0
  98. data/spec/resource_spec.rb +17 -9
  99. metadata +153 -16
@@ -27,31 +27,31 @@ describe Wright::Provider::Group::DarwinDirectoryService do
27
27
  Wright::Provider::Group::DarwinDirectoryService.new(group_resource)
28
28
  end
29
29
 
30
- before :each do
30
+ before(:each) do
31
31
  darwin_directory_service_dir = File.join(File.dirname(__FILE__),
32
32
  'darwin_directory_service')
33
33
  @fake_capture3 = FakeCapture3.new(darwin_directory_service_dir)
34
- @create_message = ->(group) { "INFO: create group: '#{group}'\n" }
35
- @create_message_dry = lambda do |group|
36
- "INFO: (would) create group: '#{group}'\n"
37
- end
38
- @create_message_debug = lambda do |group|
39
- "DEBUG: group already created: '#{group}'\n"
40
- end
41
- @remove_message = ->(group) { "INFO: remove group: '#{group}'\n" }
42
- @remove_message_dry = lambda do |group|
43
- "INFO: (would) remove group: '#{group}'\n"
44
- end
45
- @remove_message_debug = lambda do |group|
46
- "DEBUG: group already removed: '#{group}'\n"
47
- end
48
34
  @groups = { 'daemon' => { gid: 1, mem: [] },
49
35
  'foobar' => { gid: 42, mem: %w(foo bar) },
50
36
  'bazqux' => { gid: 43, mem: %w(baz qux) } }
51
37
  FakeEtc.add_groups(@groups)
52
38
  end
53
39
 
54
- describe '#create' do
40
+ after(:each) do
41
+ FakeEtc.clear_groups
42
+ end
43
+
44
+ describe '#create_group' do
45
+ before(:each) do
46
+ Wright::Provider::Group::DarwinDirectoryService.send(:public,
47
+ :create_group)
48
+ end
49
+
50
+ after(:each) do
51
+ Wright::Provider::Group::DarwinDirectoryService.send(:private,
52
+ :create_group)
53
+ end
54
+
55
55
  it 'should create new groups' do
56
56
  gid = 1234
57
57
  group_name = 'newgroup'
@@ -61,11 +61,7 @@ describe Wright::Provider::Group::DarwinDirectoryService do
61
61
  @fake_capture3.expect(dseditgroup_cmd)
62
62
  @fake_capture3.stub do
63
63
  FakeEtc do
64
- lambda do
65
- reset_logger
66
- group_provider.create
67
- group_provider.updated?.must_equal true
68
- end.must_output @create_message.call(group_name)
64
+ group_provider.create_group
69
65
  end
70
66
  end
71
67
  end
@@ -81,68 +77,36 @@ describe Wright::Provider::Group::DarwinDirectoryService do
81
77
  @fake_capture3.expect(dseditgroup_cmd)
82
78
  @fake_capture3.stub do
83
79
  FakeEtc do
84
- lambda do
85
- reset_logger
86
- group_provider.create
87
- group_provider.updated?.must_equal true
88
- end.must_output @create_message.call(group_name)
80
+ group_provider.create_group
89
81
  end
90
82
  end
91
83
  end
92
84
 
93
- it 'should not try to create existing groups' do
94
- group_name = 'foobar'
95
- gid = @groups[group_name][:gid]
96
- members = @groups[group_name][:mem]
97
- group_provider = group_provider(group_name, gid, members)
85
+ it 'should report group creation errors by dseditgroup' do
86
+ gid = 'ERROR'
87
+ group_name = 'newgroup'
88
+ group_provider = group_provider(group_name, gid)
89
+ dseditgroup_cmd = dseditgroup(:create, group_name, gid)
98
90
 
91
+ @fake_capture3.expect(dseditgroup_cmd)
99
92
  @fake_capture3.stub do
100
93
  FakeEtc do
101
- lambda do
102
- reset_logger
103
- group_provider.create
104
- group_provider.updated?.must_equal false
105
- end.must_output @create_message_debug.call(group_name)
94
+ e = -> { group_provider.create_group }.must_raise RuntimeError
95
+ wright_error = "cannot create group '#{group_name}'"
96
+ dseditgroup_error = 'GID contains non-numeric characters'
97
+ e.message.must_equal %(#{wright_error}: "#{dseditgroup_error}")
106
98
  end
107
99
  end
108
100
  end
101
+ end
109
102
 
110
- it 'should clear member lists for existing groups' do
111
- group_name = 'foobar'
112
- gid = @groups[group_name][:gid]
113
- members = []
114
- group_provider = group_provider(group_name, gid, members)
115
- dscl_cmd = dscl_set_members(group_name, members)
116
-
117
- @fake_capture3.expect(dscl_cmd)
118
- @fake_capture3.stub do
119
- FakeEtc do
120
- lambda do
121
- reset_logger
122
- group_provider.create
123
- group_provider.updated?.must_equal true
124
- end.must_output @create_message.call(group_name)
125
- end
126
- end
103
+ describe '#set_gid' do
104
+ before(:each) do
105
+ Wright::Provider::Group::DarwinDirectoryService.send(:public, :set_gid)
127
106
  end
128
107
 
129
- it 'should update member lists for existing groups' do
130
- group_name = 'foobar'
131
- gid = @groups[group_name][:gid]
132
- members = %w(user1 user2)
133
- group_provider = group_provider(group_name, gid, members)
134
- dscl_cmd = dscl_set_members(group_name, members)
135
-
136
- @fake_capture3.expect(dscl_cmd)
137
- @fake_capture3.stub do
138
- FakeEtc do
139
- lambda do
140
- reset_logger
141
- group_provider.create
142
- group_provider.updated?.must_equal true
143
- end.must_output @create_message.call(group_name)
144
- end
145
- end
108
+ after(:each) do
109
+ Wright::Provider::Group::DarwinDirectoryService.send(:private, :set_gid)
146
110
  end
147
111
 
148
112
  it 'should update the gid for existing groups' do
@@ -154,45 +118,66 @@ describe Wright::Provider::Group::DarwinDirectoryService do
154
118
  @fake_capture3.expect(dseditgroup_cmd)
155
119
  @fake_capture3.stub do
156
120
  FakeEtc do
157
- lambda do
158
- reset_logger
159
- group_provider.create
160
- group_provider.updated?.must_equal true
161
- end.must_output @create_message.call(group_name)
121
+ group_provider.set_gid
162
122
  end
163
123
  end
164
124
  end
165
125
 
166
- it 'should report group creation errors by dseditgroup' do
126
+ it 'should report errors by dseditgroup' do
167
127
  gid = 'ERROR'
168
- group_name = 'newgroup'
128
+ group_name = 'foobar'
169
129
  group_provider = group_provider(group_name, gid)
170
- dseditgroup_cmd = dseditgroup(:create, group_name, gid)
130
+ dseditgroup_cmd = dseditgroup(:edit, group_name, gid)
171
131
 
172
132
  @fake_capture3.expect(dseditgroup_cmd)
173
133
  @fake_capture3.stub do
174
134
  FakeEtc do
175
- e = -> { group_provider.create }.must_raise RuntimeError
135
+ e = -> { group_provider.set_gid }.must_raise RuntimeError
176
136
  wright_error = "cannot create group '#{group_name}'"
177
137
  dseditgroup_error = 'GID contains non-numeric characters'
178
138
  e.message.must_equal %(#{wright_error}: "#{dseditgroup_error}")
179
139
  end
180
140
  end
181
141
  end
142
+ end
182
143
 
183
- it 'should report gid changing errors by dseditgroup' do
184
- gid = 'ERROR'
144
+ describe '#set_members' do
145
+ before(:each) do
146
+ Wright::Provider::Group::DarwinDirectoryService.send(:public,
147
+ :set_members)
148
+ end
149
+
150
+ after(:each) do
151
+ Wright::Provider::Group::DarwinDirectoryService.send(:private,
152
+ :set_members)
153
+ end
154
+
155
+ it 'should update member lists for existing groups' do
185
156
  group_name = 'foobar'
186
- group_provider = group_provider(group_name, gid)
187
- dseditgroup_cmd = dseditgroup(:edit, group_name, gid)
157
+ gid = @groups[group_name][:gid]
158
+ members = %w(user1 user2)
159
+ group_provider = group_provider(group_name, gid, members)
160
+ dscl_cmd = dscl_set_members(group_name, members)
188
161
 
189
- @fake_capture3.expect(dseditgroup_cmd)
162
+ @fake_capture3.expect(dscl_cmd)
190
163
  @fake_capture3.stub do
191
164
  FakeEtc do
192
- e = -> { group_provider.create }.must_raise RuntimeError
193
- wright_error = "cannot create group '#{group_name}'"
194
- dseditgroup_error = 'GID contains non-numeric characters'
195
- e.message.must_equal %(#{wright_error}: "#{dseditgroup_error}")
165
+ group_provider.set_members
166
+ end
167
+ end
168
+ end
169
+
170
+ it 'should clear member lists for existing groups' do
171
+ group_name = 'foobar'
172
+ gid = @groups[group_name][:gid]
173
+ members = []
174
+ group_provider = group_provider(group_name, gid, members)
175
+ dscl_cmd = dscl_set_members(group_name, members)
176
+
177
+ @fake_capture3.expect(dscl_cmd)
178
+ @fake_capture3.stub do
179
+ FakeEtc do
180
+ group_provider.set_members
196
181
  end
197
182
  end
198
183
  end
@@ -207,7 +192,7 @@ describe Wright::Provider::Group::DarwinDirectoryService do
207
192
  @fake_capture3.expect(dscl_cmd)
208
193
  @fake_capture3.stub do
209
194
  FakeEtc do
210
- e = -> { group_provider.create }.must_raise RuntimeError
195
+ e = -> { group_provider.set_members }.must_raise RuntimeError
211
196
  wright_error = "cannot create group '#{group_name}'"
212
197
  dscl_error = <<EOS.chomp
213
198
  <main> attribute status: eDSPermissionError
@@ -228,26 +213,8 @@ EOS
228
213
  @fake_capture3.expect(dseditgroup_cmd)
229
214
  @fake_capture3.stub do
230
215
  FakeEtc do
231
- lambda do
232
- reset_logger
233
- group_provider.remove
234
- group_provider.updated?.must_equal true
235
- end.must_output @remove_message.call(group_name)
236
- end
237
- end
238
- end
239
-
240
- it 'should not try to remove groups that are already removed' do
241
- group_name = 'not-a-group'
242
- group_provider = group_provider(group_name)
243
-
244
- @fake_capture3.stub do
245
- FakeEtc do
246
- lambda do
247
- reset_logger
248
- group_provider.remove
249
- group_provider.updated?.must_equal false
250
- end.must_output @remove_message_debug.call(group_name)
216
+ group_provider.remove
217
+ group_provider.updated?.must_equal true
251
218
  end
252
219
  end
253
220
  end
@@ -268,115 +235,4 @@ EOS
268
235
  end
269
236
  end
270
237
  end
271
-
272
- describe 'dry_run' do
273
- it 'should not actually create new groups' do
274
- gid = 1234
275
- group_name = 'newgroup'
276
- group_provider = group_provider(group_name, gid)
277
-
278
- @fake_capture3.stub do
279
- Wright.dry_run do
280
- FakeEtc do
281
- lambda do
282
- reset_logger
283
- group_provider.create
284
- group_provider.updated?.must_equal true
285
- end.must_output @create_message_dry.call(group_name)
286
- end
287
- end
288
- end
289
- end
290
-
291
- it 'should not actually update existing groups' do
292
- gid = 1234
293
- group_name = 'foobar'
294
- members = %w(user1 user2)
295
- group_provider = group_provider(group_name, gid, members)
296
-
297
- @fake_capture3.stub do
298
- Wright.dry_run do
299
- FakeEtc do
300
- lambda do
301
- reset_logger
302
- group_provider.create
303
- group_provider.updated?.must_equal true
304
- end.must_output @create_message_dry.call(group_name)
305
- end
306
- end
307
- end
308
- end
309
-
310
- it 'should not try to create existing groups' do
311
- group_name = 'foobar'
312
- gid = @groups[group_name][:gid]
313
- members = @groups[group_name][:mem]
314
- group_provider = group_provider(group_name, gid, members)
315
-
316
- @fake_capture3.stub do
317
- Wright.dry_run do
318
- FakeEtc do
319
- lambda do
320
- reset_logger
321
- group_provider.create
322
- group_provider.updated?.must_equal false
323
- end.must_output @create_message_debug.call(group_name)
324
- end
325
- end
326
- end
327
- end
328
-
329
- it 'should not actually update existing groups' do
330
- group_name = 'foobar'
331
- gid = @groups[group_name][:gid] + 10
332
- members = %w(user1 user2)
333
- group_provider = group_provider(group_name, gid, members)
334
-
335
- @fake_capture3.stub do
336
- Wright.dry_run do
337
- FakeEtc do
338
- lambda do
339
- reset_logger
340
- group_provider.create
341
- group_provider.updated?.must_equal true
342
- end.must_output @create_message_dry.call(group_name)
343
- end
344
- end
345
- end
346
- end
347
-
348
- it 'should not actually remove groups' do
349
- group_name = 'foobar'
350
- group_provider = group_provider(group_name)
351
-
352
- @fake_capture3.stub do
353
- Wright.dry_run do
354
- FakeEtc do
355
- lambda do
356
- reset_logger
357
- group_provider.remove
358
- group_provider.updated?.must_equal true
359
- end.must_output @remove_message_dry.call(group_name)
360
- end
361
- end
362
- end
363
- end
364
-
365
- it 'should not try to remove groups that are already removed' do
366
- group_name = 'not-a-group'
367
- group_provider = group_provider(group_name)
368
-
369
- @fake_capture3.stub do
370
- Wright.dry_run do
371
- FakeEtc do
372
- lambda do
373
- reset_logger
374
- group_provider.remove
375
- group_provider.updated?.must_equal false
376
- end.must_output @remove_message_debug.call(group_name)
377
- end
378
- end
379
- end
380
- end
381
- end
382
238
  end
@@ -31,29 +31,23 @@ describe Wright::Provider::Group::GnuPasswd do
31
31
  Wright::Provider::Group::GnuPasswd.new(group_resource)
32
32
  end
33
33
 
34
- before :each do
34
+ before(:each) do
35
35
  gnu_passwd_dir = File.join(File.dirname(__FILE__), 'gnu_passwd')
36
36
  @fake_capture3 = FakeCapture3.new(gnu_passwd_dir)
37
- @create_message = ->(group) { "INFO: create group: '#{group}'\n" }
38
- @create_message_dry = lambda do |group|
39
- "INFO: (would) create group: '#{group}'\n"
40
- end
41
- @create_message_debug = lambda do |group|
42
- "DEBUG: group already created: '#{group}'\n"
43
- end
44
- @remove_message = ->(group) { "INFO: remove group: '#{group}'\n" }
45
- @remove_message_dry = lambda do |group|
46
- "INFO: (would) remove group: '#{group}'\n"
47
- end
48
- @remove_message_debug = lambda do |group|
49
- "DEBUG: group already removed: '#{group}'\n"
50
- end
51
37
  @groups = { 'foobar' => { gid: 42, mem: %w(foo bar) },
52
38
  'bazqux' => { gid: 43, mem: %w(baz qux) } }
53
39
  FakeEtc.add_groups(@groups)
54
40
  end
55
41
 
56
- describe '#create' do
42
+ describe '#create_group' do
43
+ before(:each) do
44
+ Wright::Provider::Group::GnuPasswd.send(:public, :create_group)
45
+ end
46
+
47
+ after(:each) do
48
+ Wright::Provider::Group::GnuPasswd.send(:private, :create_group)
49
+ end
50
+
57
51
  it 'should create new groups' do
58
52
  gid = 1234
59
53
  group_name = 'newgroup'
@@ -63,11 +57,7 @@ describe Wright::Provider::Group::GnuPasswd do
63
57
  @fake_capture3.expect(groupadd_cmd)
64
58
  @fake_capture3.stub do
65
59
  FakeEtc do
66
- lambda do
67
- reset_logger
68
- group_provider.create
69
- group_provider.updated?.must_equal true
70
- end.must_output @create_message.call(group_name)
60
+ group_provider.create_group
71
61
  end
72
62
  end
73
63
  end
@@ -83,28 +73,7 @@ describe Wright::Provider::Group::GnuPasswd do
83
73
  @fake_capture3.expect(groupadd_cmd)
84
74
  @fake_capture3.stub do
85
75
  FakeEtc do
86
- lambda do
87
- reset_logger
88
- group_provider.create
89
- group_provider.updated?.must_equal true
90
- end.must_output @create_message.call(group_name)
91
- end
92
- end
93
- end
94
-
95
- it 'should not try to create existing groups' do
96
- group_name = 'foobar'
97
- gid = @groups[group_name][:gid]
98
- members = @groups[group_name][:mem]
99
- group_provider = group_provider(group_name, gid, members)
100
-
101
- @fake_capture3.stub do
102
- FakeEtc do
103
- lambda do
104
- reset_logger
105
- group_provider.create
106
- group_provider.updated?.must_equal false
107
- end.must_output @create_message_debug.call(group_name)
76
+ group_provider.create_group
108
77
  end
109
78
  end
110
79
  end
@@ -119,11 +88,7 @@ describe Wright::Provider::Group::GnuPasswd do
119
88
  @fake_capture3.expect(gpasswd_cmd)
120
89
  @fake_capture3.stub do
121
90
  FakeEtc do
122
- lambda do
123
- reset_logger
124
- group_provider.create
125
- group_provider.updated?.must_equal true
126
- end.must_output @create_message.call(group_name)
91
+ group_provider.create
127
92
  end
128
93
  end
129
94
  end
@@ -138,11 +103,7 @@ describe Wright::Provider::Group::GnuPasswd do
138
103
  @fake_capture3.expect(gpasswd_cmd)
139
104
  @fake_capture3.stub do
140
105
  FakeEtc do
141
- lambda do
142
- reset_logger
143
- group_provider.create
144
- group_provider.updated?.must_equal true
145
- end.must_output @create_message.call(group_name)
106
+ group_provider.create
146
107
  end
147
108
  end
148
109
  end
@@ -156,11 +117,7 @@ describe Wright::Provider::Group::GnuPasswd do
156
117
  @fake_capture3.expect(groupmod_cmd)
157
118
  @fake_capture3.stub do
158
119
  FakeEtc do
159
- lambda do
160
- reset_logger
161
- group_provider.create
162
- group_provider.updated?.must_equal true
163
- end.must_output @create_message.call(group_name)
120
+ group_provider.create
164
121
  end
165
122
  end
166
123
  end
@@ -218,6 +175,26 @@ describe Wright::Provider::Group::GnuPasswd do
218
175
  end
219
176
  end
220
177
 
178
+ describe '#set_gid' do
179
+ before(:each) do
180
+ Wright::Provider::Group::GnuPasswd.send(:public, :set_gid)
181
+ end
182
+
183
+ after(:each) do
184
+ Wright::Provider::Group::GnuPasswd.send(:private, :set_gid)
185
+ end
186
+ end
187
+
188
+ describe '#set_members' do
189
+ before(:each) do
190
+ Wright::Provider::Group::GnuPasswd.send(:public, :set_members)
191
+ end
192
+
193
+ after(:each) do
194
+ Wright::Provider::Group::GnuPasswd.send(:private, :set_members)
195
+ end
196
+ end
197
+
221
198
  describe '#remove' do
222
199
  it 'should remove existing groups' do
223
200
  group_name = 'foobar'
@@ -227,26 +204,7 @@ describe Wright::Provider::Group::GnuPasswd do
227
204
  @fake_capture3.expect(groupdel_cmd)
228
205
  @fake_capture3.stub do
229
206
  FakeEtc do
230
- lambda do
231
- reset_logger
232
- group_provider.remove
233
- group_provider.updated?.must_equal true
234
- end.must_output @remove_message.call(group_name)
235
- end
236
- end
237
- end
238
-
239
- it 'should not try to remove groups that are already removed' do
240
- group_name = 'not-a-group'
241
- group_provider = group_provider(group_name)
242
-
243
- @fake_capture3.stub do
244
- FakeEtc do
245
- lambda do
246
- reset_logger
247
- group_provider.remove
248
- group_provider.updated?.must_equal false
249
- end.must_output @remove_message_debug.call(group_name)
207
+ group_provider.remove
250
208
  end
251
209
  end
252
210
  end
@@ -268,115 +226,4 @@ describe Wright::Provider::Group::GnuPasswd do
268
226
  end
269
227
  end
270
228
  end
271
-
272
- describe 'dry_run' do
273
- it 'should not actually create new groups' do
274
- gid = 1234
275
- group_name = 'newgroup'
276
- group_provider = group_provider(group_name, gid)
277
-
278
- @fake_capture3.stub do
279
- Wright.dry_run do
280
- FakeEtc do
281
- lambda do
282
- reset_logger
283
- group_provider.create
284
- group_provider.updated?.must_equal true
285
- end.must_output @create_message_dry.call(group_name)
286
- end
287
- end
288
- end
289
- end
290
-
291
- it 'should not actually update existing groups' do
292
- gid = 1234
293
- group_name = 'foobar'
294
- members = %w(user1 user2)
295
- group_provider = group_provider(group_name, gid, members)
296
-
297
- @fake_capture3.stub do
298
- Wright.dry_run do
299
- FakeEtc do
300
- lambda do
301
- reset_logger
302
- group_provider.create
303
- group_provider.updated?.must_equal true
304
- end.must_output @create_message_dry.call(group_name)
305
- end
306
- end
307
- end
308
- end
309
-
310
- it 'should not try to create existing groups' do
311
- group_name = 'foobar'
312
- gid = @groups[group_name][:gid]
313
- members = @groups[group_name][:mem]
314
- group_provider = group_provider(group_name, gid, members)
315
-
316
- @fake_capture3.stub do
317
- Wright.dry_run do
318
- FakeEtc do
319
- lambda do
320
- reset_logger
321
- group_provider.create
322
- group_provider.updated?.must_equal false
323
- end.must_output @create_message_debug.call(group_name)
324
- end
325
- end
326
- end
327
- end
328
-
329
- it 'should not actually update existing groups' do
330
- group_name = 'foobar'
331
- gid = @groups[group_name][:gid] + 10
332
- members = %w(user1 user2)
333
- group_provider = group_provider(group_name, gid, members)
334
-
335
- @fake_capture3.stub do
336
- Wright.dry_run do
337
- FakeEtc do
338
- lambda do
339
- reset_logger
340
- group_provider.create
341
- group_provider.updated?.must_equal true
342
- end.must_output @create_message_dry.call(group_name)
343
- end
344
- end
345
- end
346
- end
347
-
348
- it 'should not actually remove groups' do
349
- group_name = 'foobar'
350
- group_provider = group_provider(group_name)
351
-
352
- @fake_capture3.stub do
353
- Wright.dry_run do
354
- FakeEtc do
355
- lambda do
356
- reset_logger
357
- group_provider.remove
358
- group_provider.updated?.must_equal true
359
- end.must_output @remove_message_dry.call(group_name)
360
- end
361
- end
362
- end
363
- end
364
-
365
- it 'should not try to remove groups that are already removed' do
366
- group_name = 'not-a-group'
367
- group_provider = group_provider(group_name)
368
-
369
- @fake_capture3.stub do
370
- Wright.dry_run do
371
- FakeEtc do
372
- lambda do
373
- reset_logger
374
- group_provider.remove
375
- group_provider.updated?.must_equal false
376
- end.must_output @remove_message_debug.call(group_name)
377
- end
378
- end
379
- end
380
- end
381
- end
382
229
  end