I translated the sentence as "He swears not to eat chocolate", and Duolingo says I should have used "promises". I thought these 2 verbs were interchangeable in this context... Any idea why not?
Yes. To swear = jurar. They are commonly used interchangeably both in English and Portuguese. Just report. (Ok, there tiny nuances between them, but I still think "swear" should be right here.)
(Pelo menos não em torno das pessoas...)
So, would, "Ele não promete não comer chocolate" be, "he does not promise to not eat chocolate"?