code: def test_update_account(self):
      # Users can update their own account
      account = self.service.get_account(self.auth)
      account_copy = copy.deepcopy(account)
      account_copy.description = "new description"
      account = self.service.update_account(self.auth, account_copy)
      assert account.description == "new description"
  
      # Admin cannot update usage.used
      account_copy = copy.deepcopy(account)
      current_usage: int = account.usages["gpt3"]["daily"].used
      account_copy.usages["gpt3"]["daily"].used = -1
      account = self.service.update_account(self.auth, account_copy)
      assert account.usages["gpt3"]["daily"].used == current_usage
  
      # Non-admin users cannot promote themselves to admins
      account = self.service.create_account(self.auth)
      account_copy = copy.deepcopy(account)
      account_copy.is_admin = True
      non_admin_auth = Authentication(account.api_key)
      account = self.service.update_account(
          non_admin_auth, account_copy
      )
      assert not account.is_admin
  
      # Admins can make new admins though
      account = self.service.update_account(self.auth, account_copy)
      assert account.is_admin
  
imports: import copy
  import pytest
  import shutil
  import tempfile
  from helm.common.authentication import Authentication
  from helm.common.request import Request
  from helm.proxy.accounts import AuthenticationError, Accounts
  from helm.proxy.query import Query
  from .server_service import ServerService
label_desc: Use image node_id 10 for calling the TestServerService obj's underlying member method code with example usage: obj.test_update_account() without return types