ну положим, там где ошибка значений – в тему ValueError/TypeError. AssertionError в этом случае не в кассу. И даже в этом случае у ассерта в предлагаемом варианте есть мега-плохая штука: он не объясняет
причину. Т.е. сообщение об ошибке будет что-то типа AssertionError<пусто>. Если уж использовать ассерты (я их использую для логической проверки случаев которые в нормальном ходе выполнения программы не должны возникать), то
assert condition, description
плюс assert pattern сработает и на пустую строку/словарь/список, не уверен что это желаемое поведение. Так что если всё же ситуация складывается к ассерту, то
assert pattern is not None, "search pattern usually shouldn't be None"
но на самом деле, самый правильный вариант, это сделать pattern обязательным аргументом функции/метода, без начального значения в None
P.S. А еще ассерт коварная штука и посмотреть help(assert) в интерактивной сессии не получится ;)