specify posix.pwd: - before: pwd = require "posix.pwd" - describe endpwent: - before: endpwent = pwd.endpwent - context with bad arguments: badargs.diagnose (endpwent, "()") - it returns 'nil': expect (endpwent ()).to_be (nil) - it rewinds the passwd database: p = pwd.getpwent () pwd.getpwent () endpwent () expect (pwd.getpwent ()).to_equal (p) - describe getpwent: - before: getpwent = pwd.getpwent - context with bad arguments: badargs.diagnose (getpwent, "()") - it returns a PosixPasswd for an existing user: expect (prototype (getpwent ())).to_be "PosixPasswd" - it fetches a different user on subsequent calls: p = getpwent () expect (getpwent ()).not_to_equal (p) - it returns nil after the last entry was fetched: p = getpwent () while (p) do q = getpwent () expect (p).not_to_equal (q) p = q end expect (p).to_be (nil) pwd.endpwent () - describe getpwnam: - before: getpwuid, getpwnam = posix.getpwuid, posix.getpwnam - context with bad arguments: badargs.diagnose (getpwnam, "(string)") - it returns 'nil' for a non-existent user: expect (getpwnam "veryunlikelyusername").to_be (nil) - it returns a PosixPasswd for an existing user: expect (prototype (getpwnam "root")).to_be "PosixPasswd" - it fetches a passwd entry by name: expect (getpwnam ("root").pw_name).to_be "root" expect (getpwnam ("root").pw_uid).to_be (0) expect (getpwnam ("root").pw_gid).to_be (0) expect (type (getpwnam ("root").pw_dir)).to_be "string" expect (type (getpwnam ("root").pw_shell)).to_be "string" - describe getpwuid: - before: getpwuid = posix.getpwuid - context with bad arguments: badargs.diagnose (getpwuid, "(int)") - it returns a PosixPasswd for an existing user: expect (prototype (getpwuid (0))).to_be "PosixPasswd" - it fetches a passwd entry by gid: expect (getpwuid (0).pw_name).to_be "root" expect (getpwuid (0).pw_uid).to_be (0) expect (getpwuid (0).pw_gid).to_be (0) expect (type (getpwuid (0).pw_dir)).to_be "string" expect (type (getpwuid (0).pw_shell)).to_be "string" - describe setpwent: - before: setpwent = pwd.setpwent - context with bad arguments: badargs.diagnose (setpwent, "()") - it returns 'nil': expect (setpwent ()).to_be (nil) - it rewinds the passwd database: p = pwd.getpwent () pwd.getpwent () setpwent () expect (pwd.getpwent ()).to_equal (p)