New We are sorting MAX channels into categories and territories. Read the news

πŸ‘ 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
Views: 124
Open in MAX Report an inaccuracy

Report an inaccuracy

Describe what needs fixing. If you have a source, add a link.

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content β€” check the address before entering passwords or payment details.

Redirecting in 10 s

Go