def respond(self, **kwargs): plain_text = kwargs.get('plain_text').lower() service = ConversionService() units = service.extractUnits(plain_text) inf_eng = inflect.engine() try: original_num = re.findall(r'\d+', plain_text) if len(original_num) == 0: try: converted_num = service.convert(plain_text) return "Your ans is " + "%.2f" % (float( str(service.convert(plain_text)).split()[0]) ) + " " + units[1] except TypeError: plain_text = "one " + units[0] + " to " + units[1] original_num = [1] converted_num = float( "%.2f" % (float(str(service.convert(plain_text)).split()[0]))) output = str(inf_eng.number_to_words( original_num[0])) + " " + units[0] + " equals " + str( inf_eng.number_to_words(converted_num)) + " " + units[1] return output except TypeError: return "Sorry, I cannot convert these units." except: return "Something Wrong!"
def compareConversion(self, inp, target): service = ConversionService() result = service.convert(inp) self.assertEqual(result.magnitude, target.magnitude) self.assertEqual(result.units, target.units)