def test_execute_plan_to_create_user_with_downloaded_yaml(): """ Create a new user from downloaded YAML file """ delete_test_user_and_group() session = Session() s3_client = session.client('s3') test_user_1 = open( os.path.join(os.path.dirname(__file__), 'test_user_1.yml')).read() s3_client.create_bucket(Bucket='test') s3_client.put_object(Bucket='test', Key='test.yml', Body=test_user_1) response = s3_client.get_object(Bucket='test', Key='test.yml') contents = response['Body'].read() yaml_content = yaml.load(contents) current_users = Users.from_passwd() provided_users = Users.from_dict(yaml_content) plan = create_plan(existing_users=current_users, proposed_users=provided_users, manage_home=False, protected_users=[ 'travis', 'couchdb', 'ubuntu', 'nginx', 'hadfielj', 'vagrant', CURRENT_USER ]) execute_plan(plan=plan) updated_users = Users.from_passwd() updated_user = updated_users.describe_users(users_filter=dict( name='dummy')) assert len(updated_user) == 1 assert updated_user[0].name == 'dummy' assert updated_user[0].gecos == '\"dummy (user) test\"' assert not updated_user[0].public_keys assert updated_user[0].sudoers_entry == 'ALL=(ALL:ALL) ALL' delete_test_user_and_group()
def test_users_json_export(tmpdir): """ Test the exporting of a Users sequence to yaml. """ export_file = tmpdir.mkdir("export").join("export.json") users = Users.from_dict(SAMPLE_DICT) assert users.export(file_path=export_file.strpath, export_format='json') exported_users = Users.from_json(export_file.strpath) for index, _ in enumerate(users): assert users[index].name == exported_users[index].name assert users[index].passwd == exported_users[index].passwd assert users[index].uid == exported_users[index].uid assert users[index].gid == exported_users[index].gid assert users[index].gecos == exported_users[index].gecos assert users[index].home_dir == exported_users[index].home_dir assert users[index].shell == exported_users[index].shell for pk_index, _ in enumerate(users[index].public_keys): assert users[index].public_keys[pk_index].raw == exported_users[index].public_keys[pk_index].raw assert users[index].public_keys[pk_index].b64encoded == exported_users[index].public_keys[ pk_index].b64encoded
def test_users_json_export(tmpdir): """ Test the exporting of a Users sequence to yaml. """ export_file = tmpdir.mkdir("export").join("export.json") users = Users.from_dict(SAMPLE_DICT) assert users.export(file_path=export_file.strpath, export_format='json') exported_users = Users.from_json(export_file.strpath) for index, _ in enumerate(users): assert users[index].name == exported_users[index].name assert users[index].passwd == exported_users[index].passwd assert users[index].uid == exported_users[index].uid assert users[index].gid == exported_users[index].gid assert users[index].gecos == exported_users[index].gecos assert users[index].home_dir == exported_users[index].home_dir assert users[index].shell == exported_users[index].shell for pk_index, _ in enumerate(users[index].public_keys): assert users[index].public_keys[pk_index].raw == exported_users[ index].public_keys[pk_index].raw assert users[index].public_keys[ pk_index].b64encoded == exported_users[index].public_keys[ pk_index].b64encoded
def test_get_users_from_dict(): """ Test creation of a Users collection based on a predefined dict. """ users = Users.from_dict(input_dict=SAMPLE_DICT) assert isinstance(users, Users) assert isinstance(users[0], User) assert isinstance(users[0].uid, int)