Best Python code snippet using autotest_python
test_baton_api.py
Source:test_baton_api.py  
...20from serapis.storage.irods.baton_mappings import ACLMapping21# DATA OBJECT - related tests:22class GetACLSBatonDataObjectAPITest(unittest.TestCase):23    def test_get_acls_data_object(self):24        result = BatonDataObjectAPI._get_acls("/humgen/projects/serapis_staging/test-baton/test_acls.txt")25        expected = {ACL(user='ic4', zone='humgen', permission='READ'),26                    ACL(user='ic4', zone='Sanger1', permission='READ'),27                    ACL(user='humgenadmin', zone='humgen', permission='OWN'),28                    ACL(user='mercury', zone='Sanger1', permission='OWN'),29                    ACL(user='irods', zone='humgen', permission='OWN'),30                    ACL(user='serapis', zone='humgen', permission='OWN')31        }32        self.assertSetEqual(result, expected)33class AddOrReplaceACLBatonDataObjectAPITest(unittest.TestCase):34    def setUp(self):35        self.fpath = "/humgen/projects/serapis_staging/test-baton/test_add_acls.txt"36        BatonDataObjectAPI.remove_all_acls(self.fpath)37    def tearDown(self):38        BatonDataObjectAPI.remove_all_acls(self.fpath)39    def test_get_or_replace_acls_when_adding_a_new_acl(self):40        added_acl = ACL(user='mp15', zone='humgen', permission='OWN')41        BatonDataObjectAPI.add_or_replace_acl(self.fpath, added_acl)42        acls_set = BatonDataObjectAPI.get_acls(self.fpath)43        found = False44        for acl in acls_set:45            if acl == added_acl:46                found = True47        self.assertTrue(found)48    def test_get_or_replace_acls_when_replacing_an_acl(self):49        added_acl = ACL(user='cn13', zone='humgen', permission='OWN')50        BatonDataObjectAPI.add_or_replace_acl(self.fpath, added_acl)51        acls_set = BatonDataObjectAPI.get_acls(self.fpath)52        self.assertSetEqual(acls_set, {added_acl})53        replacement_acl = ACL(user='cn13', zone='humgen', permission='READ')54        BatonDataObjectAPI.add_or_replace_acl(self.fpath, replacement_acl)55        acls_set = BatonDataObjectAPI.get_acls(self.fpath)56        self.assertSetEqual(acls_set, {replacement_acl})57class AddOrReplaceAsBatchDataObjectAPITest(unittest.TestCase):58    def setUp(self):59        self.fpath = "/humgen/projects/serapis_staging/test-baton/test_add_acls.txt"60        BatonDataObjectAPI.remove_all_acls(self.fpath)61    def test_add_or_replace_a_list_of_acls(self):62        self.acls = [63            ACL(user='cn13', zone='humgen', permission='READ'),64            ACL(user='mp15', zone='humgen', permission='READ')65        ]66        BatonDataObjectAPI.add_or_replace_a_list_of_acls(self.fpath, self.acls)67        self.acls_set = BatonDataObjectAPI.get_acls(self.fpath)68        self.assertEqual(len(self.acls_set), 2)69class RemoveACLsForAListOfUsersDataObjectAPITest(unittest.TestCase):70    def setUp(self):71        self.fpath = "/humgen/projects/serapis_staging/test-baton/test_add_acls.txt"72        BatonDataObjectAPI.remove_all_acls(self.fpath)73        self.acl = ACL(user='cn13', zone='humgen', permission='READ')74        BatonDataObjectAPI.add_or_replace_acl(self.fpath, self.acl)75        existing_acls = BatonDataObjectAPI.get_acls(self.fpath)76        self.assertEqual(len(existing_acls), 1)77    def test_remove_acls_for_a_list_of_users(self):78        BatonDataObjectAPI.remove_acls_for_a_list_of_users(self.fpath, [(self.acl.user, self.acl.zone)])79        existing_acls = BatonDataObjectAPI.get_acls(self.fpath)80        self.assertEqual(0, len(existing_acls))81    def tearDown(self):82        BatonDataObjectAPI.remove_all_acls(self.fpath)83class RemoveACLForUserDataObjectAPITest(unittest.TestCase):84    def setUp(self):85        self.fpath = "/humgen/projects/serapis_staging/test-baton/test_add_acls.txt"86        BatonDataObjectAPI.remove_all_acls(self.fpath)87        self.acl = ACL(user='cn13', zone='humgen', permission='READ')88        BatonDataObjectAPI.add_or_replace_acl(self.fpath, self.acl)89        existing_acls = BatonDataObjectAPI.get_acls(self.fpath)90        self.assertEqual(len(existing_acls), 1)91    def test_remove_acls_for_a_list_of_users(self):92        BatonDataObjectAPI.remove_acls_for_a_list_of_users(self.fpath, [(self.acl.user, self.acl.zone)])93        existing_acls = BatonDataObjectAPI.get_acls(self.fpath)94        self.assertEqual(0, len(existing_acls))95    def tearDown(self):96        BatonDataObjectAPI.remove_all_acls(self.fpath)97class RemoveAllACLSBatonDataObjectAPITest(unittest.TestCase):98    def setUp(self):99        self.fpath = "/humgen/projects/serapis_staging/test-baton/test_add_acls.txt"100        self.acls = [101            ACL(user='cn13', zone='humgen', permission='READ'),102            ACL(user='mp15', zone='humgen', permission='READ')103        ]104        BatonDataObjectAPI.add_or_replace_a_list_of_acls(self.fpath, self.acls)105        self.acls_set = BatonDataObjectAPI.get_acls(self.fpath)106        self.assertNotEqual(len(self.acls_set), 0)107    def test_remove_all_acls(self):108        BatonDataObjectAPI.remove_all_acls(self.fpath)109        acls_set = BatonDataObjectAPI.get_acls(self.fpath)110        self.assertEqual(set(), acls_set)111class AddMetadataBatonDataObjectAPITest(unittest.TestCase):112    def setUp(self):113        self.fpath = "/humgen/projects/serapis_staging/test-baton/test_metadata_add_rm.txt"114        self.meta_dict = {'sample': {'sample2'}, 'sample_id': {'-1'}}115    def test_add_metadata(self):116        BatonDataObjectAPI.add_metadata(self.fpath, self.meta_dict)117        metadata = BatonDataObjectAPI.get_all_metadata(self.fpath).to_dict()118        self.assertDictEqual(self.meta_dict, metadata)119    def tearDown(self):120        BatonDataObjectAPI.remove_metadata(self.fpath, self.meta_dict)121class RemoveMetadataBatonDataObjectAPITest(unittest.TestCase):122    def setUp(self):123        self.fpath = "/humgen/projects/serapis_staging/test-baton/test_metadata_add_rm.txt"124        self.meta_dict = {'sample': {'sample2'}, 'sample_id': {'-1'}}125        self.previous_meta = BatonDataObjectAPI.get_all_metadata(self.fpath)126        BatonDataObjectAPI.add_metadata(self.fpath, self.meta_dict)127    def test_remove_metadata(self):128        BatonDataObjectAPI.remove_metadata(self.fpath, self.meta_dict)129        crt_meta = BatonDataObjectAPI.get_all_metadata(self.fpath)130        self.assertEqual(crt_meta, self.previous_meta)131class UpdateMetadataBatonDataObjectAPITest(unittest.TestCase):132    def setUp(self):133        self.fpath = "/humgen/projects/serapis_staging/test-baton/test_metadata_add_rm.txt"134        BatonDataObjectAPI.add_metadata(self.fpath, {'uniq_key': {'first_value'}})135    def test_update_metadata(self):136        BatonDataObjectAPI.update_metadata(self.fpath, 'uniq_key', {'second_value'})137        updated_meta = BatonDataObjectAPI.get_all_metadata(self.fpath)138        values = updated_meta.get_avu('uniq_key')139        self.assertEqual(values, {'second_value'})140    def tearDown(self):141        BatonDataObjectAPI.remove_metadata(self.fpath, {'uniq_key': {'second_value'}})142class AddMetadataBatonCollectionAPITest(unittest.TestCase):143    def setUp(self):144        self.coll_path = "/humgen/projects/serapis_staging/test-baton/test_coll_metadata"145        self.meta_dict = {'key1': {'val1'}}146    def test_add_metadata(self):147        BatonCollectionAPI.add_metadata(self.coll_path, self.meta_dict)148        crt_meta_dict = BatonCollectionAPI.get_all_metadata(self.coll_path).to_dict()149        self.assertTrue('key1' in crt_meta_dict)150    def tearDown(self):151        BatonCollectionAPI.remove_metadata(self.coll_path, self.meta_dict)152class RemoveMetadataBatonCollectionAPITest(unittest.TestCase):153    def setUp(self):154        self.coll_path = "/humgen/projects/serapis_staging/test-baton/test_coll_metadata"155        self.meta_dict = {'key1': {'val1'}}156        BatonCollectionAPI.add_metadata(self.coll_path, self.meta_dict)157        crt_meta = BatonCollectionAPI.get_all_metadata(self.coll_path).to_dict()158        self.assertTrue('key1' in crt_meta)159    def test_rm_metadata(self):160        BatonCollectionAPI.remove_metadata(self.coll_path, self.meta_dict)161        new_meta = BatonCollectionAPI.get_all_metadata(self.coll_path).to_dict()162        self.assertFalse('key1' in new_meta)163class UpdateMetadataBatonCollectionAPITest(unittest.TestCase):164    def setUp(self):165        self.coll_path = "/humgen/projects/serapis_staging/test-baton/test_coll_metadata"166        self.meta_dict = {'key1': {'val1'}}167        BatonCollectionAPI.add_metadata(self.coll_path, self.meta_dict)168        crt_meta = BatonCollectionAPI.get_all_metadata(self.coll_path).to_dict()169        self.assertTrue('key1' in crt_meta)170    def test_update_metadata(self):171        BatonCollectionAPI.update_metadata(self.coll_path, 'key1', {'val2'})172        crt_meta = BatonCollectionAPI.get_all_metadata(self.coll_path).to_dict()173        self.assertTrue('key1' in crt_meta)174        self.assertSetEqual(crt_meta['key1'], {'val2'})175    def tearDown(self):176        BatonCollectionAPI.remove_metadata(self.coll_path, {'key1': {'val2'}})177class ListContentsBatonCollectionAPITest(unittest.TestCase):178    def setUp(self):179        self.coll_path = "/humgen/projects/serapis_staging/test-baton/test_coll_metadata"180    def test_list_contents(self):181        contents = BatonCollectionAPI.list_data_objects(self.coll_path)182        self.assertEqual(len(contents), 1)183        self.assertEqual(contents[0], "/humgen/projects/serapis_staging/test-baton/test_coll_metadata/test_list_coll.txt")184# ABSTRACT - NOT IMPLEMENTED METHODS TESTS:185class AbstractMethodsTests(unittest.TestCase):186    def test_get_connection(self):187        self.assertRaises(NotImplementedError, BatonBasicAPI._get_connection)188    def test_upload_basic(self):189        self.assertRaises(NotImplementedError, BatonBasicAPI.upload, '', '')190    def test_remove_basic(self):191        self.assertRaises(NotImplementedError, BatonBasicAPI.remove, '')192    def test_move_basic(self):193        self.assertRaises(NotImplementedError, BatonBasicAPI.move, '', '')194    def test_upload_data_object(self):195        self.assertRaises(NotImplementedError, BatonDataObjectAPI.upload, '', '')196    def test_remove_data_object(self):197        self.assertRaises(NotImplementedError, BatonDataObjectAPI.remove, '')198    def test_move_data_object(self):199        self.assertRaises(NotImplementedError, BatonDataObjectAPI.move, '', '')200    def test_upload_collection(self):201        self.assertRaises(NotImplementedError, BatonCollectionAPI.upload, '', '')202    def test_remove_collection(self):203        self.assertRaises(NotImplementedError, BatonCollectionAPI.remove, '')204    def test_move_collection(self):205        self.assertRaises(NotImplementedError, BatonCollectionAPI.move, '', '')206# COLLECTION - RELATED TESTS:207class GetACLSBatonCollectionAPITest(unittest.TestCase):208    def setUp(self):209        self.path = "/humgen/projects/serapis_staging/test-baton/test-collection-acls"210        BatonCollectionAPI.remove_all_acls(self.path)211        BatonCollectionAPI.add_or_replace_a_list_of_acls(self.path,212                                                         [ACL(user='ic4', zone='humgen', permission='OWN'),213                                                        ACL(user='ic4', zone='Sanger1', permission='READ')])214    def test_get_acls_collection(self):215        # TODO: modify the test so that it removes everything, and then adds the ACls before checking on their existence216        result = BatonCollectionAPI._get_acls(self.path)217        expected = {218                    ACL(user='ic4', zone='humgen', permission='OWN'),219                    ACL(user='ic4', zone='Sanger1', permission='READ'),220        }221        self.assertSetEqual(result, expected)222# class GetACLSBatonCollectionAPITest2(unittest.TestCase):223#     def test_trigger_exception(self):224#         result = BatonCollectionAPI.get_acls('/smth/non-existing')225#         print("Results from trigger exception test; %s" % result)226   #     self.assertEqual(1,2)227class RemoveAllACLSBatonCollectionAPITest(unittest.TestCase):228    def setUp(self):229        self.fpath = "/humgen/projects/serapis_staging/test-baton/test-collection-acls"230        self.acls = [231            ACL(user='cn13', zone='humgen', permission='READ'),232            ACL(user='mp15', zone='humgen', permission='READ')233        ]234        BatonCollectionAPI.add_or_replace_a_list_of_acls(self.fpath, self.acls)235        self.acls_set = BatonCollectionAPI.get_acls(self.fpath)236        self.assertNotEqual(len(self.acls_set), 0)237    def test_remove_all_acls(self):238        BatonCollectionAPI.remove_all_acls(self.fpath)239        acls_set = BatonCollectionAPI.get_acls(self.fpath)240        self.assertEqual(set(), acls_set)241class RemoveACLForUserCollectionAPITest(unittest.TestCase):242    def setUp(self):243        self.path = "/humgen/projects/serapis_staging/test-baton/test-collection-acls"244        BatonCollectionAPI.remove_all_acls(self.path)245        self.acl = ACL(user='cn13', zone='humgen', permission='READ')246        BatonCollectionAPI.add_or_replace_acl(self.path, self.acl)247        existing_acls = BatonCollectionAPI.get_acls(self.path)248        self.assertEqual(len(existing_acls), 1)249    def test_remove_acls_for_a_list_of_users(self):250        BatonCollectionAPI.remove_acls_for_a_list_of_users(self.path, [(self.acl.user, self.acl.zone)])251        existing_acls = BatonCollectionAPI.get_acls(self.path)252        self.assertEqual(0, len(existing_acls))253    def tearDown(self):254        BatonCollectionAPI.remove_all_acls(self.path)255class RemoveACLsForAListOfUsersCollectionAPITest(unittest.TestCase):256    def setUp(self):257        self.path = "/humgen/projects/serapis_staging/test-baton/test-collection-acls"258        BatonCollectionAPI.remove_all_acls(self.path)259        self.acl = ACL(user='cn13', zone='humgen', permission='READ')260        BatonCollectionAPI.add_or_replace_acl(self.path, self.acl)261        existing_acls = BatonCollectionAPI.get_acls(self.path)262        self.assertEqual(len(existing_acls), 1)263    def test_remove_acls_for_a_list_of_users(self):264        BatonCollectionAPI.remove_acls_for_a_list_of_users(self.path, [(self.acl.user, self.acl.zone)])265        existing_acls = BatonCollectionAPI.get_acls(self.path)266        self.assertEqual(0, len(existing_acls))267    def tearDown(self):268        BatonCollectionAPI.remove_all_acls(self.path)269class AddOrReplaceACLBatonCollectionAPITest(unittest.TestCase):270    def setUp(self):271        self.path = "/humgen/projects/serapis_staging/test-baton/test-collection-acls"272        BatonCollectionAPI.remove_all_acls(self.path)273    def tearDown(self):274        BatonCollectionAPI.remove_all_acls(self.path)275    def test_get_or_replace_acls_when_adding_a_new_acl(self):276        added_acl = ACL(user='mp15', zone='humgen', permission='OWN')277        BatonCollectionAPI.add_or_replace_acl(self.path, added_acl)278        acls_set = BatonCollectionAPI.get_acls(self.path)279        found = False280        for acl in acls_set:281            if acl == added_acl:282                found = True283        self.assertTrue(found)284    def test_get_or_replace_acls_when_replacing_an_acl(self):285        added_acl = ACL(user='cn13', zone='humgen', permission='OWN')286        BatonCollectionAPI.add_or_replace_acl(self.path, added_acl)287        acls_set = BatonCollectionAPI.get_acls(self.path)288        self.assertSetEqual(acls_set, {added_acl})289        replacement_acl = ACL(user='cn13', zone='humgen', permission='READ')290        BatonCollectionAPI.add_or_replace_acl(self.path, replacement_acl)291        acls_set = BatonCollectionAPI.get_acls(self.path)292        self.assertSetEqual(acls_set, {replacement_acl})293class AddOrReplaceAsBatchCollectionAPITest(unittest.TestCase):294    def setUp(self):295        self.path = "/humgen/projects/serapis_staging/test-baton/test-collection-acls"296        BatonCollectionAPI.remove_all_acls(self.path)297    def test_add_or_replace_a_list_of_acls(self):298        self.acls = [299            ACL(user='cn13', zone='humgen', permission='READ'),300            ACL(user='mp15', zone='humgen', permission='READ')301        ]302        BatonCollectionAPI.add_or_replace_a_list_of_acls(self.path, self.acls)303        self.acls_set = BatonCollectionAPI.get_acls(self.path)...test_setaccess.py
Source:test_setaccess.py  
1import unittest2from unittest import TestCase3import setaccess4class TestRequestPermissions(unittest.TestCase):5    def test_get_acls(self):6        # (self, lab, members, request, request_name, request_members, groups, fastqs):7        p = setaccess.RequestPermissions("labX",8                                         [{"pi": "kunga","member": "kunga","group": False}],9                                         "08822", "DLP",10                                         [{'request': '08822', 'member': 'mcmanamd', 'group': False}],11                                         ["cmoigo", "bicigo"],12                                         [" vialea"],  # dataAccessEmails13                                         ["none"])14        print("ACL access list:\n" + p.get_acls())15        self.assertIn("A:g:bicigo@hpc.private:rxtncy", p.get_acls())16        self.assertIn("A::kunga@hpc.private:rxtncy", p.get_acls())17        self.assertIn("A::mcmanamd@hpc.private:rxtncy", p.get_acls())18        self.assertIn("A::vialea@hpc.private:rxtncy", p.get_acls())19        self.assertIn("A::grewald@hpc.private:rxtncy", p.get_acls())20        self.assertIn("A::GROUP@:rxtncCy", p.get_acls())21class Test(TestCase):22    def test_get_request_metadata(self):23        p = setaccess.get_request_metadata("08822", "none")24        print("Lab members for 08822 {}".format(p.members))25        print("Lab request members for 08822 {}".format(p.request_members))26        self.assertEqual("shuklan", p.lab)27    def test_get_request_metadata_invalid_request(self):28        p = setaccess.get_request_metadata("08822_XXX", "none")29        print("No information found from endpoint for: {}".format(p))...get_acls.py
Source:get_acls.py  
1# -*- coding: utf-8 -*-2import argparse3from . import cfg4from . import util5def get_acls(path, zkCli, server, config=None, auth=None):6    cmd = 'getAcl %s' % (path)7    auth_str = util.auth_to_auth_str(auth)8    stdout_list, stderr_list = util.exec(cmd, zkCli, server, config, auth_str)9    valid_stdout_list = util.filter_valid_list(stdout_list, ["'sasl", "'world", "'digest", ':'])10    if len(valid_stdout_list) % 2 != 0:11        cfg.logger.error('get_acls: not parse correctly: valid_stdout_list: %s', valid_stdout_list)12        return []13    acls = [''.join(valid_stdout_list[i:i + 2]).replace("'", '').replace(',', ':').replace(' ', '') for i in range(0, len(valid_stdout_list), 2)]14    return acls15def parse_args():16    ''' '''17    parser = argparse.ArgumentParser(description='zookeeper_util: get_children')18    parser.add_argument('-i', '--ini', type=str, required=True, help="ini filename")19    parser.add_argument('-p', '--path', type=str, required=True, help="path")20    parser.add_argument('-l', '--log_filename', type=str, default='', required=False, help="log filename")21    args = parser.parse_args()22    return None, args23def _main():24    error, args = parse_args()25    cfg.init(args.ini, args.log_filename)26    path = args.path27    zkCli = cfg.config.get('zkcli', None)28    server = cfg.config.get('server', None)29    config = cfg.config.get('config', None)30    auth = cfg.config.get('auth', None)31    acls = get_acls(path, zkCli, server, config, auth)32    cfg.logger.info('after get_acls: path: %s acls: %s', path, acls)33if __name__ == '__main__':...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
