No, your input to confusion_matrix must be a list of predictions, not OHEs (one hot encodings). Call argmax on your y_test and y_pred, and you should get what you expect.
confusion_matrix(
y_test.values.argmax(axis=1), predictions.argmax(axis=1))
array([[1, 0],
[0, 2]])