Ответ 1
Вы должны перенаправить вывод call_command, иначе он просто печатает на стандартный вывод, но ничего не возвращает. Вы можете попробовать сохранить его в файл, а затем прочитать его так:
with open('/tmp/inspectdb', 'w+') as f:
call_command('inspectdb', stdout=f)
var = f.readlines()
РЕДАКТИРОВАТЬ: Глядя на это пару лет спустя, лучшим решением будет создание StringIO
для перенаправления вывода вместо реального файла. Вот пример из одного из тестовых наборов Django:
from io import StringIO
def test_command(self):
out = StringIO()
management.call_command('dance', stdout=out)
self.assertIn("I don't feel like dancing Rock'n'Roll.\n", out.getvalue())