def test_payloads_are_not_equal_if_one_attribute_is_different(
        attribute_name, different_value):
    this_kwargs = build_payload_kwargs()
    this = Payload(**this_kwargs)

    that_kwargs = build_payload_kwargs()
    that_kwargs[attribute_name] = different_value
    that = Payload(**that_kwargs)

    assert this.__eq__(that) is False
    assert that.__eq__(this) is False
    assert this != that
    assert not (this == that)
def test_payloads_are_equal_when_all_attributes_are_equal():
    event = Event(**build_event_kwargs())
    mega_object = ObjectData(**build_object_kwargs())
    extra = {'foo': 'bar', 'one': 1}

    this = Payload(event=event, object=mega_object, extra=extra)

    that = Payload(event=event, object=mega_object, extra=extra)

    assert this.__eq__(that) is True
    assert that.__eq__(this) is True
    assert this == that
    assert not (this != that)