Alexander
а можно весь трейс?
это весь трейс
Tishka17
мда
Tishka17
удобно
Vladyslav 🇺🇦🇪🇺
django 3 Expected December 2019 ASGI support
Vladyslav 🇺🇦🇪🇺
у меня уже руки чешутся
🍁 Jaŭhien
Импортируй без точки
Spirit
господа, попытаю счастья у вас. потому что никто не может ответить мне на вопрос. вот мой вопрос на стековерфлоу: тыц гист: тыц проблема: есть 2 теста – первый делает реквест без пермишенов и ждет 403, второй делает реквест с фикстурой пермишенов и ждет 200. что происходит: если не стоит фикстуры на первом, то оба теста получают 403. если фикстура стоит на первом, оба теста получают 200. соответственно, пермишены каким-то боком наследуются от первого теста и весь результат последующих зависит от того, была ли использована фикстура в первом тесте или нет. и я не пойму как эту дичь решить ах да – pytest
Spirit
меняю местами, получаем то же самое, ток с другим ассертом 🙂
Проксимов
Я с джангой не знаком, но может то что возрващает фикстура list_permission надо как-то использовать?
Kirill
А почему фикстура list_permissions вообще должна на что-то повлиять в уже запущеном джанго приложении?
Проксимов
Spirit
Как это влияет на джангу?
джанга лишь смотрит в базу, видит там фикстуру и дает права
Kirill
В тестах не вижу где "делает реквест без пермишенов" и "делает реквест с пермишенами". Там везде реквесты делаются одинаково.
Spirit
@pydjango
речь не о джанге сейчас
Проксимов
все верно. но в одном тесте есть запись, в другом нет
Так бля, а запись удаляется после первого теста?
Spirit
фикстура живет в пределах функции
Spirit
вам не кажется странной логика работы той рокировки тестов?
Spirit
тест_без_фикстуры тест_с_фикстурой 403 оба
Spirit
тест_с_фикстурой тест_без_фикстуры 200 оба
Spirit
тест_без_фикстуры тест_с_фикстурой 403 оба
и я бы сказал, что все ок. если бы тут не было фикстур вообще
Spirit
у всех фикстур выставлен скоп=фанкшен, хотя он как бы по дефолту идет
Spirit
не помогает
Spirit
тест_с_фикстурой тест_без_фикстуры 200 оба
и тут бы я сказал, что все ок, если бы рокировка не меняла положения, либо отдавала разные респонсы
Spirit
в случае, когда вызов фикстуры, наследывал ее на все последующие тесты, но нет)
Проксимов
Kirill
тест_с_фикстурой тест_без_фикстуры 200 оба
Очень похоже на то, что где-то кешируются "пермишены".
Spirit
Очень похоже на то, что где-то кешируются "пермишены".
я тоже об этом думал, вопрос куда копать
Андрей
подскажите как в 2.7 неблокирующий доступ к БД получить?
Nikolay
😮
Андрей
😮
вернись в Конохуъ
Kirill
я тоже об этом думал, вопрос куда копать
Если пермишены изначально берутся из базы, то надо убедится что каждый тест использует чистую базу. И убедится что джанго приложение в них создаётся с нуля. Если это не так (в целях оптимизаци тестов), то тебе надо в фикстуре, после yield добавить код, который возвращает пермишены в исходное состояние.
Spirit
ах да (!) я попробовал вынести отдельно тесты с мисс- и нормальными пермишенами по файлам с отдельными инициализациями. происходит то же самое
Spirit
если, к примеру, тест с мисс-пермишенами происходит первый, то при запуске второго теста с адекватными пермишенами мыполучаем тоже 403
Spirit
по каждому тесту
Spirit
изначально база то пустая
Spirit
все создается в процессе теста
Spirit
собсно, в гисте все видно
Проксимов
все создается в процессе теста
Вопрос не в том, что создаётся, а как удаляется
Kirill
собсно, в гисте все видно
В гисте совсем не видно как там создаётся и инициализиуется база. И вообще твой yield бесполезен, если после него нет кода, который выполняет "финализацию" фикстуры (например отменяет все изменения сделанные фикстурой)
Spirit
В гисте совсем не видно как там создаётся и инициализиуется база. И вообще твой yield бесполезен, если после него нет кода, который выполняет "финализацию" фикстуры (например отменяет все изменения сделанные фикстурой)
так базу пайтест создает же сам. вот еще есть конфтест, который импортирует из жсона несколько аккаунтов и описание дефолтролей. но это все никак не связано с пермишенами
Spirit
Ну и погляди внимательно на скоуп этой фикстуры
окей, ставлю фанкшен, сейчас проверю 🙂
Kirill
Ты в своей фикстуре list_permissions меняеш базу, а потом не возвращаешь её в исходное состояние. Само использование yield в фикстуре ничего за тебя волшебным образом не откатит
Spirit
🙈
Kirill
Как я написал выше - надо добавить после yield код, который отменит все изменения сделаные фикстурой
Kirill
Иначе можно просто делать return
Spirit
Как я написал выше - надо добавить после yield код, который отменит все изменения сделаные фикстурой
удалять из бд? или есть какие-то нативные метды пайтеста для отката?
Kirill
удалять из бд? или есть какие-то нативные метды пайтеста для отката?
Не знаю, ты ведь как-то добавил пермишены в базу (я не понимаю что это за волшебное mixer.blend). И раз смог добавить, то смоги и отменить это добавление
Проксимов
сириусли? это как джанга прошла мимо админа?
Как будто, чтобы стать админом надо пройти экзамен по джанге
Vladyslav 🇺🇦🇪🇺
Как будто, чтобы стать админом надо пройти экзамен по джанге
нет конечно, но мне казалось в джангу умеют все
Проксимов
Vladyslav 🇺🇦🇪🇺
Tishka17
svn!
Spirit
svn!
tortoise
Vladyslav 🇺🇦🇪🇺
svn!
а ты в джангу умеешь?
Проксимов
svn!
MeRcURiaL
Tishka17
а ты в джангу умеешь?
не знаю, не пробовал
Tishka17
наверно умею
Vladyslav 🇺🇦🇪🇺
да вы тролите меня
Tishka17
ну я правда один раз в чужой проект что-то коммитил и всё
Spirit
Не знаю, ты ведь как-то добавил пермишены в базу (я не понимаю что это за волшебное mixer.blend). И раз смог добавить, то смоги и отменить это добавление
не смог) какая-то всратость присутствует, определенно. видимо надо уйти от фикстур к мокам и не страдать
Tishka17
Так вот народ, с пятницей. У меня есть вопрос. А кто-нибудь из присутствующих пилит opensource проект? Интересно было бы глянуть
Spirit
да, пилим. говно выходит.
ты хотел сказать опенсорс