sys-admin 1.4.4 → 1.4.5
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.
- data/CHANGES +10 -0
- data/README +6 -2
- data/Rakefile +6 -1
- data/ext/sys/admin.c +35 -3
- data/ext/sys/admin.h +8 -4
- data/test/{tc_admin.rb → test_sys_admin.rb} +12 -5
- data/test/test_sys_admin_unix.rb +246 -0
- data/test/{tc_windows.rb → test_sys_admin_windows.rb} +1 -5
- metadata +12 -12
- data/test/tc_unix.rb +0 -81
data/CHANGES
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
== 1.4.5 - 1-Mar-2009
|
2
|
+
* Added the User#groups method. This returns an array of groups that the
|
3
|
+
user belongs to. Suggestion inspired by Gonzalo Garramuno.
|
4
|
+
* Changed User#class to User#access_class to avoid conflicts with the
|
5
|
+
Ruby core Object method.
|
6
|
+
* Added more tests and renamed the test files.
|
7
|
+
* Removed an unnecessary function call where a platform might try to
|
8
|
+
get lastlog information even if the lastlog.h or utmp.h headers couldn't
|
9
|
+
be found.
|
10
|
+
|
1
11
|
== 1.4.4 - 19-Nov-2008
|
2
12
|
* Added the User#uid method for MS Windows (which is just the user's relative
|
3
13
|
identifier).
|
data/README
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
== Description
|
2
|
-
The sys-admin
|
2
|
+
The sys-admin library is a unified, cross platform replacement for the
|
3
3
|
Etc module.
|
4
4
|
|
5
5
|
== Installation
|
6
|
+
= Typical Gem Installation
|
7
|
+
gem install sys-admin
|
8
|
+
= Local installation
|
6
9
|
rake test (optional)
|
7
10
|
rake install
|
8
11
|
|
@@ -167,6 +170,7 @@ Admin::Error < StandardError
|
|
167
170
|
* Admin.delete_global_group
|
168
171
|
|
169
172
|
Make the User and Group objects comparable.
|
173
|
+
Support BSD.
|
170
174
|
|
171
175
|
== Known Bugs
|
172
176
|
None that I'm aware of. If you find any, please log them on the project
|
@@ -176,7 +180,7 @@ Admin::Error < StandardError
|
|
176
180
|
Ruby's
|
177
181
|
|
178
182
|
== Copyright
|
179
|
-
(C) 2005-
|
183
|
+
(C) 2005-2009, Daniel J. Berger
|
180
184
|
All Rights Reserved
|
181
185
|
|
182
186
|
== Author
|
data/Rakefile
CHANGED
@@ -52,5 +52,10 @@ Rake::TestTask.new("test") do |t|
|
|
52
52
|
t.libs << 'ext'
|
53
53
|
t.libs.delete('lib')
|
54
54
|
end
|
55
|
-
t.
|
55
|
+
t.libs << 'test'
|
56
|
+
t.test_files = FileList['test/test_sys_admin.rb']
|
57
|
+
end
|
58
|
+
|
59
|
+
task :test do
|
60
|
+
Rake.application[:clean].execute
|
56
61
|
end
|
data/ext/sys/admin.c
CHANGED
@@ -265,6 +265,37 @@ static VALUE admin_users(VALUE klass){
|
|
265
265
|
);
|
266
266
|
}
|
267
267
|
|
268
|
+
/* call-seq:
|
269
|
+
* User#groups # => ['staff', 'admin', ...]
|
270
|
+
*
|
271
|
+
* Returns an array of groups the user belongs to.
|
272
|
+
*/
|
273
|
+
static VALUE user_groups(VALUE self){
|
274
|
+
VALUE v_groups, v_group, v_users, v_group_name, v_name, v_result;
|
275
|
+
int i;
|
276
|
+
|
277
|
+
v_name = rb_funcall(self, rb_intern("name"), 0, 0);
|
278
|
+
v_result = rb_ary_new();
|
279
|
+
v_groups = admin_groups(self);
|
280
|
+
|
281
|
+
/* Iterate over each group, checking its members. If the members includes
|
282
|
+
* the user name, we have a match.
|
283
|
+
*/
|
284
|
+
if(!NIL_P(v_groups)){
|
285
|
+
for(i = 0; i < RARRAY(v_groups)->len; i++){
|
286
|
+
v_group = RARRAY(v_groups)->ptr[i];
|
287
|
+
v_users = rb_funcall(v_group, rb_intern("members"), 0, 0);
|
288
|
+
|
289
|
+
if(RTEST(rb_funcall(v_users, rb_intern("include?"), 1, v_name))){
|
290
|
+
v_group_name = rb_funcall(v_group, rb_intern("name"), 0, 0);
|
291
|
+
rb_ary_push(v_result, v_group_name);
|
292
|
+
}
|
293
|
+
}
|
294
|
+
}
|
295
|
+
|
296
|
+
return v_result;
|
297
|
+
}
|
298
|
+
|
268
299
|
/*
|
269
300
|
* The Sys::Admin class encapsulates typical operations surrounding the query
|
270
301
|
* of user and group information.
|
@@ -296,6 +327,7 @@ void Init_admin(){
|
|
296
327
|
|
297
328
|
/* Instance Methods */
|
298
329
|
rb_define_method(cUser, "initialize", user_init, 0);
|
330
|
+
rb_define_method(cUser, "groups", user_groups, 0);
|
299
331
|
rb_define_method(cGroup,"initialize", group_init, 0);
|
300
332
|
|
301
333
|
/* User Attributes */
|
@@ -328,7 +360,7 @@ void Init_admin(){
|
|
328
360
|
rb_define_attr(cUser, "age", 1, 1);
|
329
361
|
|
330
362
|
/* The user's access class */
|
331
|
-
rb_define_attr(cUser, "
|
363
|
+
rb_define_attr(cUser, "access_class", 1, 1);
|
332
364
|
|
333
365
|
/* Another comment field. Rarely used. */
|
334
366
|
rb_define_attr(cUser, "comment", 1, 1);
|
@@ -336,7 +368,7 @@ void Init_admin(){
|
|
336
368
|
/* Account expiration date */
|
337
369
|
rb_define_attr(cUser, "expire", 1, 1);
|
338
370
|
|
339
|
-
/* Next
|
371
|
+
/* Next date a password change will be needed */
|
340
372
|
rb_define_attr(cUser, "change", 1, 1);
|
341
373
|
|
342
374
|
/* The last time the user logged in */
|
@@ -364,6 +396,6 @@ void Init_admin(){
|
|
364
396
|
|
365
397
|
/* Constants */
|
366
398
|
|
367
|
-
/* 1.4.
|
399
|
+
/* 1.4.5: The version of this library */
|
368
400
|
rb_define_const(cAdmin, "VERSION", rb_str_new2(SYS_ADMIN_VERSION));
|
369
401
|
}
|
data/ext/sys/admin.h
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
#include <errno.h>
|
9
9
|
#include <string.h>
|
10
10
|
|
11
|
-
#define SYS_ADMIN_VERSION "1.4.
|
11
|
+
#define SYS_ADMIN_VERSION "1.4.5"
|
12
12
|
|
13
13
|
#ifdef HAVE_LASTLOG_H
|
14
14
|
#include <lastlog.h>
|
@@ -226,7 +226,7 @@ static VALUE get_user(struct passwd* pwd){
|
|
226
226
|
#endif
|
227
227
|
|
228
228
|
#ifdef HAVE_ST_PW_CLASS
|
229
|
-
rb_iv_set(v_user, "@
|
229
|
+
rb_iv_set(v_user, "@access_class", rb_str_new2(pwd->pw_class));
|
230
230
|
#endif
|
231
231
|
|
232
232
|
#ifdef HAVE_ST_PW_EXPIRE
|
@@ -237,8 +237,9 @@ static VALUE get_user(struct passwd* pwd){
|
|
237
237
|
rb_iv_set(v_user, "@change", rb_time_new(pwd->pw_change, 0));
|
238
238
|
#endif
|
239
239
|
|
240
|
-
|
240
|
+
#if defined(HAVE_LASTLOG_H) || defined(HAVE_UTMP_H)
|
241
241
|
get_lastlog_info(pwd, v_user);
|
242
|
+
#endif
|
242
243
|
|
243
244
|
return v_user;
|
244
245
|
}
|
@@ -313,7 +314,7 @@ void get_user_from_value(VALUE v_user, struct passwd* pwd){
|
|
313
314
|
#endif
|
314
315
|
|
315
316
|
#ifdef HAVE_ST_PW_CLASS
|
316
|
-
VALUE v_class = rb_iv_get(v_user, "@
|
317
|
+
VALUE v_class = rb_iv_get(v_user, "@access_class");
|
317
318
|
if(!NIL_P(v_class)){
|
318
319
|
SafeStringValue(v_class);
|
319
320
|
pwd->pw_class = StringValuePtr(v_class);
|
@@ -408,6 +409,9 @@ void get_group_from_value(VALUE v_group, struct group* grp){
|
|
408
409
|
* :no-doc:
|
409
410
|
*
|
410
411
|
* Helper function that gets lastlog information for the User object.
|
412
|
+
*--
|
413
|
+
* Note that even if the platform supports lastlog information, it can
|
414
|
+
* still be empty or nil.
|
411
415
|
*/
|
412
416
|
int get_lastlog_info(struct passwd* pwd, VALUE v_user){
|
413
417
|
int fd;
|
@@ -1,14 +1,21 @@
|
|
1
1
|
###############################################################################
|
2
|
-
#
|
2
|
+
# test_sys_admin.rb
|
3
3
|
#
|
4
4
|
# This exists mostly for the sake of the gemspec, so that it calls the right
|
5
5
|
# test suite based on the platform.
|
6
6
|
###############################################################################
|
7
|
-
|
8
|
-
|
7
|
+
require 'rubygems'
|
8
|
+
gem 'test-unit'
|
9
|
+
require 'test/unit'
|
9
10
|
|
10
11
|
if File::ALT_SEPARATOR
|
11
|
-
require '
|
12
|
+
require 'test_sys_admin_windows'
|
12
13
|
else
|
13
|
-
require '
|
14
|
+
require 'test_sys_admin_unix'
|
15
|
+
end
|
16
|
+
|
17
|
+
class TC_Sys_Admin_All < Test::Unit::TestCase
|
18
|
+
def test_version
|
19
|
+
assert_equal('1.4.5', Sys::Admin::VERSION)
|
20
|
+
end
|
14
21
|
end
|
@@ -0,0 +1,246 @@
|
|
1
|
+
###############################################################################
|
2
|
+
# test_sys_admin_unix.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Unix version of sys-admin. This test should be run
|
5
|
+
# via the 'rake test' task.
|
6
|
+
###############################################################################
|
7
|
+
require 'test/unit'
|
8
|
+
require 'sys/admin'
|
9
|
+
include Sys
|
10
|
+
|
11
|
+
class TC_Sys_Admin_Unix < Test::Unit::TestCase
|
12
|
+
def setup
|
13
|
+
@user = 'nobody'
|
14
|
+
@user_id = 0
|
15
|
+
|
16
|
+
@group = 'sys'
|
17
|
+
@group_id = 3
|
18
|
+
end
|
19
|
+
|
20
|
+
## Admin singleton methods
|
21
|
+
|
22
|
+
def test_get_login
|
23
|
+
assert_respond_to(Admin, :get_login)
|
24
|
+
assert_nothing_raised{ Admin.get_login }
|
25
|
+
assert_kind_of(String, Admin.get_login)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_get_user_basic
|
29
|
+
assert_respond_to(Admin, :get_user)
|
30
|
+
assert_nothing_raised{ Admin.get_user(@user) }
|
31
|
+
assert_nothing_raised{ Admin.get_user(@user_id) }
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_get_user_by_name
|
35
|
+
assert_kind_of(User, Admin.get_user(@user))
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_get_user_by_id
|
39
|
+
assert_kind_of(User, Admin.get_user(@user_id))
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_get_user_expected_errors
|
43
|
+
assert_raise(ArgumentError){ Admin.get_user }
|
44
|
+
assert_raise(TypeError){ Admin.get_user([]) }
|
45
|
+
assert_raise(Admin::Error){ Admin.get_user('foofoofoo') }
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_users_basic
|
49
|
+
assert_respond_to(Admin, :users)
|
50
|
+
assert_nothing_raised{ Admin.users }
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_users
|
54
|
+
assert_kind_of(Array, Admin.users)
|
55
|
+
assert_kind_of(User, Admin.users.first)
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_users_block_form
|
59
|
+
array = []
|
60
|
+
assert_nothing_raised{ Admin.users{ |g| array << g } }
|
61
|
+
assert_equal(true, Admin.users.length == array.length)
|
62
|
+
assert_nothing_raised{ Admin.users{ |g| break } }
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_users_expected_errors
|
66
|
+
assert_raise(ArgumentError){ Admin.users(@user_id) }
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_get_group_basic
|
70
|
+
assert_respond_to(Admin, :get_group)
|
71
|
+
assert_nothing_raised{ Admin.get_group(@group) }
|
72
|
+
assert_nothing_raised{ Admin.get_group(@group_id) }
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_get_group_by_name
|
76
|
+
assert_kind_of(Group, Admin.get_group(@group))
|
77
|
+
end
|
78
|
+
|
79
|
+
def test_get_group_by_id
|
80
|
+
assert_kind_of(Group, Admin.get_group(@group_id))
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_get_group_expected_errors
|
84
|
+
assert_raise(ArgumentError){ Admin.get_group }
|
85
|
+
assert_raise(TypeError){ Admin.get_group([]) }
|
86
|
+
assert_raise(Admin::Error){ Admin.get_group('foofoofoo') }
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_groups_basic
|
90
|
+
assert_respond_to(Admin, :groups)
|
91
|
+
assert_nothing_raised{ Admin.groups }
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_groups
|
95
|
+
assert_kind_of(Array, Admin.groups)
|
96
|
+
assert_kind_of(Group, Admin.groups.first)
|
97
|
+
end
|
98
|
+
|
99
|
+
def test_groups_expected_errors
|
100
|
+
assert_raise(ArgumentError){ Admin.groups(@group_id) }
|
101
|
+
end
|
102
|
+
|
103
|
+
def test_groups_block_form
|
104
|
+
array = []
|
105
|
+
assert_nothing_raised{ Admin.groups{ |g| array << g } }
|
106
|
+
assert_equal(true, Admin.groups.length == array.length)
|
107
|
+
assert_nothing_raised{ Admin.groups{ |g| break } }
|
108
|
+
end
|
109
|
+
|
110
|
+
## User Tests
|
111
|
+
|
112
|
+
def test_user_name
|
113
|
+
@user = Admin.users.first
|
114
|
+
assert_respond_to(@user, :name)
|
115
|
+
assert_kind_of(String, @user.name)
|
116
|
+
end
|
117
|
+
|
118
|
+
def test_user_passwd
|
119
|
+
@user = Admin.users.first
|
120
|
+
assert_respond_to(@user, :passwd)
|
121
|
+
assert_kind_of(String, @user.passwd)
|
122
|
+
end
|
123
|
+
|
124
|
+
def test_user_uid
|
125
|
+
@user = Admin.users.first
|
126
|
+
assert_respond_to(@user, :uid)
|
127
|
+
assert_kind_of(Fixnum, @user.uid)
|
128
|
+
end
|
129
|
+
|
130
|
+
def test_user_gid
|
131
|
+
@user = Admin.users.first
|
132
|
+
assert_respond_to(@user, :gid)
|
133
|
+
assert_kind_of(Fixnum, @user.gid)
|
134
|
+
end
|
135
|
+
|
136
|
+
def test_user_dir
|
137
|
+
@user = Admin.users.first
|
138
|
+
assert_respond_to(@user, :dir)
|
139
|
+
assert_kind_of(String, @user.dir)
|
140
|
+
end
|
141
|
+
|
142
|
+
def test_user_shell
|
143
|
+
@user = Admin.users.first
|
144
|
+
assert_respond_to(@user, :shell)
|
145
|
+
assert_kind_of(String, @user.shell)
|
146
|
+
end
|
147
|
+
|
148
|
+
def test_user_gecos
|
149
|
+
@user = Admin.users.first
|
150
|
+
assert_respond_to(@user, :gecos)
|
151
|
+
assert_kind_of(String, @user.gecos)
|
152
|
+
end
|
153
|
+
|
154
|
+
def test_user_quota
|
155
|
+
@user = Admin.users.first
|
156
|
+
assert_respond_to(@user, :quota)
|
157
|
+
assert_true([Fixnum, NilClass].include?(@user.quota.class))
|
158
|
+
end
|
159
|
+
|
160
|
+
def test_user_age
|
161
|
+
@user = Admin.users.first
|
162
|
+
assert_respond_to(@user, :age)
|
163
|
+
assert_true([Fixnum, NilClass].include?(@user.age.class))
|
164
|
+
end
|
165
|
+
|
166
|
+
def test_user_access_class
|
167
|
+
@user = Admin.users.first
|
168
|
+
assert_respond_to(@user, :access_class)
|
169
|
+
assert_true([String, NilClass].include?(@user.access_class.class))
|
170
|
+
end
|
171
|
+
|
172
|
+
def test_user_comment
|
173
|
+
@user = Admin.users.first
|
174
|
+
assert_respond_to(@user, :comment)
|
175
|
+
assert_true([String, NilClass].include?(@user.comment.class))
|
176
|
+
end
|
177
|
+
|
178
|
+
def test_user_expire
|
179
|
+
@user = Admin.users.first
|
180
|
+
assert_respond_to(@user, :expire)
|
181
|
+
assert_true([Time, NilClass].include?(@user.expire.class))
|
182
|
+
end
|
183
|
+
|
184
|
+
def test_user_change
|
185
|
+
@user = Admin.users.first
|
186
|
+
assert_respond_to(@user, :change)
|
187
|
+
assert_true([Time, NilClass].include?(@user.change.class))
|
188
|
+
end
|
189
|
+
|
190
|
+
def test_user_login_time
|
191
|
+
@user = Admin.users.first
|
192
|
+
assert_respond_to(@user, :login_time)
|
193
|
+
assert_true([Time, NilClass].include?(@user.login_time.class))
|
194
|
+
end
|
195
|
+
|
196
|
+
def test_user_login_device
|
197
|
+
@user = Admin.users.first
|
198
|
+
assert_respond_to(@user, :login_device)
|
199
|
+
assert_true([String, NilClass].include?(@user.login_device.class))
|
200
|
+
end
|
201
|
+
|
202
|
+
def test_user_login_host
|
203
|
+
@user = Admin.users.first
|
204
|
+
assert_respond_to(@user, :login_host)
|
205
|
+
assert_true([String, NilClass].include?(@user.login_host.class))
|
206
|
+
end
|
207
|
+
|
208
|
+
def test_user_groups
|
209
|
+
@user = Admin.users.first
|
210
|
+
assert_respond_to(@user, :groups)
|
211
|
+
assert_kind_of(Array, @user.groups)
|
212
|
+
end
|
213
|
+
|
214
|
+
## Group Tests
|
215
|
+
|
216
|
+
def test_group_name
|
217
|
+
@group = Admin.groups.first
|
218
|
+
assert_respond_to(@group, :name)
|
219
|
+
assert_kind_of(String, @group.name)
|
220
|
+
end
|
221
|
+
|
222
|
+
def test_group_gid
|
223
|
+
@group = Admin.groups.first
|
224
|
+
assert_respond_to(@group, :gid)
|
225
|
+
assert_kind_of(Fixnum, @group.gid)
|
226
|
+
end
|
227
|
+
|
228
|
+
def test_group_members
|
229
|
+
@group = Admin.groups.first
|
230
|
+
assert_respond_to(@group, :members)
|
231
|
+
assert_kind_of(Array, @group.members)
|
232
|
+
end
|
233
|
+
|
234
|
+
def test_group_passwd
|
235
|
+
@group = Admin.groups.first
|
236
|
+
assert_respond_to(@group, :passwd)
|
237
|
+
assert_kind_of(String, @group.passwd)
|
238
|
+
end
|
239
|
+
|
240
|
+
def teardown
|
241
|
+
@user = nil
|
242
|
+
@user_id = nil
|
243
|
+
@group = nil
|
244
|
+
@group_id = nil
|
245
|
+
end
|
246
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
###############################################################################
|
2
|
-
#
|
2
|
+
# test_sys_admin_windows.rb
|
3
3
|
#
|
4
4
|
# Test suite for the Win32 version of sys-admin. Note that some of the tests
|
5
5
|
# are numbered to ensure a certain order. That way I can add test users
|
@@ -29,10 +29,6 @@ class TC_Sys_Admin_Win32 < Test::Unit::TestCase
|
|
29
29
|
@group_id = 546 # best guess, may fail
|
30
30
|
end
|
31
31
|
|
32
|
-
def test_version
|
33
|
-
assert_equal('1.4.4', Admin::VERSION)
|
34
|
-
end
|
35
|
-
|
36
32
|
def test_01_add_local_user
|
37
33
|
assert_respond_to(Admin, :add_local_user)
|
38
34
|
assert_nothing_raised{ Admin.add_local_user('foo') }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sys-admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
@@ -9,11 +9,11 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-01-26 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
16
|
-
description: A unified, cross platform replacement for the "etc"
|
16
|
+
description: A unified, cross platform replacement for the "etc" library.
|
17
17
|
email: djberg96@gmail.com
|
18
18
|
executables: []
|
19
19
|
|
@@ -27,15 +27,15 @@ extra_rdoc_files:
|
|
27
27
|
files:
|
28
28
|
- doc/sys-admin-unix.txt
|
29
29
|
- doc/sys-admin-windows.txt
|
30
|
-
- examples/groups.rb
|
31
30
|
- examples/users.rb
|
32
|
-
-
|
33
|
-
- test/
|
34
|
-
- test/
|
35
|
-
-
|
31
|
+
- examples/groups.rb
|
32
|
+
- test/test_sys_admin_windows.rb
|
33
|
+
- test/test_sys_admin.rb
|
34
|
+
- test/test_sys_admin_unix.rb
|
36
35
|
- MANIFEST
|
37
|
-
- Rakefile
|
38
36
|
- README
|
37
|
+
- CHANGES
|
38
|
+
- Rakefile
|
39
39
|
- ext/sys/admin.c
|
40
40
|
- ext/sys/admin.h
|
41
41
|
has_rdoc: true
|
@@ -60,9 +60,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
60
60
|
requirements: []
|
61
61
|
|
62
62
|
rubyforge_project: sysutils
|
63
|
-
rubygems_version: 1.
|
63
|
+
rubygems_version: 1.3.1
|
64
64
|
signing_key:
|
65
65
|
specification_version: 2
|
66
|
-
summary: A unified, cross platform replacement for the "etc"
|
66
|
+
summary: A unified, cross platform replacement for the "etc" library.
|
67
67
|
test_files:
|
68
|
-
- test/
|
68
|
+
- test/test_sys_admin.rb
|
data/test/tc_unix.rb
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
###############################################################################
|
2
|
-
# tc_unix.rb
|
3
|
-
#
|
4
|
-
# Test suite for the Unix version of sys-admin. This test should be run
|
5
|
-
# via the 'rake test' task.
|
6
|
-
###############################################################################
|
7
|
-
require 'test/unit'
|
8
|
-
require 'sys/admin'
|
9
|
-
include Sys
|
10
|
-
|
11
|
-
class TC_Sys_Admin_Unix < Test::Unit::TestCase
|
12
|
-
def setup
|
13
|
-
@user = "nobody"
|
14
|
-
@userid = 0
|
15
|
-
@group = "sys"
|
16
|
-
@groupid = 3
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_version
|
20
|
-
assert_equal('1.4.4', Admin::VERSION)
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_get_login
|
24
|
-
assert_respond_to(Admin, :get_login)
|
25
|
-
assert_nothing_raised{ Admin.get_login }
|
26
|
-
assert_kind_of(String, Admin.get_login)
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_get_user
|
30
|
-
assert_respond_to(Admin, :get_user)
|
31
|
-
assert_nothing_raised{ Admin.get_user(@user) }
|
32
|
-
assert_nothing_raised{ Admin.get_user(@userid) }
|
33
|
-
assert_kind_of(User, Admin.get_user(@user))
|
34
|
-
assert_kind_of(User, Admin.get_user(@userid))
|
35
|
-
assert_raises(Admin::Error){ Admin.get_user("foofoo") }
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_users
|
39
|
-
assert_respond_to(Admin, :users)
|
40
|
-
assert_nothing_raised{ Admin.users }
|
41
|
-
assert_kind_of(Array, Admin.users)
|
42
|
-
assert_kind_of(User, Admin.users.first)
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_users_block_form
|
46
|
-
array = []
|
47
|
-
assert_nothing_raised{ Admin.users{ |g| array << g } }
|
48
|
-
assert_equal(true, Admin.users.length == array.length)
|
49
|
-
assert_nothing_raised{ Admin.users{ |g| break } }
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_get_group
|
53
|
-
assert_respond_to(Admin, :get_group)
|
54
|
-
assert_nothing_raised{ Admin.get_group(@group) }
|
55
|
-
assert_nothing_raised{ Admin.get_group(@groupid) }
|
56
|
-
assert_kind_of(Group, Admin.get_group(@group))
|
57
|
-
assert_kind_of(Group, Admin.get_group(@groupid))
|
58
|
-
assert_raises(Admin::Error){ Admin.get_group("foofoo") }
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_groups
|
62
|
-
assert_respond_to(Admin, :groups)
|
63
|
-
assert_nothing_raised{ Admin.groups }
|
64
|
-
assert_kind_of(Array, Admin.groups)
|
65
|
-
assert_kind_of(Group, Admin.groups.first)
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_groups_block_form
|
69
|
-
array = []
|
70
|
-
assert_nothing_raised{ Admin.groups{ |g| array << g } }
|
71
|
-
assert_equal(true, Admin.groups.length == array.length)
|
72
|
-
assert_nothing_raised{ Admin.groups{ |g| break } }
|
73
|
-
end
|
74
|
-
|
75
|
-
def teardown
|
76
|
-
@user = nil
|
77
|
-
@userid = nil
|
78
|
-
@group = nil
|
79
|
-
@groupid = nil
|
80
|
-
end
|
81
|
-
end
|