
ᅠ ᅠ
23.11.2018
21:30:55

Tishka17
23.11.2018
21:31:04
Гг

zxcv
23.11.2018
21:31:05
а вебмани еще живы?

Tishka17
23.11.2018
21:31:15

Google

Tishka17
23.11.2018
21:31:25

Aragaer
23.11.2018
21:31:30
Gherkin

Вадим
23.11.2018
21:31:35

Tishka17
23.11.2018
21:31:35
Оо

Aragaer
23.11.2018
21:31:46
конкретно это - для behave сценарий

Tishka17
23.11.2018
21:31:57
А. Cucumber
Смотрю, что-то знакомое

Aragaer
23.11.2018
21:32:15
ну да
язык - геркин, а реализации уже разны

Tishka17
23.11.2018
21:32:28
Так и не смог понять, как это применять

Aragaer
23.11.2018
21:32:37
для птона есть pytest-bdd, lettuce и behave
я использую "двойной цикл тдд"
тесты behave тыкают целиком все приложение - или в полном окружении, или в фейковом

Google

Aragaer
23.11.2018
21:33:37
а юнит-тесты тыкают отдельные функции/классы
то есть вот например в этом примере за строчкой "Given the service is started" стоит запуск приложения, которое начинает слушать какой-то порт. А @fake означает, что ему был дан фейковый конфиг, который в свою очередь ему подсунул не реальный лисповый мозг, а еще один сокет уже внутри самого тестового контекста
а вообще я больше использую это добро чтобы тестировать не питоновские приложения
https://github.com/aragaer/pa_brain/blob/master/features/active-user.feature - вот пример, как я мучаю лисповое приложение


Винни
23.11.2018
21:37:52
да блть
даже эта поебота не работает
def utility_starter(utility_name):
utility_name = utility_name if ''.join(utility_name[-3:-1]) == '.py' else utility_name + '.py'
if working_directory[-1] == '/' or working_directory[-1] == '\\':
utility_path = working_directory + utility_name
else:
utility_path = working_directory + '/' + utility_name
try:
__import__(utility_path)
except SystemExit:
pass
except ModuleNotFoundError:
print('Utility not found!')
воркинг_директори это директория в которой работает файл
стоп

Игорь
23.11.2018
21:39:46
стою

Aragaer
23.11.2018
21:39:52
''.join(utility_name[-3:-1]) == '.py'
чозахрень
надо utility_name[-3:] == '.py'
срез строки это строка

Винни
23.11.2018
21:40:13
нет

Aragaer
23.11.2018
21:40:23
а -1 отрезает тебе последнюю букву

Винни
23.11.2018
21:40:33
стоп
ско, тесты надо провести

Google

Aragaer
23.11.2018
21:40:51
>>> "hello"[2:4]
'll'
>>> "app.py"[-3:-1]
'.p'
>>> "app.py"[-3:]
'.py'
на самом деле надо os.path.splitext(path)
>>> os.path.splitext("app.py")[1]
'.py'
ну и дальше там os.path.join(working_directory, utility_name)

Tishka17
23.11.2018
21:44:31

Винни
23.11.2018
21:44:39
import sys
utility_name = input('> ')
working_directory = sys.argv[0][:-len(__name__) - 2]
utility_name = utility_name if ''.join(utility_name[-3:]) == '.py' else utility_name + '.py'
if working_directory[-1] == '/' or working_directory[-1] == '\\':
utility_path = working_directory + utility_name
else:
utility_path = working_directory + '/' + utility_name
это тестовый кусок кода

Aragaer
23.11.2018
21:45:07

Винни
23.11.2018
21:45:08
но он работает как надо

Tishka17
23.11.2018
21:45:14

Винни
23.11.2018
21:45:18
судя по всему

Aragaer
23.11.2018
21:46:23
а потом уже по мере необходимости усложняется и дорабатывается
https://github.com/aragaer/pa-core/blob/master/features/environment.py - вот это вот полная обвязка для _запуска_
но да, сами шаги - значительно больше кода
но оно получается достаточно локализованным
https://github.com/aragaer/pa-core/blob/master/features/steps/steps.py

F̦̮̦͍́ o̹̟̩r̨̮͈ ̘͕̥͓d̙͓̀ ̖̱̟en͖͍̼̘̺̣̘
23.11.2018
21:54:57
Ах, это бесценно
@gloomy_philosopher

Google

Винни
23.11.2018
21:56:50
сволочы

?? Eugene
23.11.2018
21:57:14
Это там __import__ у тебя?

Винни
23.11.2018
21:57:19
эхх, прощай РО девственность...

?? Eugene
23.11.2018
21:59:18

Винни
23.11.2018
21:59:27
def importer(file):
import file
работать не будет. Вообще. Никак.
оно будет импортировать только file.py
даже если дать any_module(.py) как аргумент
о, полночь

?? Eugene
23.11.2018
22:01:39

Винни
23.11.2018
22:01:52

Владимир
23.11.2018
22:01:58

Винни
23.11.2018
22:02:03
а вот __import__() это почти то же самое, то уже может импортировать то, что ты ей прикажешь и как прикажешь.

?? Eugene
23.11.2018
22:02:55

Винни
23.11.2018
22:03:02

Google

Винни
23.11.2018
22:03:16
чтобы запускать любые .ру файлики

?? Eugene
23.11.2018
22:03:17

Винни
23.11.2018
22:03:45
например, для работы с файлами. Или удалённым доступом там.... Который у меня не получается из-за того, что не выходит сделать проброс портов

Диего Мустафа
23.11.2018
22:04:57

Fox
23.11.2018
22:04:59
Сап
Короче, есть скрипт, который делает пэйлоад для переполнения буфера
На вход принимает адрес
И прикол в том, что нужно запустить программу, дать ей какой-нибудь ввод, она напечатает этот адрес и можно будет пэйлоад отдавать
Пробовал через subprocess.Popen