В основном для целей тестирования ИМО, проверьте этот фрагмент кода, взятый из этого примера .
def inspectdb_tables_only(table_name):
"""
Limit introspection to tables created for models of this app.
Some databases such as Oracle are extremely slow at introspection.
"""
return table_name.startswith('inspectdb_')
class InspectDBTestCase(TestCase):
unique_re = re.compile(r'.*unique_together = \((.+),\).*')
def test_stealth_table_name_filter_option(self):
out = StringIO()
call_command('inspectdb', table_name_filter=inspectdb_tables_only, stdout=out)
error_message = "inspectdb has examined a table that should have been filtered out."
self.assertNotIn("class DjangoContentType(models.Model):", out.getvalue(), msg=error_message)
Теперь мы можем использовать stealth_options
, чтобы упростить процесс обхода call_command () проверьте и уточните наш тестовый метод , скрывая эти параметры из открытого API команд .
call_command () теперь проверяет, что аргумент парсер вызываемой команды определяет все параметры, передаваемые call_command ().