diff --git a/README.md b/README.md
index 8f18f1b..f154b98 100644
--- a/README.md
+++ b/README.md
@@ -54,29 +54,27 @@
 Please follow the [installation procedure](#installation--usage) and then run the following:
 
 ```python
-
-import time
 import airflow_client.client
 from pprint import pprint
 from airflow_client.client.api import config_api
-from airflow_client.client.model.config import Config
-from airflow_client.client.model.error import Error
-# Defining the host is optional and defaults to http://localhost/api/v1
-# See configuration.py for a list of all supported configuration parameters.
-configuration = airflow_client.client.Configuration(
-    host = "http://localhost/api/v1"
-)
 
-# The client must configure the authentication and authorization parameters
+# The client must use the authentication and authorization parameters
 # in accordance with the API server security policy.
 # Examples for each auth method are provided below, use the example that
 # satisfies your auth use case.
+#
+# In case of the basic authentication below, make sure that Airflow is
+# configured with the basic_auth as backend:
+#
+# auth_backend = airflow.api.auth.backend.basic_auth
+#
+# Make sure that your user/name are configured properly
 
 # Configure HTTP basic authorization: Basic
 configuration = airflow_client.client.Configuration(
-    host = "http://localhost/api/v1",
-    username = 'YOUR_USERNAME',
-    password = 'YOUR_PASSWORD'
+    host="http://localhost/api/v1",
+    username='admin',
+    password='admin'
 )
 
 
@@ -84,7 +82,7 @@
 with airflow_client.client.ApiClient(configuration) as api_client:
     # Create an instance of the API class
     api_instance = config_api.ConfigApi(api_client)
-    
+
     try:
         # Get current configuration
         api_response = api_instance.get_config()
diff --git a/dev/test_python_client.py b/dev/test_python_client.py
new file mode 100644
index 0000000..2f8785f
--- /dev/null
+++ b/dev/test_python_client.py
@@ -0,0 +1,51 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+import airflow_client.client
+from pprint import pprint
+from airflow_client.client.api import config_api
+
+# The client must use the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+#
+# In case of the basic authentication below, make sure that Airflow is
+# configured with the basic_auth as backend:
+#
+# auth_backend = airflow.api.auth.backend.basic_auth
+#
+# Make sure that your user/name are configured properly
+
+# Configure HTTP basic authorization: Basic
+configuration = airflow_client.client.Configuration(
+    host="http://localhost/api/v1",
+    username='admin',
+    password='admin'
+)
+
+
+# Enter a context with an instance of the API client
+with airflow_client.client.ApiClient(configuration) as api_client:
+    # Create an instance of the API class
+    api_instance = config_api.ConfigApi(api_client)
+
+    try:
+        # Get current configuration
+        api_response = api_instance.get_config()
+        pprint(api_response)
+    except airflow_client.client.ApiException as e:
+        print("Exception when calling ConfigApi->get_config: %s\n" % e)
