
Igor
12.10.2016
08:34:52
должна быть актуальнее

Johnnie
12.10.2016
08:35:04
<select class="form-control" id="role" name="role"><option value="1">Заказчик</option><option value="2">Исполнитель</option></select>
на выхлопе

Google

Igor
12.10.2016
08:35:24
збс

Johnnie
12.10.2016
08:35:38
так короче, оставлю)

Zart
12.10.2016
08:36:25
уникальность по фио?а как быть тезкам-однофамильцам?

Roman
12.10.2016
08:37:15
над гуид делать

x3233
12.10.2016
08:37:15
Паспорт

Pavel
12.10.2016
08:37:27
полный тёзка это называется.

x3233
12.10.2016
08:37:52
Иванова Светлана Александровна
Так вот, у нас в базе 50 таких уникальных записей

Johnnie
12.10.2016
08:38:35
тогда md5(last_name + first_name + middle_name + email)

x3233
12.10.2016
08:38:42
Полные тески

Stanislav
12.10.2016
08:38:58
У меня уебищный ФИО, а точнее 'Ф'
Бобокало, ну вообще не звучит

Roman
12.10.2016
08:39:33
Но не Попандороволокамонддураниколяколопоколовский

Google

Zart
12.10.2016
08:39:34
мне Ростелеком в отчество тоже Ивановича влеплял изза пропущенного поля

Roman
12.10.2016
08:39:43
Вот что с такими фамилиями делать, м?

Igor
12.10.2016
08:39:46

Pavel
12.10.2016
08:39:51

Stanislav
12.10.2016
08:40:19

Roman
12.10.2016
08:40:25

Stanislav
12.10.2016
08:40:34
Род продолжать, кококо

Pavel
12.10.2016
08:41:26

Zart
12.10.2016
08:42:33

Stanislav
12.10.2016
08:44:02

Zart
12.10.2016
08:45:04
Бойль-Мариотт

Johnnie
12.10.2016
08:45:55
у тебя субд или что?
нууу, в некотором виде да. журнал инцидентов с указанием заказчика, исполнителя, текста, дат и прочего

Zart
12.10.2016
08:46:18
я к тому что в базах данных есть CREATE UNIQUE INDEX

Johnnie
12.10.2016
08:46:35
перед добавлением нового все равно нужно проверять

Zart
12.10.2016
08:46:45
ммм.. нет?

Johnnie
12.10.2016
08:46:45
и либо по 4ем полям, либо по одному
тогда ошибку вывалит sqlite же :)

Liyoto
12.10.2016
08:48:15
Добрый день, помогите что не так в коде
name = input('Как вас зовут?:')
name1 = "Roman" , "roma" , "Roma" , "roman"
if name == name1:
print('Я сочиняю роман , Рома-Рома , роман')
input('\n\n\n Exit')

Zart
12.10.2016
08:48:19
это его работа же

Google

Zart
12.10.2016
08:48:43

Pavel
12.10.2016
08:48:44

Igor
12.10.2016
08:49:00
тебе нужно name in name1

Zart
12.10.2016
08:49:28
а name1 лучше переименовать в names

Igor
12.10.2016
08:49:35
угу

Johnnie
12.10.2016
08:49:41
это его работа же
для инцидентов я делал вот так:
if Incident.query.filter_by(ext_id=form.ext_id.data).first():
flash('Incident {0} already exists!'.format(form.ext_id.data), 'error')
else:
потому что там одно поле с номером и по нему просто

Zart
12.10.2016
08:50:10

Igor
12.10.2016
08:50:20
а SQLite разве не умеет unique?

Zart
12.10.2016
08:50:24
умеет
джонни не умеет

Johnnie
12.10.2016
08:50:34
эксепшн ловить что ли?

Zart
12.10.2016
08:50:37
угу

Pavel
12.10.2016
08:50:44

Liyoto
12.10.2016
08:50:50

Johnnie
12.10.2016
08:50:55
сразу бы так :D

Zart
12.10.2016
08:51:39
если ты не повесишь уникальный индекс, и будешь сверяться через запрос - то у тебя между запросом и инсертом будет окно, в которое второй процесс может внести дубликат

Johnnie
12.10.2016
08:52:23
?
а как понять какие еще эксепшены может вызвать добавление записи?

Google

Johnnie
12.10.2016
08:54:36
try:
incident = Incident(form.ext_id.data, form.text.data)
db.session.add(incident)
db.session.commit()
flash('Incident {0} added successfully!'.format(incident.ext_id), 'success')
return redirect(url_for('incident.view_all'))
except IntegrityError:
flash('Incident {0} already exists!'.format(form.ext_id.data), 'error')
мне кажется сюда еще обработку надо добавить тогда
типа не получилось приходите позже
в гугле только общий какой-то SQLAlchemyError

Igor
12.10.2016
09:07:07
столкнешься - добавишь
незнакомые исключения можно логировать

Pavel
12.10.2016
09:09:53
нахуй документацию, давайте эксперименты ставить.
http://docs.sqlalchemy.org/en/latest/core/exceptions.html

Johnnie
12.10.2016
09:11:30
и какие брать?

Admin
ERROR: S client not available

Igor
12.10.2016
09:16:25
ну ваще по документации правда бывает непонятно, какие исключения могут быть
и чтения одних исходников алхимии тоже может быть недостаточно, надо вплоть до stdlib проходиться, чтобы все найти

Johnnie
12.10.2016
09:18:27

Igor
12.10.2016
09:18:40
пардон

Johnnie
12.10.2016
09:18:51
except:
сообщение выводим
так плохо делать же?
все подряд ловить

Igor
12.10.2016
09:19:40
ваще да, так себе
хотя бы логируй
можно через logging.exception (или logging.debug(..., exc_info=True))
можно через except Exception as e:
и из e инфу об исключении вытаскивать

Roman
12.10.2016
09:20:37
Повторный тест:
Теперь вы должны увидеть это:
======================================================================
FAIL: test_empty_db (__main__.FlaskrTestCase)
Ensure database is blank
----------------------------------------------------------------------
Traceback (most recent call last):
File "app-test.py", line 49, in test_empty_db
assert b'No entries here so far' in rv.data
AssertionError
----------------------------------------------------------------------
Ran 5 tests in 0.072s
FAILED (failures=1)
Эта ошибка утверждает, что при обращении к маршруту / сообщение "No entries here so far" возвращается. Проверьте шаблон index.html. Текст на самом деле гласит: "No entries yet. Add some!". Так обновите же тест и запустите тест вновь:
чтооооооооо?

Zart
12.10.2016
09:21:02
тесты ассертами..

Google

Roman
12.10.2016
09:21:06
как я ору с мануалов

Pavel
12.10.2016
09:22:57
но всё ведь зависит от конкретных требований и конкретного кода. Если требования к функции: " или дай ответ, или не скажи ничего, пусть хоть небо на землю падает", то да, except Exception as e: logging.exception() return None. Если нужно особо поймать случай неправильного формата при вводе в базу данных, то там ловить только ValueError какой-нибудь.
Что за любовь к универсальным рецептам...

Igor
12.10.2016
09:25:19
а где - не норма?
и что плохого в тестах ассертами?

Zart
12.10.2016
09:25:40
хуево же

Roman
12.10.2016
09:25:57
бля

Zart
12.10.2016
09:26:00
раз в пятилетку возникает необходимость в python -O

Pavel
12.10.2016
09:26:03

Roman
12.10.2016
09:26:05
я нихуя не пойму, что обновлять в тесте
пиздец...

Zart
12.10.2016
09:26:07
который выпиливает ассерты насмерть

Igor
12.10.2016
09:26:53

Zart
12.10.2016
09:27:15
almostEqual разумеется для сравнения пары флоатов

Igor
12.10.2016
09:27:28
ааа :)

Pavel
12.10.2016
09:28:26

Roman
12.10.2016
09:29:00
вот из-за такого говна, когда непонятно что делать, мне дропнуть хочется всё это говно

Igor
12.10.2016
09:29:15
так а где там сахар-то
между симпатичным assert hui is None и assertIsNone(hui) я выбрал бы первое. или это вкусовщина?
Эта группа больше не существует