TGViewer
Библиотека питониста | Python, Django, Flask Библиотека питониста | Python, Django, Flask @pyproglib · 37.4K subscribers
Post #7793 2.47K
👍 ArchUnit для Python: архитектурные правила как юнит-тесты

Python не заботится о том как вы организуете код. Нет компилятора который закричит когда route handler импортирует напрямую из слоя базы данных. Нет ошибки при циклической зависимости между модулями.

Всё работало пока проект не вырос. А потом кто-то импортировал sqlalchemy прямо в Pydantic-схему — потому что так быстрее.

ArchUnitPython решает это: архитектурные правила живут рядом с обычными тестами и запускаются в pytest.


🚫 Запретить зависимости между слоями
from archunitpython import project_files, assert_passes

def test_presentation_should_not_depend_on_database():
rule = (
project_files("src/")
.in_folder("**/presentation/**")
.should_not()
.depend_on_files()
.in_folder("**/database/**")
)
assert_passes(rule)


🔄 Запретить циклические зависимости
def test_no_circular_dependencies():
rule = project_files("src/").should().have_no_cycles()
assert_passes(rule)

Когда правило нарушается — тест падает с понятным сообщением. Никаких отдельных конфигов и команд.


Что проверяет

— направление зависимостей между слоями
— циклические зависимости
— нарушения именования
— превышение размера файлов
— внешние модули в неположенных местах

pip install archunitpython


📍 Навигация: ВакансииЗадачиСобесы

Библиотека питониста

#буст
  • 👍 5
  • ❤ 2
More from @pyproglib
  1. Sep 20, 2026👻 94% токенов уходят не на код Анализ запусков показал: основная часть токенов уходит на…
  2. Sep 19, 2026📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих» Мы написали и собр…
  3. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  4. Sep 15, 2026⏱️ Справочник по Big-O в Python Для тех, кто хочет писать не просто работающий, а эффектив…
  5. Sep 14, 2026🤪 Если бы можно было задать один вопрос про AI в разработке — что бы вы спросили? Как выб…
  6. Sep 13, 2026🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy выра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →