Промокод не создаётся
Покупатели вводят промокоды как попало: " spring10 ", "Spring10".
PromoCode хранит код в едином виде: без пробелов по краям и заглавными буквами.
Приведением занимается статический метод normalize. Любое создание промокода падает
с NameError. Исправьте класс.
Подсказка 1 из 2
normalize объявлена в теле класса. Видно ли тело класса из функций внутри него?
Подсказка 2 из 2
Вызывайте через объект или класс: self.normalize(code) или PromoCode.normalize(code).