@ru_python

Страница 7142 из 9768
ᅠ ᅠ
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
http://codephoto.ru/i/B88PK
Что за язык?

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
надо utility_name[-3:] == '.py'
получится список

нет

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
https://github.com/aragaer/pa_brain/blob/master/features/active-user.feature - вот пример, как я мучаю лисповое приложение
Звучит как будто надо много обвязки ради того, чтобы такие простые скрипты заработали

Винни
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
но он работает как надо

Винни
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
эхх, прощай РО девственность...

Ах, это бесценно @gloomy_philosopher
кхм, да, я успокоился, есчо

Это там __import__ у тебя?
ибо хочеца запускать ЛЮБЫЕ .ру файлы, а обычный import такого дать не может.

Винни
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
Нипонял, в file что записано?
ты меня не понял, file - это аргумент

Владимир
23.11.2018
22:01:58
о, полночь
на зимнее время перешли?

Винни
23.11.2018
22:02:03
Нипонял, в file что записано?
и что в него не засовывай, все равно импортится будет file.py

а вот __import__() это почти то же самое, то уже может импортировать то, что ты ей прикажешь и как прикажешь.

?? Eugene
23.11.2018
22:02:55
и что в него не засовывай, все равно импортится будет file.py
Ну это очевидно, а зачем тебе такая функция?)

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

Страница 7142 из 9768