summaryrefslogtreecommitdiffstats
path: root/src/account/test/methods.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/account/test/methods.py')
-rw-r--r--src/account/test/methods.py37
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])
+