Test TempConvert with Zeep Python Library

This section provides a tutorial example on how to test the free Web service 'TempConvert' provided by w3schools.com using the Zeep Python library.

Here is what I did to test the "TempConvert" Web service provided by w3schools.com with the Zeep Python library.

1. Write the following Python test script with logging turned on at the DEBUG level.

#- TempConvert-Test.py
#- Copyright (c) 2024 HerongYang.com. All Rights Reserved.
#
import sys
from zeep import Client
import logging.config

logging.config.dictConfig({
    'version': 1,
    'formatters': {
        'verbose': {
            'format': '%(name)s: %(message)s'
        }
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'verbose',
        },
    },
    'loggers': {
        'zeep.transports': {
            'level': 'DEBUG',
            'propagate': True,
            'handlers': ['console'],
        },
    }
})

wsdl = "https://www.w3schools.com/xml/tempconvert.asmx?WSDL"
operation = "CelsiusToFahrenheit"
param = "100"

if (len(sys.argv)>1):
  operation = sys.argv[1]
if (len(sys.argv)>2):
  param = sys.argv[2]

client = Client(wsdl)
res = client.service[operation](param)

print("\nTest result:")
print('   {0}({1}) = {2}'.format(operation, param, res))

2. Run the test script:

herong$ python3 TempConvert-Test.py 

zeep.transports: Loading remote data from: 
  https://www.w3schools.com/xml/tempconvert.asmx?WSDL
Forcing soap:address location to HTTPS
Forcing http:address location to HTTPS
zeep.transports: HTTP Post to https://www.w3schools.com/xml/tempconvert.asmx:

<?xml version='1.0' encoding='utf-8'?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
  <soap-env:Body>
    <ns0:CelsiusToFahrenheit xmlns:ns0="https://www.w3schools.com/xml/">
      <ns0:Celsius>100</ns0:Celsius>
    </ns0:CelsiusToFahrenheit>
 </soap-env:Body>
</soap-env:Envelope>

zeep.transports: HTTP Response from 
  https://www.w3schools.com/xml/tempconvert.asmx (status: 200):

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <CelsiusToFahrenheitResponse xmlns="https://www.w3schools.com/xml/">
      <CelsiusToFahrenheitResult>212</CelsiusToFahrenheitResult>
    </CelsiusToFahrenheitResponse>
  </soap:Body>
</soap:Envelope>

Test result:
   CelsiusToFahrenheit(100) = 212

It works! 100 degrees in Celsius is 212 degrees in Fahrenheit.

Table of Contents

 About This Book

 Python SOAP Client: Zeep

 SoapUI - Web Service Testing Tool

 SOAP Web Service and SoapUI

 REST Web Service and SoapUI

 Mock Web Services - herongyang.com/Service

 "SoapResponder" and Web Service Test Tool

 "Calculator" for 4 Integer Operations

 DataFlex Web Service for Country Information

 LatLonListCityNames - Return Latitudes and Longitudes of US Cities

 LatLonListZipCode - Return Latitudes and Longitudes of US Zip Code

TempConvert Web Service for Temperature Conversion

 Operations Provided by TempConvert Web Service

Test TempConvert with Zeep Python Library

 TempConvert - "FahrenheitToCelsius" Operation

 NDFDgenByDay - US Weather Forecast by Day

 NDFDgen - US-Weather Forecast for a Single Location

 Currency Exchange Rate

 Bitcoin Blockchain Data API (or Explorer)

 flickr.interestingness.getList - Get Interesting Photos

 UUID/GUID Generator

 NumberToWords - Convert Number in Digits to Words

 TitleCaseWordsWithToken - Words to Title Case Format

 "PUG SOAP" Web Service for PubChem Database

 RSC - ChemSpider APIs

 Discontinued: Currency Converter by kowabunga.net

 Discontinued: GetCountries - Get All Countries and Territories

 Discontinued: GetCurrencies - Get Currencies from All Countries

 Discontinued: GetGMTbyCountry - Get GMT Information of a Given Country

 Discontinued: GetISD - Get ISD Phone Code of a Given Country

 Discontinued: GetCitiesByCountry - Get Cities by Country

 Discontinued: GetInfoByState - Get ZIP Codes of a Given US State

 Discontinued: GetAirportInformationByCountry - Get Airport Code by Country

 Discontinued: GetGeoIP - Get Country by IP Address

 Discontinued: ConvertTemp - Convert Temperature Unit

 Discontinued: ChangeLengthUnit - Convert Length Unit

 Discontinued: ConvertWeight - Convert Weight Unit

 Discontinued: ChangeAreaUnit - Convert Area Unit

 Discontinued: Code39 - Generate Bar Code Images in Code 39 Format

 Discontinued: GenerateBarCode - Generate Bar Code Images

 Discontinued: GetMortgagePayment - Calculate Mortgage Payment

 Discontinued: ConversionRate - Get Currency Exchange Rate

 Discontinued: GetQuote - Get Stock Quote

 Discontinued: GetSunSetRiseTime - Get Sunrise and Sunset Time

 Discontinued: GetWeatherByZipCode - Get Weather by ZIP Code in US

 Discontinued: getTime - Get the Current Time

 Discontinued: questionSearch - Search Yahoo! Questions and Answers

 Discontinued: Hotwire - Get Travel Ticker Deals

 Archived Tutorials

 References

 Full Version in PDF/EPUB