diff options
Diffstat (limited to 'src/account/test/methods.py')
-rw-r--r-- | src/account/test/methods.py | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/src/account/test/methods.py b/src/account/test/methods.py index c0407df..ffb9f7d 100644 --- a/src/account/test/methods.py +++ b/src/account/test/methods.py @@ -20,6 +20,20 @@ import subprocess +def user_exists(username): + """ + Return true/false if user does/does not exists + """ + got = field_in_passwd(username, 0) + return got == username + +def group_exists(groupname): + """ + Return true/false if user does/does not exists + """ + got = field_in_group(groupname, 0) + return got == groupname + def field_in_passwd(username, number): """ Return numberth field in /etc/passwd for given username @@ -48,33 +62,36 @@ def clean_account(user_name): """ Force to delete testing account and remove home dir """ - subprocess.call(["userdel", "-fr", user_name]) - # groups should be expicitely deleted - subprocess.call(["groupdel", user_name]) - subprocess.call(["rm", "-fr", "/home/%s" %user_name]) + if user_exists(user_name): + subprocess.check_call(["userdel", "-fr", user_name]) + if group_exists(user_name): + # groups should be expicitely deleted + subprocess.check_call(["groupdel", user_name]) def add_user_to_group(user_name, group_name): """ Will add user to group """ - subprocess.call(["usermod", "-a", "-G", group_name, user_name]) + subprocess.check_call(["usermod", "-a", "-G", group_name, user_name]) def create_account(user_name): """ Force to create account; run clean_account before creation """ - clean_account(user_name) - subprocess.call(["useradd", user_name]) + if not user_exists(user_name): + subprocess.check_call(["useradd", user_name]) def clean_group(group_name): """ Force to delete testing group """ - subprocess.call(["groupdel", group_name]) + if group_exists(group_name): + subprocess.check_call(["groupdel", group_name]) def create_group(group_name): """ Force to create group """ - clean_group(group_name) - subprocess.call(["groupadd", group_name]) + if not group_exists(group_name): + subprocess.check_call(["groupadd", group_name]) + |