<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def expect(self, value, message='Failed: "{actual} {operator} {expected}" after step "{step}"', operator='=='):
 """Add an 'assertion' action to the steps. This will evaluate the return value of the last 'do' step and compare it to the value passed here using the specified operator. Checks that the first function will return 2 This will check that your function does not return None :param value: The expected value :param message: The error message to raise if the assertion fails. You can access the variables: {actual} -- The actual value {expected} -- The expected value {step} -- The step just performed, which did not meet the expectation {operator} -- The operator used to make the comparison """

        if operator not in self.valid_operators:
            raise ValueError('Illegal operator specified for ')
        self.items.put(ChainItem(value, self.expect, message, operator=operator))
        return self