def test_create_role(change_to_test_directory):
    Permissions.PERMISSION_PATH = 'test_permissions_01.json'
    perms = Permissions(".")
    assert perms.create_role("managerUser", "newRole")
    perms.grant_role("managerUser", "user2", "newRole")
    assert "newRole" in perms.get_roles("user2")
    assert not perms.create_role("engineerUser", "badRole")
    assert not perms.create_role("managerUser", "default")
def test_grant_role(change_to_test_directory):
    Permissions.PERMISSION_PATH = 'test_permissions_01.json'
    perms = Permissions(".")
    perms.create_role("managerUser", "testRole")
    assert perms.grant_role("managerUser", "user2", "testRole")
    assert "testRole" in perms.get_roles("user2")
    assert not perms.grant_role("managerUser", "user2", "nonExistantRole")
    assert not perms.grant_role("engineerUser", "user3", "testRole")
    assert not perms.grant_role("engineerUser", "engineerUser", "manager")
def test_remove_role(change_to_test_directory):
    Permissions.PERMISSION_PATH = 'test_permissions_01.json'
    perms = Permissions(".")
    assert perms.remove_role("managerUser", "user2", "engineer")
    assert "engineer" not in perms.get_roles("user2")
    assert not perms.grant_role("engineerUser", "managerUser", "manager")