Mar. 10th, 2022

amarao: (Default)
Это всё игра в бисер.

До тех пор, пока не происходит сайд-эффект. Мы ненавидим и обожаем сайд-эффекты. Мы ненавидим сайд-эффекты, потому что они не могут быть описаны с помощью игры в бисер. Мы обожаем сайд-эффекты, потому что это единственное, с помощью чего мы можем перевести птичий язык игры в бисер в простой и ясный результат. Например, нарисовать зелёную галочку на экране. Или красный крестик. И тогда (и только тогда!) мы понимаем, удалась наша партия игры в бисер или нет.

Вся работа - в правильном понимании символов и нахождении наиболее скромной формы, которая соответствует символам вокруг. И это всё символы. _execute_scenario принимает на вход scenario, из которого вынимаются actions, которые передаются в execute_subcommand вместе с scenario.config, который в свою очередь использует getattr для извлечения command_module с именем action, и оттуда же извлекается??? `command = getattr(command_module, text.camelize(subcommand))` (простите, не могу перевести пока что). Это всё игра в бисер. Она заканчивается в тот момент, когда я получаю сайд-эффект на экране, говорящий мне, что символы сошлись, или что они не сошлись и я неправильно понял символ action, который subcommand.

Простите... ныряю дальше в бисер.
amarao: (Default)
Я очень долго искал замену молекуле, но не нашёл.

Наша проблема: у нас тяжёлый converge, тяжёлый create (и иногда тяжёлый prepare). Мы не можем плодить по сценарию на каждый чих.

Однако, у нас большой и сложный сценарий тестирования: сделай то, проверь то, сделай это, проверь это и т.д. 10-20-30 этапов - запросто. Сами этапы простейшие, и ради них городить полный цикл глупо.

Один этап легко ложится на side effect, но нам надо много.

Перепробовав всё, я сел за потрохи молекулы.
https://github.com/amarao/molecule/commit/e0d9f188809634ff240a08fda447794e106c0927

идея: к стадиям side-effect и verify добавить поддержку параметра, указывающего что именно side-effect, и какие именно тесты запускать.

Примерно так:

test_sequence:
  - create
  - prepare
  - converge
  - verify
  - side_effect good_foo.yaml
  - verify good_foo_tests/
  - side_effect second_foo.yaml
  - verify two_foo_tests/
  - side_effect bar.yaml
  - verify bar_tests/
  - idempotence
  - cleanup
  - destroy


Пока что я расковырял самую мякотку (куда писать) и ещё обдумываю детали реализации. Но я полон решимости, даже если в апстрим не примут.

Profile

amarao: (Default)
amarao

August 2025

S M T W T F S
     12
345 6789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 17th, 2025 11:57 am
Powered by Dreamwidth Studios