wright 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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