Python Practice Creating and Using Functions in Python Practice Functions Use an External Function

Anthony Costanza
Anthony Costanza
2,123 Points

assertion error

What am I doing wrong here?

using_a_function.py
"""
This is importing a function named `tweet` from a file
    that we unfortunately don't have access to change.

You use it like so:
>>> tweet("Hello this is my tweet")

If the function cannot connect to Twitter,
    the function will raise a `CommunicationError`
If the message is too long,
    the function will raise a `MessageTooLongError`
"""
from twitter import (
    tweet,
    MessageTooLongError,
    CommunicationError,
)


message = input("What would you like to tweet?  ")
# Your code here
tweet(message)

try:
    print(message)

except CommunicationError:
    print("Communication Error")

except MessageTooLongError:
    print("Your message is too long")

1 Answer

Brandon White
seal-mask
MOD
.a{fill-rule:evenodd;}techdegree seal-36
Brandon White
Treehouse Moderator

Hi Anthony Costanza,

Your issue with the second challenge has to do with your try...except block. There is no CommunicationError because you’re trying to invoke the print function and not the tweet function.

Well, technically your tweet function isn’t placed within a try...except block, so when there is a CommunicationError before the try...except block where you attempt the print(message) function, there is no exception to handle it. So that’s technically why you’re getting the assertion error.

But the bigger issue is that in your try block you should be calling tweet(message) not print(message). So move your tweet(message) into your try block, and then you can delete the print(message) statement altogether. Do that and you’ll be on your way to passing the second challenge (although you’ll still need to change the message you’re printing to the console to the one the challenge asks you to use).

With the third challenge, in addition to changing the print message to the correct message, you'll need to include the message returned from the exception. You'll do that using the following syntax except MessageTooLongError as err:, with err simply being a variable to hold the exception. You'll then plug it into the print message.

Anthony Costanza
Anthony Costanza
2,123 Points

Ok - I will try that - thank you!

Anthony Costanza
Anthony Costanza
2,123 Points

Hi - I tried that and I'm still getting the error

from twitter import ( tweet, MessageTooLongError, CommunicationError, )

message = input("What would you like to tweet? ")

Your code here

try: tweet(message)

except CommunicationError: print("Communication Error")

except MessageTooLongError: print("An error occurred attempting to connect to Twitter. Please try again!")

Anthony Costanza
Anthony Costanza
2,123 Points

Ok - I got it - I didn't realize you have to print to the console exactly what the challenge is asking - thank you!!