def METHOD_NAME(self):
    """
    Request an access token using client_type: public
    and PKCE enabled with the S256 algorithm
    """
    self.client.login(username="oauth_test_user", password="123456")
    self.application.client_type = Application.CLIENT_PUBLIC
    self.application.save()
    code_verifier, code_challenge = self.generate_pkce_codes("S256")
    authorization_code = self.get_auth_pkce(code_challenge, "S256")
    token_request_data = {
        "grant_type": "authorization_code",
        "code": authorization_code,
        "redirect_uri": "http://example.org",
        "code_verifier": code_verifier,
    }
    auth_headers = self.get_basic_auth_header(
        self.application.client_id, CLEARTEXT_SECRET
    )
    response = self.client.post(
        reverse("oauth2_provider:token"), data=token_request_data, **auth_headers
    )
    self.assertEqual(response.status_code, 200)
    token = response.json()["access_token"]
    # Testing the Token Acquired through the above request
    self.client.logout()
    auth = self._create_authorization_header(token)
    response = self.client.get("/oauth/hello", HTTP_AUTHORIZATION=auth)
    self.assertEqual(response.status_code, 200)