| import pytest |
| import uuid |
| |
| from .. import base |
| from juju.controller import Controller |
| from juju.errors import JujuAPIError |
| |
| |
| @base.bootstrapped |
| @pytest.mark.asyncio |
| async def test_add_user(event_loop): |
| async with base.CleanController() as controller: |
| username = 'test{}'.format(uuid.uuid4()) |
| await controller.add_user(username) |
| result = await controller.get_user(username) |
| res_ser = result.serialize()['results'][0].serialize() |
| assert res_ser['result'] is not None |
| |
| |
| @base.bootstrapped |
| @pytest.mark.asyncio |
| async def test_disable_enable_user(event_loop): |
| async with base.CleanController() as controller: |
| username = 'test-disable{}'.format(uuid.uuid4()) |
| await controller.add_user(username) |
| await controller.disable_user(username) |
| result = await controller.get_user(username) |
| res_ser = result.serialize()['results'][0].serialize() |
| assert res_ser['result'].serialize()['disabled'] is True |
| await controller.enable_user(username) |
| result = await controller.get_user(username) |
| res_ser = result.serialize()['results'][0].serialize() |
| assert res_ser['result'].serialize()['disabled'] is False |
| |
| |
| @base.bootstrapped |
| @pytest.mark.asyncio |
| async def test_change_user_password(event_loop): |
| async with base.CleanController() as controller: |
| username = 'test-password{}'.format(uuid.uuid4()) |
| await controller.add_user(username) |
| await controller.change_user_password(username, 'password') |
| try: |
| new_controller = Controller() |
| await new_controller.connect( |
| controller.connection.endpoint, username, 'password') |
| result = True |
| await new_controller.disconnect() |
| except JujuAPIError: |
| result = False |
| assert result is True |
| |
| |
| @base.bootstrapped |
| @pytest.mark.asyncio |
| async def test_grant(event_loop): |
| async with base.CleanController() as controller: |
| username = 'test-grant{}'.format(uuid.uuid4()) |
| await controller.add_user(username) |
| await controller.grant(username, 'superuser') |
| result = await controller.get_user(username) |
| result = result.serialize()['results'][0].serialize()['result']\ |
| .serialize() |
| assert result['access'] == 'superuser' |
| await controller.grant(username, 'login') |
| result = await controller.get_user(username) |
| result = result.serialize()['results'][0].serialize()['result']\ |
| .serialize() |
| assert result['access'] == 'login' |
| |
| |
| @base.bootstrapped |
| @pytest.mark.asyncio |
| async def test_get_models(event_loop): |
| async with base.CleanController() as controller: |
| result = await controller.get_models() |
| assert isinstance(result.serialize()['user-models'], list) |