Утверждение строки соответствует регулярному выражению в pytest - PullRequest
0 голосов
/ 04 января 2019

Я пишу тест с использованием pytest, чтобы убедиться, что строка временной метки, которая передается в, соответствует соответствующему формату регулярных выражений. Я сделал это следующим образом.

test_epoch():
    timestamp = "1541811598.802"
    epoch_regex = re.compile(r'^[0-9]+$')
    assert epoch_regex.match(epoch)

Однако при запуске теста появляется следующая ошибка:

AssertionError: assert None
+  where None = <built-in method match of re.Pattern object at 0x11ade6480>('1541840398.802')
+    where <built-in method match of re.Pattern object at 0x11ade6480> = re.compile('^[0-9]+$').match

Кто-нибудь знает, где я ошибся и как правильно установить соответствие строки регулярному выражению?

1 Ответ

0 голосов
/ 05 января 2019

Действительно ли timestamp соответствует регулярному выражению? Что произойдет, если вы избавитесь от '.' в timestamp? У меня есть чувство, что timestamp = "1541811598802" пройдет.

Также имейте в виду, что '.' - это специальный символ в регулярных выражениях, поэтому, когда вы изменяете свое регулярное выражение, убедитесь, что вы учли это (подсказка, экранируйте специальные символы с помощью \)!

...