Gazza732
Gazza732

Reputation: 179

Why am I getting an Assertion Error on this Python code?

I have a function written here:

def addItem(aBookcase, name, mediaType):
    """
    Returns False if aBookcase is full, otherwise returns True and 
    adds item of given name and mediaType to aBookcase.
    """
    pass
    emptySpacesBefore = aBookcase.getEmptySpaces()
    if aBookcase.getEmptySpaces() == 0:
        added = False
        return added
    else:
        position = findSpace(aBookcase)
        aBookcase.setName(*position, name=name)
        aBookcase.setType(*position, mediaType=mediaType)
        added = True
        emptySpacesAfter = aBookcase.getEmptySpaces()
    assert added is True, "No free positions"
    assert emptySpacesAfter < emptySpacesBefore, "Same amount of empty spaces"
    assert aBookcase.getName(*position) is name, "Error with name"
    assert aBookcase.getType(*position) is mediaType, "Error with media type"

Yet when I go to test the function with this line of code:

assert addItem(small, "Algorhythms, date structures and compatibility", BOOK)

I get an 'AssertionError' as shown here:

Screenshot of 'AssertionError'

So if I'm right, it means I'm not handling it but I'm not sure how or why? Is it something wrong with my code? Something missing? etc.

Upvotes: 1

Views: 7269

Answers (1)

Jean-Fran&#231;ois Fabre
Jean-Fran&#231;ois Fabre

Reputation: 140148

when it works properly, your addItem function returns nothing, so it returns None, which is seen as a failure by the last assert statement that you inserted. You should return added for both cases (True or False)

BTW since you reached that line, it means that all previous assertions are OK so good news: your code is OK.

Upvotes: 1

Related Questions