I personally think you should reply "No I didn't", because you didn't finish your homework.
You should not base your answer on the question tag itself, but rather on the actual answer to (in this case) "Did you finish your homework?"...
Look, I got a nice example from a site. Both these question tags are negative, but still the answer changes:
- The earth is bigger than the moon, isn't it? Yes, it is.
- The earth is bigger than the sun, isn't it? No, it isn't!
EDIT (@MediumOne in the comments):
That doesn't really matter and I'll tell you why: when I reply to a question with a question tag, I don't really mind the question tag itself. I'm not a native speaker so I don't know how native speakers behave. But I think the way is to look at the question, is it negative or positive? Let's try, for example, with a "negative" question:
"You didn't go to the Mall, did you?".
If you say "No I didn't", you are CONFIRMING the question (you didn't go to the Mall), on the contrary, if you say "yes, I did", you are DENYING the question (you did go to the Mall).
The same goes for a "positive question" but on the opposite.
EX: "You did go to the Mall, didn't you?".
If you say "No I didn't", in this case, you are not confirming like before, but denying, and so if you say "Yes I did" you are confirming.
Summary: If the question (not question tag, just the actual question) is negative, a "no" confirms, if the question is positive, "yes" confirms. (If some native speaker can say something about this, it would be nice.)