def test_account2(client): test_account = client.admin.create_account( '{}@test.com'.format(randstring(6)), randstring(6)) try: yield test_account finally: test_account.delete()
def test_user_management(): email1 = '%s@%s.com' % (randstring(6), randstring(6)) email2 = '%s@%s.com' % (randstring(6), randstring(6)) passwd1 = 'randstring(6)' passwd2 = 'randstring(6)' ccnet_api.add_emailuser(email1, passwd1, 1, 1) ccnet_api.add_emailuser(email2, passwd2, 0, 0) ccnet_email1 = ccnet_api.get_emailuser(email1) ccnet_email2 = ccnet_api.get_emailuser(email2) assert ccnet_email1.is_active == True assert ccnet_email1.is_staff == True assert ccnet_email2.is_active == False assert ccnet_email2.is_staff == False assert ccnet_api.validate_emailuser(email1, passwd1) == 0 assert ccnet_api.validate_emailuser(email2, passwd2) == 0 users = ccnet_api.search_emailusers('DB',email1, -1, -1) assert len(users) == 1 user_ccnet = users[0] assert user_ccnet.email == email1 user_counts = ccnet_api.count_emailusers('DB') user_numbers = ccnet_api.get_emailusers('DB', -1, -1) ccnet_api.update_emailuser('DB', ccnet_email2.id, passwd2, 1, 1) email2_new = ccnet_api.get_emailuser(email2) assert email2_new.is_active == True assert email2_new.is_staff == True ccnet_api.remove_emailuser('DB', email1) ccnet_api.remove_emailuser('DB', email2)
def test_create_delete_file_dir(repo, parentpath): rootdir = repo.get_dir('/') assert len(rootdir.ls()) == 0 if parentpath == '/': parentdir = rootdir else: parentdir = rootdir.mkdir(parentpath[1:]) # create a file testfile = parentdir.create_empty_file('测试文件-%s.txt' % randstring()) assert testfile.size == 0 entries = parentdir.ls(force_refresh=True) assert len(entries) == 1 entry = entries[0] assert entry.path == testfile.path assert entry.id == testfile.id assert entry.size == testfile.size # create a folder testdir = parentdir.mkdir('测试目录-%s' % randstring()) assert len(parentdir.ls()) == 2 assert len(testdir.ls()) == 0 direntry = [entry for entry in parentdir.ls() if entry.isdir][0] assert direntry.path == testdir.path testfile.delete() assert len(parentdir.ls(force_refresh=True)) == 1 testdir.delete() assert len(parentdir.ls(force_refresh=True)) == 0
def test_create_delete_file_dir(repo, parentpath): rootdir = repo.get_dir('/') assert len(rootdir.ls(force_refresh=True)) == 0 if parentpath == '/': parentdir = rootdir else: parentdir = rootdir.mkdir(parentpath[1:]) # create a file testfile = parentdir.create_empty_file('测试文件-%s.txt' % randstring()) assert testfile.size == 0 entries = parentdir.ls(force_refresh=True) assert len(entries) == 1 entry = entries[0] assert entry.path == testfile.path assert entry.id == testfile.id assert entry.size == testfile.size # create a folder testdir = parentdir.mkdir('测试目录-%s' % randstring()) assert len(parentdir.ls(force_refresh=True)) == 2 assert len(testdir.ls(force_refresh=True)) == 0 direntry = [e for e in parentdir.ls(force_refresh=True) if e.isdir][0] assert direntry.path == testdir.path testfile.delete() assert len(parentdir.ls(force_refresh=True)) == 1 testdir.delete() assert len(parentdir.ls(force_refresh=True)) == 0
def repo(client): repo_name = 'tmp-测试资料库-%s' % randstring() repo_desc = 'tmp, 一个测试资料库-%s' % randstring() repo = client.repos.create_repo(repo_name, repo_desc) try: yield repo finally: repo.delete()
def create_tmp_repo(self): repos = self.client.repos repo_name = 'tmp-测试资料库-%s' % randstring() repo_desc = 'tmp, 一个测试资料库-%s' % randstring() repo = repos.create_repo(repo_name, repo_desc) try: yield repo finally: repo.delete()
def test_rename_move_copy(repo, parentpath): rootdir = repo.get_dir('/') assert len(rootdir.ls()) == 0 if parentpath == '/': parentdir = rootdir else: parentdir = rootdir.mkdir(parentpath[1:]) # create a file testfile = parentdir.create_empty_file('测试文件-%s.txt' % randstring()) assert testfile.size == 0 entries = parentdir.ls(force_refresh=True) assert len(entries) == 1 entry = entries[0] assert entry.path == testfile.path assert entry.id == testfile.id assert entry.size == testfile.size # rename a file newfname = 'newfile.txt' testfile.rename(newfname) assert testfile.name == newfname # create a folder testdir = parentdir.mkdir('测试目录-%s' % randstring()) assert len(parentdir.ls()) == 2 assert len(testdir.ls()) == 0 direntry = [entry for entry in parentdir.ls() if entry.isdir][0] assert direntry.path == testdir.path # move a file to the new folder testfile.moveTo(testdir.name, dst_repo=None) assert testfile.name == newfname fileentry = [entry for entry in testdir.ls() if not entry.isdir][0] assert fileentry.path == testfile.path # copy a file to the parent folder filenames.append(testfile) testfile.copyTo(filenames, parentdir.name, dst_repo=None) assert testfile.name == newfname fileentry = [entry for entry in parentdir.ls() if not entry.isdir][0] assert fileentry.path == testfile.path # clean up test directories / files testfile.delete() assert len(parentdir.ls(force_refresh=True)) == 1 testdir.delete() assert len(parentdir.ls(force_refresh=True)) == 0
def _create_repo(client, password=None): repo_name = '测试资料库-%s' % randstring() repo_desc = '一个测试资料库-%s' % randstring() repo = client.repos.create_repo(repo_name, repo_desc, password=password) assert repo.name == repo_name assert repo.desc == repo_desc assert len(repo.id) == 36 assert repo.encrypted == (password is not None) assert repo.owner == 'self' return repo
def _create_repo(self, password=None): repos = self.client.repos repo_name = '测试资料库-%s' % randstring() repo_desc = '一个测试资料库-%s' % randstring() repo = repos.create_repo(repo_name, repo_desc, password=password) self.assertEqual(repo.name, repo_name) self.assertEqual(repo.desc, repo_desc) self.assertHasLen(repo.id, 36) self.assertEqual(repo.encrypted, password != None) self.assertEqual(repo.owner, 'self') return repo
def group(client): group_name = randstring() group = client.groups.add_group(group_name) try: yield group finally: group.delete()
def test_move_file_to_other_repo(client, repo, parentpath): rootdir = repo.get_dir('/') assert len(rootdir.ls(force_refresh=True)) == 0 if parentpath == '/': parentdir = rootdir else: parentdir = rootdir.mkdir(parentpath[1:]) # create a file testfile = parentdir.create_empty_file('测试文件-%s.txt' % randstring()) assert testfile.size == 0 assert len(parentdir.ls(force_refresh=True)) == 1 temp_repo = client.repos.create_repo('temp_repo') try: root_dir = temp_repo.get_dir('/') temp_dir = root_dir.mkdir('temp_dir') assert len(temp_dir.ls(force_refresh=True)) == 0 testfile.moveTo(temp_dir.path, temp_repo.id) assert testfile.path == os.path.join(temp_dir.path, os.path.basename(testfile.path)) assert len(temp_dir.ls(force_refresh=True)) == 1 assert testfile.repo.id == temp_repo.id finally: temp_repo.delete()
def repo(client): repo_name = 'tmp-testLib-%s' % randstring() repo = client.repos.create_repo(repo_name) try: yield repo finally: repo.delete()
def test_move_folder_to_other_repo(client, repo, parentpath): rootdir = repo.get_dir('/') assert len(rootdir.ls(force_refresh=True)) == 0 if parentpath == '/': parentdir = rootdir else: parentdir = rootdir.mkdir(parentpath[1:]) # create a folder testfolder = parentdir.mkdir('测试文件夹-%s' % randstring()) assert testfolder.size == 0 assert len(parentdir.ls(force_refresh=True)) == 1 temp_repo = client.repos.create_repo('temp_repo') try: root_folder = temp_repo.get_dir('/') tempfolder = root_folder.mkdir('tempfolder') assert len(tempfolder.ls(force_refresh=True)) == 0 # move a folder testfolder.moveTo(tempfolder.path, temp_repo.id) assert testfolder.path == os.path.join(tempfolder.path, os.path.basename(testfolder.path)) assert testfolder.repo.id == temp_repo.id assert len(tempfolder.ls(force_refresh=True)) == 1 finally: temp_repo.delete()
def test_upload_string_as_file_content(repo): # test pass as string as file content when upload file rootdir = repo.get_dir('/') fname = u'testfile-%s' % randstring() fcontent = 'line 1\nline 2\n\r' f = rootdir.upload(fcontent, fname) assert f.name == fname assert f.get_content() == fcontent
def group(): group = create_and_get_group('test_group_{}'.format(randstring(10)), USER, gtype=None) try: yield group finally: if ccnet_api.get_group(group.id): ccnet_api.remove_group(group.id)
def repo(): repo = create_and_get_repo( 'testrepo测试-{}'.format(randstring(10)), '', USER, passwd=None ) try: yield repo finally: if seafile_api.get_repo(repo.id): # The repo may be deleted in the test case seafile_api.remove_repo(repo.id)
def test_copy_file(repo, parentpath): rootdir = repo.get_dir('/') assert len(rootdir.ls(force_refresh=True)) == 0 if parentpath == '/': parentdir = rootdir else: parentdir = rootdir.mkdir(parentpath[1:]) # create a file testfile = parentdir.create_empty_file('测试文件-%s.txt' % randstring()) assert testfile.size == 0 assert len(parentdir.ls(force_refresh=True)) == 1 tempfolder = parentdir.mkdir('tempfolder_%s' % randstring()) assert len(tempfolder.ls(force_refresh=True)) == 0 testfile.copyTo(tempfolder.path) assert len(tempfolder.ls(force_refresh=True)) == 1 assert os.path.basename(tempfolder.ls(force_refresh=True)[-1].path) == os.path.basename(testfile.path)
def test_move_folder(repo, parentpath): rootdir = repo.get_dir('/') assert len(rootdir.ls(force_refresh=True)) == 0 if parentpath == '/': parentdir = rootdir else: parentdir = rootdir.mkdir(parentpath[1:]) # create a folder testfolder = parentdir.mkdir('测试文件夹-%s' % randstring()) assert testfolder.size == 0 tempfolder = parentdir.mkdir('temp-folder-%s' % randstring()) assert tempfolder.size == 0 assert len(parentdir.ls(force_refresh=True)) == 2 # move a folder testfolder.moveTo(tempfolder.path) assert testfolder.path == os.path.join(tempfolder.path, os.path.basename(testfolder.path))
def repo(): repo = create_and_get_repo( 'test_repo_{}'.format(randstring(10)), '', USER, passwd=None ) try: seafile_api.post_dir(repo.id, '/', 'dir1', USER) seafile_api.post_dir(repo.id, '/', 'dir2', USER) yield repo finally: if seafile_api.get_repo(repo.id): # The repo may be deleted in the test case seafile_api.remove_repo(repo.id)
def encrypted_repo(): repo = create_and_get_repo( 'test_repo_{}'.format(randstring(10)), '', USER, passwd='123' ) try: syncwerk_api.post_dir(repo.id, '/', 'dir1', USER) syncwerk_api.post_dir(repo.id, '/', 'dir2', USER) syncwerk_api.post_dir(repo.id, '/dir1', 'subdir1', USER) syncwerk_api.post_dir(repo.id, '/dir2', 'subdir2', USER) yield repo finally: if syncwerk_api.get_repo(repo.id): # The repo may be deleted in the test case syncwerk_api.remove_repo(repo.id)
def test_rename_folder(repo, parentpath): rootdir = repo.get_dir('/') assert len(rootdir.ls(force_refresh=True)) == 0 if parentpath == '/': parentdir = rootdir else: parentdir = rootdir.mkdir(parentpath[1:]) # create a folder testfolder = parentdir.mkdir('测试文件夹-%s' % randstring()) assert testfolder.size == 0 assert len(parentdir.ls(force_refresh=True)) == 1 # rename a file newfname = 'newfolder' testfolder.rename(newfname) assert newfname == testfolder.name
def test_rename_file(repo, parentpath): rootdir = repo.get_dir('/') assert len(rootdir.ls(force_refresh=True)) == 0 if parentpath == '/': parentdir = rootdir else: parentdir = rootdir.mkdir(parentpath[1:]) # create a file testfile = parentdir.create_empty_file('测试文件-%s.txt' % randstring()) assert testfile.size == 0 assert len(parentdir.ls(force_refresh=True)) == 1 # rename a file newfname = 'newfile.txt' testfile.rename(newfname) assert newfname == testfile.name
def test_create_encrypted_repo(self): repo = self._create_repo(password=randstring()) repo.delete() with self.assertRaises(DoesNotExist): self.client.repos.get_repo(repo.id)
def test_create_encrypted_repo(client): repo = _create_repo(client, password=randstring()) repo.delete() with pytest.raises(DoesNotExist): client.repos.get_repo(repo.id)
#coding: UTF-8 import os import pytest from tests.utils import randstring, datafile, filesize @pytest.mark.parametrize('parentpath', ['/', '/测试目录一-%s' % randstring()]) def test_create_delete_file_dir(repo, parentpath): rootdir = repo.get_dir('/') assert len(rootdir.ls(force_refresh=True)) == 0 if parentpath == '/': parentdir = rootdir else: parentdir = rootdir.mkdir(parentpath[1:]) # create a file testfile = parentdir.create_empty_file('测试文件-%s.txt' % randstring()) assert testfile.size == 0 entries = parentdir.ls(force_refresh=True) assert len(entries) == 1 entry = entries[0] assert entry.path == testfile.path assert entry.id == testfile.id assert entry.size == testfile.size # create a folder
#coding: UTF-8 import os import pytest from tests.utils import randstring, datafile, filesize @pytest.mark.parametrize('parentpath', [ '/', '/testDir-%s' % randstring() ]) def test_create_delete_file_dir(repo, parentpath): rootdir = repo.get_dir('/') assert len(rootdir.ls(force_refresh=True)) == 0 if parentpath == '/': parentdir = rootdir else: parentdir = rootdir.mkdir(parentpath[1:]) # create a file testfile = parentdir.create_empty_file('测试文件-%s.txt' % randstring()) assert testfile.size == 0 entries = parentdir.ls(force_refresh=True) assert len(entries) == 1 entry = entries[0] assert entry.path == testfile.path assert entry.id == testfile.id assert entry.size == testfile.size
#coding: UTF-8 import pytest from tests.utils import randstring, datafile, filesize @pytest.mark.parametrize('parentpath', [ '/', '/测试目录一-%s' % randstring() ]) def test_create_delete_file_dir(repo, parentpath): rootdir = repo.get_dir('/') assert len(rootdir.ls()) == 0 if parentpath == '/': parentdir = rootdir else: parentdir = rootdir.mkdir(parentpath[1:]) # create a file testfile = parentdir.create_empty_file('测试文件-%s.txt' % randstring()) assert testfile.size == 0 entries = parentdir.ls(force_refresh=True) assert len(entries) == 1 entry = entries[0] assert entry.path == testfile.path assert entry.id == testfile.id assert entry.size == testfile.size
import pytest from tests.utils import randstring def test_accounts_list(client): accounts = client.admin.list_accounts() assert len(accounts) > 0 def test_server_info(client): info = client.admin.server_info() assert 'version' in info @pytest.mark.parametrize('password', [randstring(6)]) @pytest.mark.parametrize('name', [randstring(6)]) @pytest.mark.parametrize('email', ['{}@test.com'.format(randstring(6))]) def test_cud_account(client, email, password, Account, name): # create account test_account = client.admin.create_account(email, password) assert isinstance(test_account, Account) assert client.admin.get_account(test_account.email) == test_account # upadte account fields test_account.name = name test_account.is_staff = True test_account.is_active = True #test_account.update() assert test_account.name == name assert test_account in client.admin.list_accounts(start=-1, limit=-1)
#coding: UTF-8 import os import sys import pytest from tests.utils import randstring, datafile, filesize @pytest.mark.parametrize('parentpath', [ '/', '/测试目录一-%s' % randstring() ]) def test_create_delete_file_dir(repo, parentpath): rootdir = repo.get_dir('/') assert len(rootdir.ls(force_refresh=True)) == 0 if parentpath == '/': parentdir = rootdir else: parentdir = rootdir.mkdir(parentpath[1:]) # create a file testfile = parentdir.create_empty_file('测试文件-%s.txt' % randstring()) assert testfile.size == 0 entries = parentdir.ls(force_refresh=True) assert len(entries) == 1 entry = entries[0] assert entry.path == testfile.path assert entry.id == testfile.id
def test_multi_tier_groups(repo): id1 = ccnet_api.create_group('group1', USER, parent_group_id=-1) id2 = ccnet_api.create_group('group2', USER2, parent_group_id = id1) id3 = ccnet_api.create_group('group3', USER, parent_group_id = id1) id4 = ccnet_api.create_group('group4', USER2, parent_group_id = id3) id5 = ccnet_api.create_group('group5', USER2, parent_group_id = 0) assert id1 != -1 and id2 != -1 and id3 != -1 and id4 != -1 group1 = ccnet_api.get_group(id1) group2 = ccnet_api.get_group(id2) group3 = ccnet_api.get_group(id3) group4 = ccnet_api.get_group(id4) assert group1.parent_group_id == -1 assert group2.parent_group_id == id1 assert group3.parent_group_id == id1 assert group4.parent_group_id == id3 members = ccnet_api.search_group_members (id1, 'randgroup{}'.format(randstring(6))) assert len(members) == 0 members = ccnet_api.search_group_members (id1, USER) assert len(members) == 1 assert members[0].user_name == USER ances_order = [id5, id4, id3, id2, id1] user2_groups_with_ancestors = ccnet_api.get_groups (USER2, return_ancestors = True) assert len(user2_groups_with_ancestors) == 5 i = 0 for g in user2_groups_with_ancestors: assert g.id == ances_order[i] i = i + 1 order = [id5, id4, id2] i = 0 user2_groups = ccnet_api.get_groups (USER2) assert len(user2_groups) == 3 for g in user2_groups: assert g.id == order[i] i = i + 1 top_groups = ccnet_api.get_top_groups(True) assert len(top_groups) == 1 for g in top_groups: assert g.parent_group_id == -1 child_order = [id2, id3] i = 0 id1_children = ccnet_api.get_child_groups(id1) assert len(id1_children) == 2 for g in id1_children: assert g.id == child_order[i] i = i + 1 group4_order = [id1, id3, id4] i = 0 group4_ancestors = ccnet_api.get_ancestor_groups(id4) assert len(group4_ancestors) == 3 for g in group4_ancestors: assert g.id == group4_order[i] i = i + 1 rm5 = ccnet_api.remove_group(id5) rm4 = ccnet_api.remove_group(id4) rm3 = ccnet_api.remove_group(id3) rm2 = ccnet_api.remove_group(id2) rm1 = ccnet_api.remove_group(id1) assert rm5 == 0 and rm4 == 0 and rm3 == 0 and rm2 == 0 and rm1 == 0
def test_user_management(repo): email1 = '%s@%s.com' % (randstring(6), randstring(6)) email2 = '%s@%s.com' % (randstring(6), randstring(6)) passwd1 = 'randstring(6)' passwd2 = 'randstring(6)' ccnet_api.add_emailuser(email1, passwd1, 1, 1) ccnet_api.add_emailuser(email2, passwd2, 0, 0) ccnet_email1 = ccnet_api.get_emailuser(email1) ccnet_email2 = ccnet_api.get_emailuser(email2) assert ccnet_email1.is_active == True assert ccnet_email1.is_staff == True assert ccnet_email2.is_active == False assert ccnet_email2.is_staff == False assert ccnet_api.validate_emailuser(email1, passwd1) == 0 assert ccnet_api.validate_emailuser(email2, passwd2) == 0 users = ccnet_api.search_emailusers('DB', email1, -1, -1) assert len(users) == 1 user_ccnet = users[0] assert user_ccnet.email == email1 user_counts = ccnet_api.count_emailusers('DB') user_numbers = ccnet_api.get_emailusers('DB', -1, -1) ccnet_api.update_emailuser('DB', ccnet_email2.id, passwd2, 1, 1) email2_new = ccnet_api.get_emailuser(email2) assert email2_new.is_active == True assert email2_new.is_staff == True #test group when update user id id1 = ccnet_api.create_group('group1', email1, parent_group_id=-1) assert id1 != -1 group1 = ccnet_api.get_group(id1) assert group1.parent_group_id == -1 # test shared repo when update user id api.share_repo(repo.id, USER, email1, "rw") assert api.repo_has_been_shared(repo.id) new_email1 = '%s@%s.com' % (randstring(6), randstring(6)) assert ccnet_api.update_emailuser_id(email1, new_email1) == 0 shared_users = api.list_repo_shared_to(USER, repo.id) assert len(shared_users) == 1 assert shared_users[0].repo_id == repo.id assert shared_users[0].user == new_email1 assert shared_users[0].perm == "rw" api.remove_share(repo.id, USER, new_email1) email1_groups = ccnet_api.get_groups(new_email1) assert len(email1_groups) == 1 assert email1_groups[0].id == id1 rm1 = ccnet_api.remove_group(id1) assert rm1 == 0 ccnet_api.remove_emailuser('DB', new_email1) ccnet_api.remove_emailuser('DB', email2)