diff options
Diffstat (limited to 'rdiff-backup/testing')
-rw-r--r-- | rdiff-backup/testing/commontest.py | 8 | ||||
-rw-r--r-- | rdiff-backup/testing/user_grouptest.py | 55 |
2 files changed, 62 insertions, 1 deletions
diff --git a/rdiff-backup/testing/commontest.py b/rdiff-backup/testing/commontest.py index b60018d..4cfac90 100644 --- a/rdiff-backup/testing/commontest.py +++ b/rdiff-backup/testing/commontest.py @@ -1,5 +1,5 @@ """commontest - Some functions and constants common to several test cases""" -import os, sys +import os, sys, code from rdiff_backup.log import Log from rdiff_backup.rpath import RPath from rdiff_backup import Globals, Hardlink, SetConnections, Main, \ @@ -363,3 +363,9 @@ def MirrorTest(source_local, dest_local, list_of_dirnames, _reset_connections(src_rp, dest_rp) assert CompareRecursive(src_rp, dest_rp, compare_hardlinks) Main.force = old_force_val + +def raise_interpreter(use_locals = None): + """Start python interpreter, with local variables if locals is true""" + if use_locals: local_dict = locals() + else: local_dict = globals() + code.InteractiveConsole(local_dict).interact() diff --git a/rdiff-backup/testing/user_grouptest.py b/rdiff-backup/testing/user_grouptest.py new file mode 100644 index 0000000..a103ee7 --- /dev/null +++ b/rdiff-backup/testing/user_grouptest.py @@ -0,0 +1,55 @@ +import unittest, pwd, grp, code +from commontest import * +from rdiff_backup import user_group + + +class UserGroupTest(unittest.TestCase): + """Test user and group functionality""" + def test_basic_conversion(self): + """Test basic id2name. May need to modify for different systems""" + user_group.uid2uname_dict = {}; user_group.gid2gname_dict = {} + assert user_group.uid2uname(0) == "root" + assert user_group.uid2uname(0) == "root" + assert user_group.gid2gname(0) == "root" + assert user_group.gid2gname(0) == "root" + + def test_default_mapping(self): + """Test the default user mapping""" + Globals.isdest = 1 + rootid = 0 + binid = pwd.getpwnam('bin')[2] + syncid = pwd.getpwnam('sync')[2] + user_group.init_user_mapping() + assert user_group.UserMap.get_id(0) == 0 + assert user_group.UserMap.get_id(0, 'bin') == binid + assert user_group.UserMap.get_id(binid, 'sync') == syncid + + def test_user_mapping(self): + """Test the user mapping file through the DefinedMap class""" + mapping_string = """ +root:bin +bin:root +500:501 +0:sync +sync:0""" + Globals.isdest = 1 + rootid = 0 + binid = pwd.getpwnam('bin')[2] + syncid = pwd.getpwnam('sync')[2] + daemonid = pwd.getpwnam('daemon')[2] + user_group.init_user_mapping(mapping_string) + + assert user_group.UserMap.get_id(rootid, 'root') == binid + assert user_group.UserMap.get_id(binid, 'bin') == rootid + assert user_group.UserMap.get_id(0) == syncid + assert user_group.UserMap.get_id(syncid, 'sync') == 0 + assert user_group.UserMap.get_id(500) == 501 + + assert user_group.UserMap.get_id(501) == 501 + assert user_group.UserMap.get_id(123, 'daemon') == daemonid + + if 0: code.InteractiveConsole(globals()).interact() + + + +if __name__ == "__main__": unittest.main() |