Python + websocket проблема в написании авто-теста

Добрый день форумчане, на работе поступило задание отправлять и получать ответы с вебсокет сервера, после получения парсить их и смотреть результат, но проблема в том что
мне приходит строка из 15 рандомных символов типа “ABFDJHRTJSDYJRY” эта строка это барабан игрального автомата, то есть каждые 5 символов это одно поле, нужно протестировать соответствие, того что система правильно распознает выигрышные комбинации, хотелось бы узнать у опытных пользователей какими подходами это реализовать, что использовать, и тд.

Заранее прошу прощение за кривость написания данного поста.

Можно использовать py.test + ws4py(для веб сокета) + что угодно для проверки строки :smile:

В чем конкретно проблема возникла?

1 лайк

В этой строке заложена выигрышная комбинация по такому принципу( где “-” это один символ, а X- выигрышная комбинация) я как понимаю, мне нужно написать парсер ?
-----XXXXX-----
XXXXX----------
----------XXXXX
X—X-X-X—X–
–X—X-X-X—X
-----X—X-XXX-
-XXX-X—X-----
—XX–X--XX—
XX-----X-----XX

Да задача немного непонятная, точнее не ясно, в чем Вы не можете разобраться и в чем нужна помощь?

  • Как парсить строку?
  • Как работать с веб-сокетами?
  • Как сделать автоматический тест?
  • Или как распознать правильную сгенерированную комбинацию?

В общем, конкретизируйте проблему.

Да, наверное нужно парсить и что-то делать с ней.
Ну в общем, это Вы нам скажите, что нужно сделать и что у вас не получается?

Проблема, в том, что я не знаю как распарсить строку, и распознать комбинацию, остальные шаги получились, сейчас пробую написать парсер для данного теста, завтра отпишу про результаты.

Для того чтобы распарсить нужно использовать регулярные выражения. А для того чтобы расспознать комбинацию нужно знать алгоритм формирования комбинации, чтобы можно было проверить найденную строку на предмет правильной комбинации.

Парсинг с помощью регулярного выражения очень простой, например как это можно решить

some_coded_string = """
-----ABCDF-----
ADBZE----------
----------SDFXW
S---W-B-D---D--
--X---X-X-X---X
-----X---X-XXX-
-XXX-X---X-----
---XX--X--XX---
XX-----X-----XX
"""

import re
regular_expression = r'\w+'
result = re.findall(regular_expression, some_coded_string)
print result
print "".join(result)

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

['ABCDF', 'ADBZE', 'SDFXW', 'S', 'W', 'B', 'D', 'D', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'XXX', 'XXX', 'X', 'X', 'XX', 'X', 'XX', 'XX', 'X', 'XX']
ABCDFADBZESDFXWSWBDDXXXXXXXXXXXXXXXXXXXXXXXXX

О регулярных выражениях можно почитать тут 7.2. re — Regular expression operations — Python 2.7.18 documentation или посмотреть онлайн урок c домашними заданиями тут Поиск 🔍 организации или лица - Предоставление сведений из ЕГРЮЛ/ЕГРИП в электронном виде

Михаил огромное спасибо за ответ, очень заинтересовал ваш курс, планирую на днях приступить, еще раз спасибо!

1 лайк